Verilog HDL (appelé Verilog) est un langage de description matérielle utilisé pour la conception de systèmes de circuits numériques. Il peut modéliser plusieurs niveaux de conception abstraits tels que le niveau algorithmique, le niveau portes et le niveau commutateurs.
Verilog hérite de nombreux opérateurs et structures du langage C. Par rapport à un autre langage de description de matériel, VHDL, sa syntaxe n'est pas très stricte, le code est plus concis et il est plus facile de débuter.
Verilog ne définit pas seulement une syntaxe, mais définit aussi une sémantique de simulation claire pour les structures syntaxiques. Par conséquent, les modèles numériques écrits en Verilog peuvent être vérifiés à l'aide d'un simulateur Verilog.
À qui s'adresse ce tutoriel ?
Ce tutoriel est principalement conçu pour les débutants en Verilog.
Les étudiants ayant certaines bases en Verilog peuvent également étudier et échanger des idées sur les chapitres avancés et les exemples.
Prérequis pour lire ce tutoriel
Avant de suivre ce tutoriel, vous devez comprendre quelques notions de base sur les circuits numériques.
Si vous avez une certaine compréhension dulangage C, cela vous aidera à démarrer rapidement avec Verilog.
Premier design Verilog
Compteur décimal sur 4 bits :
Exemple
//Définitions des ports
input rstn, //Borne de réinitialisation, active à l'état bas
input clk, //Horloge d'entrée
output [3:0] cnt, //Sortie de comptage
output cout); //Bit de débordement
reg [3:0] cnt_temp ; //Registre du compteur
always@(posedge clk or negedge rstn) begin
if(! rstn)begin //À la réinitialisation, le compteur revient à 0
cnt_temp <= 4'b0 ;
end
else if (cnt_temp==4'd9) begin //Lorsque le comptage atteint 10 cycles, le compteur revient à 0
cnt_temp <=4'b000;
end
else begin //Le compteur s'incrémente de 1
cnt_temp <= cnt_temp + 1'b1 ;
end
end
assign cout = (cnt_temp==4'd9) ; //Bit de période de sortie
assign cnt = cnt_temp ; //Compteur en temps réel de sortie
endmodule
Cat Me
Je me suis consacré à la conception FPGA et à la conception IC. Durant mes années d'études, j'ai davantage utilisé le langage VHDL pour la conception, mais j'utilise maintenant Verilog en permanence. Pour faciliter la recherche de syntaxe et offrir un canal d'apprentissage pratique aux autres apprenants, j'ai spécialement écrit ce tutoriel. Il convient de noter que :
- (1) Le contenu du tutoriel est écrit du point de vue de mon propre apprentissage passé, il peut donc être plus facile à apprendre. Si vous constatez des éléments inappropriés, n'hésitez pas à les signaler, et nous pourrons échanger des idées et progresser ensemble.
- (2) Lors de la simulation d'un module numérique conçu en Verilog, vous devez ajouter une excitation depuis l'extérieur ; le fichier d'excitation est appelé testbench. Parfois, la conception du testbench peut être plus complexe que le module numérique lui-même. Par conséquent, lors de l'introduction antérieure de la syntaxe Verilog de base, il n'y a presque pas de simulation. Plus tard, lors de l'introduction des connaissances liées au niveau comportemental et au niveau temporel, la simulation sera davantage utilisée pour l'explication.
<p><strong>E-mail de contact</strong> : [email protected]</p>Personne à contacter:Think · In · Hardware
L'intégralité du tutoriel a été manuellement collectée, organisée et rédigée par moi. Toutes les simulations de conception sont originales ou améliorées. Si vous en bénéficiez, votre appréciation ou votre suivi est le soutien le plus honnête, encourageant mon âme affamée à écrire des chapitres plus complets.
