Bascule D
La bascule D (donnée) est l'élément de mémoire de base de la conception numérique synchrone. À chaque front montant de l'horloge, elle échantillonne l'entrée D et la stocke dans la sortie Q, conservant cette valeur jusqu'au front suivant. Les entrées asynchrones PRE (preset) et CLR (clear) forcent Q à 1 ou à 0 immédiatement, quel que soit l'état de l'horloge, CLR l'emportant si les deux sont activées. Comme elle ne capture la donnée qu'à un instant précis, la bascule D est le bloc standard des registres, des pipelines et des machines à états.
Capturer un bit sur le front d'horloge
Reliez un Switch à D et une Clock à CLK, puis placez une LED sur Q. Le niveau présent sur D à l'instant du front montant est copié sur Q et y reste pendant toute la période d'horloge, même si vous changez l'interrupteur ensuite. Ce comportement d'échantillonnage-maintien transforme une valeur combinatoire en état mémorisé.
| CLK | D | Q(t+1) |
|---|---|---|
| rising | 0 | 0 |
| rising | 1 | 1 |
| no edge | X | Q(t) (hold) |
Lire la table d'excitation
La table d'excitation répond au problème de conception à l'envers : étant donnée la transition voulue pour Q, que doit valoir D ? Pour la bascule D c'est trivial, D vaut toujours l'état suivant désiré, ce qui rend les bascules D si pratiques pour les machines à états. N'utilisez PRE et CLR que pour l'initialisation asynchrone à la mise sous tension, jamais dans le chemin de données synchrone normal.
| Q(t) | Q(t+1) | D |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Construire un compteur asynchrone
Reliez le Q' (sortie inversée) de chaque bascule à sa propre entrée D et acheminez Q' vers l'horloge de l'étage suivant. Chaque étage bascule alors à la moitié de la fréquence du précédent, et une chaîne de bascules D compte en binaire. Ce compteur à propagation (asynchrone) est simple, mais les étages se stabilisent l'un après l'autre ; lorsque chaque bit doit changer au même instant, passez à un compteur synchrone partageant une horloge commune.
Citations
- Eccles, W. H., & Jordan, F. W. (1919). A trigger relay utilising three-electrode thermionic vacuum tubes. Radio Review, 1(3), 143-146.. Référence 1
- Shannon, C. E. (1938). A symbolic analysis of relay and switching circuits. Transactions of the American Institute of Electrical Engineers, 57(12), 713-723.. Référence 2
- Mano, M. M., & Ciletti, M. D. (2018). Digital design: With an introduction to the Verilog HDL, VHDL, and SystemVerilog (6th ed.). Pearson.. Référence 3