Qu'est-ce que Verilog
Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 1 sur 90.
Verilog est un langage de description de matériel (HDL) utilisé pour modéliser, concevoir et simuler des circuits électroniques numériques — des simples portes logiques aux processeurs complexes.
Contrairement aux langages logiciels qui s'exécutent de manière séquentielle sur un processeur, Verilog décrit du matériel qui fonctionne en parallèle. C'est le standard de l'industrie pour la conception de FPGA et d'ASIC, utilisé dans des outils tels que ModelSim, Vivado et Quartus.
Dans ce cours, vous apprendrez le Verilog de A à Z — en commençant par les sorties de simulation de base, puis en construisant des circuits combinatoires et séquentiels, pour enfin concevoir des modules réels tels que des compteurs, des registres à décalage et des interfaces UART.
Défi
FacileBienvenue dans votre premier programme Verilog ! Le code est déjà écrit pour vous.
Ce qu'il faut faire :
- Regardez le code — il utilise
$displaypour afficher du texte, commeprintfen C - Cliquez sur Run Code pour le compiler et le simuler
- Vous devriez voir
Hello World!dans la sortie
Remarque : Chaque programme Verilog s'exécute à l'intérieur d'un module. Le bloc initial s'exécute une fois au début de la simulation, et $finish y met fin.
Aide-mémoire
Verilog est un langage de description de matériel (HDL) qui décrit le matériel fonctionnant en parallèle, utilisé pour la conception de FPGA et d'ASIC.
Chaque programme Verilog s'exécute à l'intérieur d'un module. Le bloc initial s'exécute une seule fois au début de la simulation ; $finish met fin à la simulation. Utilisez $display pour afficher du texte (similaire à printf en C) :
module example;
initial begin
$display("Hello World!");
$finish;
end
endmoduleEssayez vous-même
module main;
initial begin
$display("Hello World!");
$finish;
end
endmoduleToutes les leçons de Fondamentaux
1Introduction
Qu'est-ce que VerilogHardware vs SoftwareNiveaux d'abstraction de conceptionVotre premier moduleCommentaires4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloOpérateurs de comparaisonRécapitulatif - Mathématiques simplesOpérateurs bit à bit7Assignation et portes logiques
Assignation continueAssignation avec opérateursPrimitives de portes intégréesPortes AND OR NOTPortes XOR XNORRécapitulatif - Circuit à portes logiques10Prise de décision
Instruction IfIf - ElseRécapitulatif - Comparateur simpleInstruction CaseCasex et CasezRécapitulatif - Conception d'ALU2Types de données
Type WireType RegEntiers et RéelsVecteursTableauxParamètresRécapitulatif - Déclarer des signaux5Opérateurs - Partie 2
Opérateurs logiquesOpérateurs de réductionOpérateurs de décalageOpérateur de concaténationOpérateur conditionnelRécapitulatif - Défi sur les opérateurs11Boucles
Boucle ForBoucle WhileBoucle RépéterBoucle InfinieInstruction DisableRécapitulatif - Modèles de boucles3Système de numération
Représentation binaireNombres avec tailleNombres sans tailleNombres négatifsValeurs spéciales X et ZRécapitulatif - Formats de nombres6Modules
Structure d'un modulePorts d'entrée et de sortiePorts InoutInstanciation de moduleMappage de ports par nomMappage de ports par ordreRécapitulatif - Créer un module9Blocs procéduraux
Bloc AlwaysBloc InitialListe de sensibilitéAffectation bloquanteAffectation non bloquanteRécapitulatif - Always vs Initial12Projet Multiplexeur
Conception d'un Mux 2 vers 1Conception d'un Mux 4 vers 115Contrôleur de feux de circulation
Définition des étatsLogique de la machine à états