### Introduction à la Logique Séquentielle La logique séquentielle se distingue de la combinatoire par sa dépendance à l'état précédent. #### Logique Combinatoire - L'état des sorties est **uniquement** déterminé par l'état actuel des entrées. - **Exemple:** Décodeur BCD à 7 segments. #### Logique Séquentielle - L'état des sorties dépend des **entrées actuelles** et des **états précédents**. - Utilise des éléments de mémoire (bascules) synchronisés par une horloge. ### Éléments Séquentiels Éléments logiques qui tiennent compte des événements précédents. Le temps et la séquence des événements sont cruciaux. #### Catégories - **Élément séquentiel asynchrone:** Réagit immédiatement aux changements d'entrée. - **Élément séquentiel synchrone:** Réagit aux changements d'entrée uniquement lors d'une transition spécifique de l'horloge. #### Les Bascules - Élément bistable synchrone. - La sortie change d'état à un endroit précis (front positif ou négatif) du signal d'horloge. #### Horloge - Signal répétitif à 2 phases: HAUTE (1) et BASSE (0). - **Front montant:** Passage du niveau bas au niveau haut. - **Front descendant:** Passage du niveau haut au niveau bas. ### Bascule S-R (Set-Reset) La bascule S-R est fondamentale pour d'autres types de bascules. #### Table de Vérité (Front Montant) | S | R | Horloge | Q | État | |---|---|---------|----|----------------| | 0 | 0 | $\uparrow$| Q$_0$ | Inchangé | | 0 | 1 | $\uparrow$| 0 | Mise à 0 (Reset) | | 1 | 0 | $\uparrow$| 1 | Mise à 1 (Set) | | 1 | 1 | $\uparrow$| ? | État non valide | - Q$_0$ est l'état précédent de Q. - Si S et R sont activés au front montant, la sortie est instable. ### Bascule D Pratique pour mémoriser un bit de donnée (0 ou 1). #### Table de Vérité (Front Montant) | D | Horloge | Q | $\bar{Q}$ | |---|---------|----|---------| | 0 | $\uparrow$| 0 | 1 | | 1 | $\uparrow$| 1 | 0 | ### Bascule J-K Fonctionne comme la bascule S-R mais n'a pas d'état instable. #### Table de Vérité (Front Montant) | J | K | Horloge | Q | État | |---|---|---------|----|---------------| | 0 | 0 | $\uparrow$| Q$_0$ | Inchangé | | 0 | 1 | $\uparrow$| 0 | Mise à 0 | | 1 | 0 | $\uparrow$| 1 | Mise à 1 | | 1 | 1 | $\uparrow$| $\bar{Q}_0$ | Basculement | ### Entrées Asynchrones Lorsqu'elles sont activées, elles entraînent une conséquence immédiate sans attendre la transition d'horloge. - **RAU, SET, PRESET:** Remet la sortie Q à 1. - **RAZ, CLEAR, RESET:** Remet la sortie Q à 0. - Ces signaux peuvent être actifs hauts ou actifs bas. ### Entrées Synchrones Lorsqu'elles sont activées, elles n'entraînent pas une conséquence immédiate. L'élément attend la transition d'horloge pour effectuer l'action. - **RAU, SET, PRESET:** Remet la sortie Q à 1 au front d'horloge. - **RAZ, CLEAR, RESET:** Remet la sortie Q à 0 au front d'horloge. - Ces signaux peuvent être actifs hauts ou actifs bas. ### Compteurs Asynchrones Événements qui ne se produisent pas simultanément. Basés sur le diviseur de fréquence. #### Diviseur de Fréquence La fréquence du signal d'horloge peut être divisée en utilisant la sortie d'une bascule comme entrée de synchronisation pour la bascule suivante. #### Compteur Binaire Asynchrone de 3 bits - **Changement sur front montant.** - **8 états différents:** Compteur Modulo-8. #### Tableau des Impulsions d'Horloge (Compteur 3 bits) | Impulsions d'horloge | Q2 | Q1 | Q0 | Valeur décimale | |----------------------|----|----|----|-----------------| | 0 | 0 | 0 | 0 | 0 | | 1 | 0 | 0 | 1 | 1 | | 2 | 0 | 1 | 0 | 2 | | 3 | 0 | 1 | 1 | 3 | | 4 | 1 | 0 | 0 | 4 | | 5 | 1 | 0 | 1 | 5 | | 6 | 1 | 1 | 0 | 6 | | 7 | 1 | 1 | 1 | 7 | | 8 | 0 | 0 | 0 | Retour à 0 | - Q0 commute à chaque impulsion d'horloge. - Q1 commute sur le front descendant de Q0. - Q2 commute sur le front descendant de Q1. #### Retard de Propagation - Chaque bascule introduit un retard (e.g., 10ns). - Les retards s'additionnent. Pour un compteur à 3 bascules, le retard total est $3 \times 10 \text{ ns} = 30 \text{ ns}$. - **Fréquence de synchronisation maximale:** $f_{max} = \frac{1}{\text{retard total}}$ - Pour 3 bascules: $f_{max} = \frac{1}{30 \text{ ns}} = 33.3 \text{ MHz}$. #### Compteur Binaire à 10 états: Modulo-10 - **Recyclage forcé:** Utilise une porte NON ET pour détecter le compte 10 (1010 en binaire) et réinitialiser les bascules. - **Séquence tronquée:** Ne parcourt pas tous les états possibles (0-15 pour 4 bits) mais est réinitialisé plus tôt. - **Compteur DCB:** Séquence ascendante de 0 à 9. #### Modulo - **Définition:** Nombre d'états distincts occupés par un compteur avant son recyclage à l'état initial. - **Modulo maximal:** $2^n$ où $n$ est le nombre de bascules. ### Compteurs Synchrones Relation temporelle fixe, toutes les bascules sont synchronisées simultanément avec le même signal d'horloge. #### Compteur Binaire Synchrone de 3 bits - **Changement sur front montant.** - **8 états différents:** Compteur Modulo-8. #### Table de Transition (pour J-K) | Q2 | Q1 | Q0 | Q2+ | Q1+ | Q0+ | J0 | K0 | J1 | K1 | J2 | K2 | |----|----|----|-----|-----|-----|----|----|----|----|----|----| | 0 | 0 | 0 | 0 | 0 | 1 | 1 | X | 0 | X | 0 | X | | 0 | 0 | 1 | 0 | 1 | 0 | X | 1 | 1 | X | 0 | X | | 0 | 1 | 0 | 0 | 1 | 1 | 1 | X | X | 0 | 0 | X | | 0 | 1 | 1 | 1 | 0 | 0 | X | 1 | X | 1 | 1 | X | | 1 | 0 | 0 | 1 | 0 | 1 | 1 | X | 0 | X | X | 0 | | 1 | 0 | 1 | 1 | 1 | 0 | X | 1 | 1 | X | X | 0 | | 1 | 1 | 0 | 1 | 1 | 1 | 1 | X | X | 0 | X | 0 | | 1 | 1 | 1 | 0 | 0 | 0 | X | 1 | X | 1 | X | 1 | - **Équations de Karnaugh (Exemple):** - J0 = 1, K0 = 1 - J1 = Q0, K1 = Q0 - J2 = Q0Q1, K2 = Q0Q1 #### Compteur Binaire Synchrone de 4 bits - **Changement sur front descendant.** - **16 états différents:** Compteur Modulo-16. #### Performance - **Délai de propagation:** Pour un compteur synchrone, le délai est le délai d'une bascule plus le délai des portes logiques (ET) utilisées pour la propagation du carry. - Exemple: 10ns (bascule) + 5ns (porte ET) + 5ns (porte ET) = 20ns. - $f_{max} = \frac{1}{20 \text{ ns}} = 50 \text{ MHz}$. - Les compteurs synchrones sont généralement plus rapides que les asynchrones car les retards ne s'additionnent pas séquentiellement. ### Compteurs Intégrés #### Compteur Binaire Synchrone 4 bits 74HC163 - **Entrées de données (D0-D3):** Valeurs à charger. - **Entrée d'horloge (HORLOGE):** Synchronise le fonctionnement. - **Entrée de préchargement (PL):** Charge les données D0-D3 de manière asynchrone (active bas). Priorité sur le comptage. - **Réinitialisation maîtresse (MR):** Réinitialise le compteur à 0000 (active haut). Priorité sur toutes les autres entrées. - **Sorties (Q0-Q3):** Affichent l'état actuel du compteur. - **Sorties de carry (RCO):** Utilisées pour la mise en cascade de plusieurs compteurs. #### Compteur/Décompteur 4 bits 74HC193 - **Compteur/décompteur préréglable MODULO-16.** - **Entrées d'horloge (CPU, CPD):** - **CPU (Count Up Pulse Input):** Incrémente le compteur au front montant. - **CPD (Count Down Pulse Input):** Décrémente le compteur au front montant. - **Réinitialisation maîtresse (MR):** Asynchrone, réinitialise à 0000 (active haut). - **Préchargement parallèle (PL):** Asynchrone, charge les données (P0-P3) (active bas). - **Sorties (Q0-Q3):** Affichent l'état du compteur. - **Sorties de carry (TCU, TCD):** Utilisées pour la cascade. - **TCU (Terminal Count Up):** Carry vers le haut. - **TCD (Terminal Count Down):** Borrow vers le bas. ### Exercices sur les Compteurs #### Questions Générales 1. **Modulo d'un compteur:** Le nombre d'états distincts que le compteur peut parcourir avant de revenir à son état initial. 2. **Compteur binaire 3 bits:** Modulo maximal $2^3 = 8$. 3. **Compteur binaire 4 bits:** Modulo maximal $2^4 = 16$. 4. **Compteur Modulo-12:** Nécessite 4 bascules ($2^3