Module 3 — La mémoire : bascules, registres, compteurs
Jusqu'ici tes circuits oubliaient tout. On va leur apprendre à se souvenir.
3.1 — Le problème
Ton additionneur du Module 1 est combinatoire : change les entrées, la sortie change aussitôt. Il ne se souvient de rien. Or un processeur doit mémoriser : le résultat du calcul précédent, où il en est dans le programme… Il faut des circuits séquentiels — dont la sortie dépend aussi du passé.
L'astuce fondatrice : reboucler la sortie d'une porte sur son entrée. Le circuit se « verrouille » alors dans un état stable — il retient un bit. C'est le principe du verrou (latch), construit avec… 2 portes NOR ou NAND. Encore elles !
3.2 — L'horloge : le métronome de la puce
Des millions de circuits qui se mettent à jour n'importe quand = chaos. La solution : un signal carré qui bat la mesure, l'horloge (clock) :
clk : ___╱▔▔▔╲___╱▔▔▔╲___╱▔▔▔╲___
↑ front montant = tout le monde se met à jour MAINTENANT
« 3,5 GHz » = 3,5 milliards de fronts montants par seconde. À chaque front, tous les éléments mémoire de la puce capturent leur nouvelle valeur en même temps. Entre deux fronts, la logique combinatoire (tes additionneurs) a le temps de calculer.
3.3 — La bascule D : la cellule mémoire de base
La bascule D (D flip-flop) a une règle d'or : la sortie Q copie l'entrée D uniquement au front montant de l'horloge. Le reste du temps, Q garde sa valeur, quoi que fasse D. C'est 1 bit de mémoire synchronisée.
3.4 — Registre & compteur : assembler les bascules
Un registre de 4 bits = 4 bascules D côte à côte, partageant la même horloge. C'est ainsi que ton CPU stockera ses nombres. Et si on branche un registre sur un additionneur qui fait +1, dont la sortie revient dans le registre… on obtient un compteur : à chaque front d'horloge, la valeur augmente de 1.
En Verilog, voici ta première logique séquentielle :
module compteur (input clk, output reg [3:0] q); always @(posedge clk) // "à chaque front montant de clk" q <= q + 1; // capture la nouvelle valeur endmodule
3.5 — Vérifie tes connaissances
Réponds juste aux 4 questions du quiz pour débloquer.