Verilog Essentiel : Aperçu concis
Tout code comportemental s'écrit dans module ... endmodule. Toute conception numérique va dans bloc module. Peut avoir ports définis ou non - signaux entrant comme input ou sortant comme output.
Module
Module vide ci-dessous appelé testbench. Nom libre (alphanumérique + '_').

module testbench; endmodule
Autre module avec signaux d, clk, rstb en entrées et q en sortie.

module dff (input d, clk, rstb, output q); endmodule
Types de données
Deux types principaux en Verilog :
- reg
- wire
reg retient valeurs comme variable, wire = fil électrique, doit être piloté continûment. Typiquement wire connecte modules et signaux.
module testbench; reg d; reg rst_b; reg clk; wire q; endmodule
Affectations
Verilog a 3 blocs de base :
always @ (condition) | exécuté toujours quand condition satisfaite |
initial | exécuté une fois au début simulation |
assign [LHS] = [RHS] | LHS mis à jour quand RHS change |
Règles à retenir :
regassignable seulement dansinitialetalwayswireassignable seulement viaassign- Si multiples instructions dans initial/always, envelopper dans
begin .. end
module testbench;
reg d; reg rst_b; reg clk; wire q;
initial begin d = 0; rst_b = 0; clk = 0; #100 $finish; end
always begin #10 clk = ~clk; end
endmodule
Notes de l'exemple :
- Lignes multiples
initial-> begin/end - Signaux d, rst_b, clk assignés dans initial car type
reg - Code initial exécuté à 0ns (début simulation)
- Pas condition pour
always-> boucle infinie comme en C - # = délai temps. #10 = avance simulation 10 unités
clk = ~clk;bascule horloge, avec #10 avant -> bascule toutes les 10 unités$finishtermine simulation. Ici 100 unités puis sortie.
Verilog
- Maîtriser Verilog : Tutoriel complet pour la conception de circuits numériques
- Maîtriser la concaténation Verilog : Guide pratique
- Comprendre les affectations Verilog : Types, Syntaxe et Bonnes Pratiques
- Verilog Blocking vs Non-Blocking : Différences Clés Expliquées
- Maîtriser les Fonctions Verilog pour une Conception RTL Efficace
- Comprendre les Tasks Verilog : Fonctions vs Tasks, Syntaxe et Utilisation
- Maîtriser la Portée de Référence Hiérarchique Verilog : Éviter les Collisions de Noms dans les Modules et Blocs
- Générateur d'Horloge Verilog : Guide de Conception et d'Implémentation
- Maîtriser les Fonctions Mathématiques Verilog pour une Conception Matérielle Efficace