Module 2 — Verilog : décrire des circuits en code
Le langage des concepteurs de puces — celui d'Apple, NVIDIA, AMD… et bientôt le tien.
2.1 — Pourquoi un langage ?
Au Module 1, tu as câblé un additionneur 4 bits à la main : ~20 portes. Or un processeur moderne en contient des centaines de millions. Impossible à dessiner. La solution : décrire le circuit en texte, et laisser un outil (le synthétiseur) le traduire en portes. C'est le rôle d'un HDL (Hardware Description Language). Les deux grands : Verilog et VHDL. On utilisera Verilog, le plus répandu.
2.2 — Anatomie d'un module
Voici ton demi-additionneur du Module 1, en Verilog :
// Demi-additionneur : 2 entrées, 2 sorties module demi_add ( input a, // 1er bit input b, // 2e bit output s, // somme output c // retenue ); assign s = a ^ b; // XOR → la somme assign c = a & b; // ET → la retenue endmodule
Les opérateurs logiques de Verilog (à connaître par cœur) :
| Opérateur | Porte | Exemple |
|---|---|---|
& | ET | a & b |
| | OU | a | b |
^ | XOR | a ^ b |
~ | NON | ~a |
Et le miracle : ton additionneur 4 bits du Module 1 (20 portes câblées à la main), en Verilog c'est…
module add4 (input [3:0] a, input [3:0] b, output [4:0] s); assign s = a + b; // le synthétiseur génère les portes pour toi endmodule
[3:0] signifie « un paquet de 4 fils » (bits 3 à 0). Le + est traduit automatiquement en additionneur à retenue — celui que tu connais maintenant de l'intérieur.
2.3 — À toi : écris du Verilog
Écris l'expression à droite du assign. La table de vérité de TON expression est calculée en direct et comparée au circuit attendu. Vert = circuit correct.
2.4 — Et la simulation ?
Dans la vraie vie, on vérifie un module avec un testbench : un second module qui envoie des valeurs d'entrée et vérifie les sorties — exactement ce que cette page vient de faire pour toi. L'outil de référence open source est Icarus Verilog (iverilog), et on visualise les signaux dans le temps avec GTKWave.
# Sur un vrai poste de travail : iverilog -o test demi_add.v testbench.v # compiler vvp test # simuler
2.5 — Vérifie tes connaissances
Réussis les 3 exercices ET le quiz pour débloquer.