Verrou SR et bascule JK : les bases de la logique séquentielle
La bascule JK résout l'état interdit du verrou SR en définissant J=K=1 comme un basculement. Comparez-les, dérivez leurs tables d'excitation et construisez des compteurs.
En bref : le verrou SR est l’élément de mémoire le plus simple, mais il possède un état interdit lorsque ses deux entrées valent 1. La bascule JK corrige ce défaut en redéfinissant J=K=1 comme un basculement, grâce à une rétroaction interne (, ) et à une horloge maître-esclave qui empêche les oscillations de course.
Les circuits combinatoires — additionneurs, multiplexeurs — produisent leurs sorties uniquement à partir des entrées courantes. La logique séquentielle ajoute la mémoire : une bascule conserve son état d’un cycle d’horloge à l’autre. Ce guide compare les deux composants séquentiels fondamentaux — le verrou SR et la bascule JK — et montre comment la conception JK élimine le défaut critique de SR.
Logique combinatoire et logique séquentielle
Les circuits combinatoires, tels que les additionneurs et les multiplexeurs, produisent des sorties déterminées par les valeurs présentes à leurs entrées après le délai de propagation. Les entrées physiques doivent toujours être pilotées vers des niveaux valides ; « aucune entrée » ne constitue pas une opération particulière et une entrée flottante est électriquement indéfinie.
Les circuits séquentiels ajoutent une propriété décisive : l’état. Leurs sorties dépendent non seulement des entrées courantes, mais aussi de leur historique — ils possèdent une mémoire. Une bascule peut se trouver dans l’état Q=0 ou Q=1 et le conserver jusqu’à recevoir l’ordre explicite de changer. C’est ce qui rend le calcul programmable possible : sans état, il n’existe ni registres, ni compteurs, ni compteurs ordinaux, ni processeurs.
Le verrou SR : le point de départ de la mémoire
Le verrou SR — verrou Set-Reset — est l’élément de mémoire le plus simple. Il est formé de deux portes NOR — ou NAND — couplées en croix. Il possède deux entrées, S pour Set et R pour Reset, ainsi que deux sorties complémentaires : Q et .

Table de vérité du verrou SR
| S | R | Q (suivant) | Action |
|---|---|---|---|
| 0 | 0 | Q (inchangé) | Maintien (mémoire) |
| 0 | 1 | 0 | Reset (effacement) |
| 1 | 0 | 1 | Set (stockage de 1) |
| 1 | 1 | ? | INVALIDE (interdit) |
Équation caractéristique du verrou SR
Son comportement est formellement décrit par :
La contrainte est la faiblesse fondamentale du verrou SR : l’équation n’est valable que lorsque S et R ne valent pas toutes deux 1. Enfreindre cette contrainte produit l’état interdit — les deux sorties passent à 0, puis l’état final lors du relâchement résulte d’une course non déterministe.

Pourquoi l’état interdit est dangereux
Lorsque S=R=1, les deux portes NOR sont forcées à produire 0, donc Q = = 0 — une contradiction logique. Lorsque les deux entrées reviennent simultanément à 0, les deux portes rivalisent pour produire 1. Le résultat dépend de différences de l’ordre de la nanoseconde dans le délai de propagation, de la température et des tolérances de fabrication. Il est imprévisible et, dans le pire cas, la sortie peut entrer dans un état métastable — une tension intermédiaire qui n’est ni un 0 valide ni un 1 valide.
La bascule JK : la solution complète
La bascule JK affronte directement l’état interdit du verrou SR. Au lieu de laisser la condition indéfinie, elle la redéfinit comme un basculement : la sortie s’inverse à chaque front d’horloge. Cette seule innovation transforme un élément de mémoire défectueux en la bascule la plus polyvalente de la conception numérique.

Table de vérité de la bascule JK
| J | K | Q (suivant) | Action |
|---|---|---|---|
| 0 | 0 | Q (inchangé) | Maintien |
| 0 | 1 | 0 | Reset |
| 1 | 0 | 1 | Set |
| 1 | 1 | (inversé) | Basculement |
Équation caractéristique de la bascule JK
La rétroaction rend les demandes de mise à 1 et de remise à 0 mutuellement exclusives pour un état courant donné : conditionne le terme J et le terme K. La combinaison interdite du verrou SR disparaît. La rétroaction seule n’empêche toutefois pas la course dans une conception JK sensible au niveau ; la temporisation maître-esclave ou le déclenchement sur front limite le dispositif à une seule transition visible par événement d’échantillonnage.

L’architecture maître-esclave
Les premières conceptions JK étaient déclenchées par niveau, ce qui introduisait la course circulaire : si l’impulsion d’horloge restait haute assez longtemps, la nouvelle sortie réinjectée pouvait provoquer un autre basculement pendant la même impulsion, puis une oscillation incontrôlée.
La solution est l’architecture maître-esclave, formée de deux verrous SR en série :
- Verrou maître : capture les entrées pendant que l’horloge est HAUTE. Sa sortie est isolée de l’esclave.
- Verrou esclave : capture la sortie du maître lorsque l’horloge passe au niveau BAS. C’est alors que la sortie externe Q change réellement.
Puisque le maître et l’esclave ne sont jamais transparents simultanément, la sortie ne peut changer qu’une fois par cycle. Les implémentations modernes emploient un déclenchement sur front pour obtenir le même effet plus efficacement, mais le concept maître-esclave explique pourquoi la bascule JK a besoin d’une horloge et pourquoi elle échappe au problème de course circulaire.
La course circulaire en détail
La course mérite une attention particulière, car elle illustre l’importance de la stratégie d’horloge.
Dans un verrou JK simple sensible au niveau, avec J=K=1 — mode de basculement —, la séquence est :
- L’horloge passe au niveau HAUT. La sortie bascule de 0 à 1.
- La nouvelle sortie Q=1 est réinjectée vers les portes d’entrée.
- L’horloge est toujours HAUTE. La logique voit le nouvel état et bascule de nouveau : Q passe de 1 à 0.
- Ce cycle se répète tant que l’horloge reste HAUTE.
La sortie oscille à la fréquence imposée par le délai de propagation des portes — elle devient en pratique un oscillateur en anneau. L’état final lors du front descendant dépend de la largeur exacte de l’impulsion par rapport au délai des portes, ce qui rend le comportement non déterministe.
Les bascules JK déclenchées sur front, comme celles de digisim.io, éliminent entièrement ce problème. La bascule n’échantillonne J et K qu’à l’instant de la transition d’horloge. Lorsque la sortie change puis revient vers les entrées, la fenêtre d’échantillonnage est déjà fermée.
Tables d’excitation : concevoir avec des bascules
Pour concevoir des circuits séquentiels — compteurs ou machines à états —, vous partez des transitions d’état souhaitées et remontez jusqu’aux entrées requises. Les tables d’excitation deviennent alors indispensables.
Table d’excitation du verrou SR
| (courant) | (souhaité) | S | R |
|---|---|---|---|
| 0 | 0 | 0 | X |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | X | 0 |
(X = indifférent)
Table d’excitation de la bascule JK
| (courant) | (souhaité) | J | K |
|---|---|---|---|
| 0 | 0 | 0 | X |
| 0 | 1 | 1 | X |
| 1 | 0 | X | 1 |
| 1 | 1 | X | 0 |
Remarquez l’abondance des conditions indifférentes dans la table d’excitation JK. Chaque transition en possède une, tandis que la table SR en offre moins et doit toujours respecter la contrainte . Ces indifférences supplémentaires permettent de simplifier bien davantage la logique booléenne qui pilote les bascules — un avantage concret pour minimiser le nombre de portes d’une conception réelle.
Comparaison complète
| Caractéristique | Verrou SR | Bascule JK |
|---|---|---|
| Entrées | S (Set), R (Reset) | J, K, horloge |
| S=R=1 / J=K=1 | Invalide (condition de course) | Basculement (bien défini) |
| Déclenchement | Sensible au niveau (asynchrone) | Sur front (synchrone) |
| Horloge nécessaire ? | Non (verrou SR élémentaire) | Oui |
| Équation caractéristique | ||
| État interdit | Présent (S=R=1) | Éliminé |
| Indifférences dans la table d’excitation | Moins nombreuses | Plus nombreuses (meilleure optimisation) |
| Risque de course circulaire | Sans objet (pas d’horloge) | Éliminé par le déclenchement sur front |
| Taille de l’implémentation | Deux portes couplées en croix pour le verrou central | Dépend de l’implémentation ; les formes maître-esclave et sur front exigent du stockage et des portes supplémentaires |
| Usages principaux | Maintien d’un état de commande, anti-rebond d’interrupteur | Compteurs et conception pédagogique de machines à états |
| Peut construire d’autres types de bascules ? | Limité | Oui (universelle) |
Déclenchement sur front : le rôle de l’horloge
Les bascules modernes sont déclenchées sur front : elles ne changent d’état qu’à l’instant précis d’une transition d’horloge. Ce comportement diffère fondamentalement du verrou SR sensible au niveau, qui réagit aux entrées à tout instant.

Le déclenchement sur front apporte trois garanties essentielles :
- Événement d’échantillonnage défini : les entrées sont capturées au front spécifié lorsque les contraintes d’établissement et de maintien sont respectées.
- Filtrage temporel : une impulsion parasite sur les données qui ne chevauche pas la fenêtre d’échantillonnage n’est pas capturée ; les parasites d’horloge et les changements de données proches du front restent dangereux.
- Composabilité : plusieurs bascules peuvent partager une horloge et se mettre à jour après leur propre délai horloge-vers-Q, ce qui coordonne un état multibit.
Conversion entre SR et JK
La bascule JK est considérée comme « universelle », car elle peut imiter d’autres types de bascules. Comprendre ces conversions approfondit la maîtrise des deux composants.
Conversion SR vers JK : ajoutez des portes AND qui réinjectent Q et :
La rétroaction garantit que, lorsque J=K=1, une seule de S ou R est active — selon l’état courant —, ce qui produit le basculement tout en empêchant structurellement l’état interdit de SR.
Conversion JK vers D : reliez D à J et à K.
Conversion JK vers T : reliez J et K pour former une unique entrée T.
Construire des compteurs : l’application emblématique de JK
Lorsque J=K=1, la bascule JK change d’état à chaque front d’horloge — c’est le bloc naturel d’un compteur binaire. Enchaînez quatre bascules JK dont la sortie Q de chacune pilote l’horloge de la suivante : vous obtenez un compteur asynchrone de 4 bits qui parcourt 0000 à 1111.
Compteur asynchrone en cascade
Dans ce compteur, la sortie Q de chaque bascule pilote l’entrée d’horloge de la suivante. Le comptage se « propage » dans la chaîne, chaque étage déclenchant le suivant :
- FF0 bascule à chaque front de l’horloge système — fréquence = .
- FF1 bascule à chaque transition de FF0 — fréquence = .
- FF2 bascule à chaque transition de FF1 — fréquence = .
- FF3 bascule à chaque transition de FF2 — fréquence = .
Les sorties Q3 Q2 Q1 Q0 représentent un nombre binaire de 4 bits qui s’incrémente de 1 à chaque cycle d’horloge. En contrepartie, chaque étage introduit un délai de propagation ; les bits de poids fort se stabilisent donc après ceux de poids faible. Pendant un bref instant après chaque front, la sortie du compteur peut afficher une valeur transitoire incorrecte. À grande vitesse, ce délai de propagation pose problème, d’où la préférence pour les compteurs synchrones — toutes les bascules partagent alors la même horloge.
Compteur synchrone
Dans un compteur synchrone, toutes les bascules partagent l’horloge système. Les entrées J et K de chacune sont pilotées par une logique combinatoire issue de l’état courant. Pour un compteur croissant synchrone de 3 bits :
- FF0 : J0=K0=1 — bascule toujours.
- FF1 : J1=K1=Q0 — ne bascule que lorsque Q0=1.
- FF2 : J2=K2=Q0 Q1 — ne bascule que lorsque Q0 et Q1 valent toutes deux 1.
Tous les étages échantillonnent le même front, ce qui supprime la dépendance de propagation de l’horloge d’un étage au suivant. Les sorties conservent toutefois un délai horloge-vers-Q, la logique combinatoire de validation a son propre délai et les différents bits ne changent pas nécessairement exactement au même instant physique.



Exemple de conception avec la table d’excitation
Pour montrer l’intérêt pratique des tables d’excitation, concevons un compteur simple de 2 bits qui compte 0, 1, 2, 3, 0, 1, … à l’aide de bascules JK.
Étape 1 : table d’états. Énumérons l’état courant et l’état suivant souhaité pour chaque combinaison.
| Q1 courant | Q0 courant | Q1 suivant | Q0 suivant |
|---|---|---|---|
| 0 | 0 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
Étape 2 : appliquer la table d’excitation. Pour chaque bascule, déterminons les entrées J et K requises.
Pour FF0 (Q0), les transitions sont 0->1, 1->0, 0->1 et 1->0. Selon la table d’excitation JK, J0=1 et K0=1 dans tous les cas. Ainsi, J0=K0=1 : FF0 bascule toujours.
Pour FF1 (Q1), les transitions sont 0->0, 0->1, 1->1 et 1->0. La table d’excitation donne J1=0/K1=X, J1=1/K1=X, J1=X/K1=0 et J1=X/K1=1. Une table de Karnaugh permet d’obtenir J1=Q0 et K1=Q0.
Résultat : un compteur synchrone de 2 bits exige J0=K0=1 et J1=K1=Q0. Aucun composant supplémentaire n’est nécessaire au-delà des bascules elles-mêmes et d’un fil reliant Q0 aux entrées J et K de FF1. L’abondance des indifférences rend cette minimisation directe — un avantage concret de JK par rapport à SR.
Résumé des applications
| Application | Composant | Pourquoi |
|---|---|---|
| Anti-rebond d’interrupteur | Verrou SR | Simple, aucune horloge nécessaire, le premier contact fixe l’état |
| Concept de SRAM | Rétroaction bistable couplée en croix | La SRAM dense emploie normalement des inverseurs croisés et des transistors d’accès, pas un verrou SR intégré |
| Compteurs binaires | Bascule JK | Le mode de basculement compte naturellement |
| Diviseurs de fréquence | Bascule JK ou T | Chaque étage divise l’horloge par 2 |
| Machines à états (FSM) | Bascule JK | Les conditions indifférentes simplifient la logique |
| Registres de processeur | Bascule D | Capture de données la plus simple, aucun état interdit |
| Registres à décalage | Bascule D | Déplacement série des données entre étages |
Essayez vous-même
Expérimentez avec ces circuits dans digisim.io :
- Verrou SR : construisez-le avec deux portes NOR et testez les quatre combinaisons d’entrée. Observez attentivement l’état interdit.
- Mode toggle de JK : câblez J=K=1 avec une horloge et observez Q basculer à chaque front sur l’oscilloscope.
- Compteur asynchrone de 3 bits : enchaînez trois bascules JK en mode toggle. Reliez leurs sorties Q à l’oscilloscope et observez le motif du comptage binaire.
- Conversion SR vers JK : construisez une bascule JK à partir d’un verrou SR, de deux portes AND et d’une horloge. Vérifiez que J=K=1 produit un basculement net plutôt que l’état interdit.
- Exercice de table d’excitation : concevez un compteur modulo-6 avec des bascules JK. Servez-vous de la table d’excitation pour dériver la logique des entrées J et K de chaque bascule.
Poursuivez avec les compteurs et machines à états pour construire des FSM complètes à partir de ces primitives, ou ouvrez la référence de la bascule D, l’élément de stockage synchrone couramment employé dans les registres.



