Circuits séquentiels élémentaires Ecole Polytechnique Universitaire de Montpellier Université Montpellier II Place Eugène Bataillon, 34095 Montpellier cedex 05, FRANCE Laboratoire d'informatique, de Robotique et de Microélectronique de Montpellier UMR 5506 Université Montpellier II / CNRS 161 rue Ada, 34392 Montpellier cedex 05, FRANCE 1
Combinatoire / Séquentiel A0 A1 A2 A3 B0 B1 B2 B3 Additionneur S0 S1 S2 S3 E1 E2 E3 E4 ECOEUR 7 SEGMENTS a b c d e f g 2
Combinatoire / Séquentiel Compteur 0 1 2 A[3..0] Additionneur S[3..0] B[3..0] 3 voie B V A voie A INI OC URG COMMANE E FEUX E CARREFOUR O A R A V B O B R B 3
Combinatoire / Séquentiel Entrées commandes Entrées data CONTROLEUR Commandes Statuts Sorties 4
Combinatoire / Séquentiel a C S S = C.a + C.b b e C e S C S 0 0 S 0 1 S 1 0 0 1 1 1 5
Combinatoire : Combinatoire / Séquentiel -Lorsque les données d entrée sont disponibles au même instant (mots en //) - Les sorties dépendent d uniquement tde la fonction et des données d entrées Ei Si => f(ei) Séquentiel : -Lorsque les données d entrée sont réparties dans le temps (mots en série ou séquences) - Mémorisation de données -Les sorties dépendent de la fonction, des données d entrées et des données mémorisées Ei Si => f(ei,i) i 6
Synchrone / Asynchrone Ei Si Ei Si i i éfinition: Un système séquentiel est asynchrone si à partir de l'instant ou on applique un vecteur d'entrée, son évolution est incontrôlable de l'extérieur. éfinition: Un système séquentiel est synchrone si son évolution est contrôlable de l'extérieur par un signal d'horloge 7
Bascule RS La bascule RS est un dispositif à deux entrées R et S et une sortie présentant la propriété suivante: -une apparition (même fugitive) de S entraîne durablement =1 -une apparition (même fugitive de R) entraîne durablement =0. R S n S R n+1 SR n 00 01 11 10 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 X 0 0 0 X 1 1 1 0 0 0 1 1 0 1 1 0 X 1 1 1 0 1 1 1 1 X n+1 L'énoncé du problème est incomplet: les combinaisons (3) et (7) ne sont pas définies. Elles correspondent à des ordres d'enclenchement (SET) et de déclenchement (RESET) simultanés. En laissant le problème incomplètement spécifié, on peut obtenir plusieurs équations de la bascule 8
Bascule RS SR n n+1 = SR' S.R + n.r R' =(S + n )R'= ((S + n )' +R)' (1) 0 n+1 = S + n.r' = (S'. ( n.r)')' (2) 1 00 01 11 10 0 0 X 1 1 0 X 1 S (') S S' n+1 S R n+1 R (1) R R' (2) (') 0 0 n 0 1 0 1 0 1 1 1 Interdit 9 (R,S)=(1,1) (1 1) introduit it une indétermination. i ti En effet, le passage de la combinaison (R,S)=(1,1) à (R,S)=(0,0) entraîne deux valeurs possibles sur selon que R ou S commute en premier. Si l'on interdit la combinaison (R,S)=(1,1) on remarque que sur les deux structures, la connexion symétrique de la sortie porte la valeur.
Bascule RS Avantages: Simplicité Inconvénients ispositif asynchrone Etat t interdit Sensibilité aux parasites (transitoires) 10
Phénomènes de rebonds +5V Bp R Bp s s t t 11
ispositif anti-rebonds R +5V R S' s Bp R t R' S t Bp Reset ou Etat mémoire Set ou Etat mémoire s t t t 12
Bascule RS La bascule RS est une bascule RS synchronisée par un signal d'horloge. Lorsque =0, la bascule est dans l'état mémoire. Lorsque =1, la bascule fonctionne comme une bascule RS. Cette bascule a toujours un état interdit et fonctionne sur les niveaux d'horloge. R S S R n+1 0 0 n 0 1 0 1 0 1 1 1 Interdit = 1 S R (') 13
Bascule RS Fonctionnement sur niveau de l horloge (=1) Avantages: Insensibilité aux parasites (=0) Inconvénients Etat interdit Sensibilité aux parasites (=1) 14
Bascule -latch La bascule -Latch est une bascule conçue sur le même principe que la RS. Elle est obtenue à partir d'une bascule RS en ne considérant que les deux combinaisons (R,S) = (0,1) et (1,0). (n+1) 0 0 1 1 n+1 = n = 1 (S) (R) (') 15
Bascule -latch Fonctionnement sur niveau de l horloge (=1) Avantages: Pas d état interdit Insensibilité aux parasites (=0) Inconvénients Sensibilité aux parasites (=1) 16
Bascule _Latch Réalisation en CMOS 17
Bascule (Maître-Esclave) Les bascules maître-esclaves permettent de diminuer la sensibilité aux parasites en minimisant la période de transparence. Elles fonctionnent sur le front d'horloge dhorloge. La bascule maître-esclave est constituée de 2 -Latch en cascade. (n+1) 0 0 n+1 = n 1 1 = Maître Esclave _Latch 0 _Latch 0 18
Bascule Réalisation en CMOS Maître Esclave 19
Bascule (Maître-Esclave) Fonctionnement sur fronts d horloge Mémorisation (transfert) de données Avantages: ispositif synchrone Pas d état interdit Insensibilité aux parasites 20
Bascule T (Toggle) Comme la bascule, la bascule T fonctionne sur front d horloge. Elle permet de conserver la valeur de sortie précédente ou de l inverser. Ce type de bascule est particulièrement intéressant pour la réalisation de compteurs. La bascule T peut être réalisée à partir d une bascule. T T (n+1) 0 (n) 1 (n) (n) = T 21
Bascule JK Comme la bascule, la bascule JK est une bascule fonctionnant sur front. Elle dispose par contre de 2 entrées J et K. La bascule JK peut être réalisée à partir d une dune bascule. J K JK (n+1) 00 n 01 0 10 1 11 n = J K Avec = J K + JK + JK = J.n + K.n 22
Bascule JK (autre réalisation) La bascule JK peut également être réalisée à partir de de 2 RS en cascade et d un rebouclage permettant d éliminer l état interdit de la RS. J K JK (n+1) 00 n n+1 = J.n + K.n 01 0 10 1 11 n = Maître Esclave J K RS 0 0 RS 23
Initialisation des bascules Initialisation asynchrone par signaux de Preset (RAU) et Clear (RAZ). Preset Preset Clear Clear Structure à reporter sur les 2 étages (Maître et Esclave) de la bascule. 24
Initialisation des bascules Initialisation synchrone par signaux de Preset (RAU) et Clear (RAZ). 0 = Clear.Preset. + Clear.0 + Preset.1 (Preset Prioritaire) =Clear+Preset Clear. Clear Preset 0 Bascule 25
Inhibition des bascules Inib 0 Bascule Inib 0 = Inib. + Inib. 26
Paramètres temporels des bascules ou JK Temps de Setup Temps de old TpL,TpL TpL(RAZ) TpL(RAU) 27
Registres Les registres sont des associations de bascules permettant de mémoriser et de réaliser certaines opérations sur des mots logiques E3 E2 E1 E0 = S3 S2 S1 S0 = E S S3 S2 S1 S0 28
Registres Chargement // (C=1) et Inhibition (C=0) E3 E2 E1 E0 C S3 S2 S1 S0 i = C.Ei + C.Si 29
Registre universel C1C2 = 00 Chargement parallèle C1C2 = 01 écalage à droite C1C2 = 10 écalage à gauche C1C2 = 11 Inhibition de l'horloge. i = C1.C2.ei + C1.C2.Si-1 + C1.C2.Si+1 + C1.C2.Si E3 E2 E1 E0 S3 EG S3 S2 S2 S1 S1 S0 S2 S1 S0 E C1 C2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Ecrit 30 S3 S2 S1 S0
Mémoires ata In Adr R/W CS ata Out 31
Mémoires ITRS roadmap: International Technology Roadmap for Semiconductors New logic Reused logic Memory 1999 2002 2005 2008 2011 2014 32
Mémoires - Principe d e c o d e u r R/W CS ata In d e l i g n e A Adr A L AC écodeur de colonne ata Out => Inhibition = f(cs. R/W. A L. A C ) 33
Cellule Mémoire SRAM WOR BIT BIT WOR BIT BIT 34
Plan Mémoire SRAM MUX MUX MUX MUX Sense Amp Sense Amp Sense Amp Sense Amp 35
Modèle fonctionnel d une mémoire SRAM WL-prede ecode WLdec code WL driv vers lines Word Memory cell array Bit lines Address Address latch Bit line precharge Bit lines BL-predecode BL-decode Bit line muxs Sense amps Write drivers Write enable Chip select Timing generation ata out latches ata in latches Clock out in 36
Exemple de Floorplan (RAM) 37
Cellule Mémoire RAM WOR C~25nF BIT 38
Compteur Un compteur est une association de n bascules permettant de décrire, au rythme d'une horloge, une séquence déterminée qui peut avoir au maximum 2 n combinaisons différentes. 2 1 0 001 010 0 0 0 0 0 1 0 1 0 000 011 0 1 1 1 0 0 1 0 1 1 1 0 111 100 1 1 1 110 0 0 0 101 éfinition: Une combinaison de sortie d'un compteur est appelée état. Le nombre d'états différents pour un compteur est appelé le modulo ~ de ce compteur. 39
Compteur Un compteur est une association de n bascules permettant de décrire, au rythme d'une horloge, une séquence déterminée qui peut avoir au maximum 2 n combinaisons différentes. 2 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 2 40
Compteur asynchrone 0 1 2 1 T 1 T0 1 T1 1 T2 ' 0' 1' 2' 2 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 2 1 1 1 41
écompteur asynchrone Pour réaliser un décompteur il suffit de considérer sur les sorties des bascules ou de réaliser le même montage avec des bascules fonctionnant sur front montant 0 1 2 1 T0 1 T1 1 T2 0' 1' 2' 0' 1' 2' 2'1'0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 2 2 1 0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 42
Compteur asynchrone par 6 Pour réaliser un compteur ou un décompteur dont le cycle n'est pas une puissance de 2, la seule solution est d'agir sur l'entrée "Clear" lorsque la combinaison correspondant au modulo du compteur ce produit sur les sorties de celui ci. 0 1 2 Clear 1 T0 1 T1 1 T2 0 1 2 2 1 0 Clear 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 43
Compteur asynchrone () 1 T J 1 ' ' ' K 0 1 2 0 1 2 0' 1' 2' 44
Inconvénients des compteurs asynchrones ppp 0 1 2 7 7 6 4 0 Tm = p * n élai de propagation du compteur T Tm Période de l'horloge F 1/(Tm) = 1 / (n*p) Fréquence de l'horloge 45
Inconvénients des compteurs asynchrones Compteurs / écompteur Modification de l état 0 1 2 1 T0 1 T1 1 T2 0' 1' 2' 46
Inconvénients des compteurs asynchrones Logique sur des signaux asynchrones (, Clear) Risque de transitoires 0 1 2 Clear 1 T0 1 T1 1 T2 47
Règles élémentaires de conception Pas de logique sur les signaux - d horloge () -de forçage (Clear, Preset) 6 a INPUT VCC AN2 1 OR2 5 com INPUT VCC NOT AN2 3 OUTPUT 8 s 48
Compteur synchrone Clear 0 1 T0 T1 T2??? 2 Clear 0 1 0 1 2??? 2 Clear 0 J1 1??? J0 J2 2? K0? K1? K2 49
Compteur synchrone Clear 0 1??? T0 T1 T2 2 2 1 0 0 0 0 0 0 1 T0 = 1 T1 = 0 0 1 0 T2 = 0.1 0 1 1 1 0 0 1 0 1 Tn = 0.1...n-1 1 1 0 1 1 1 0 0 0 50
Compteur synchrone 0 1 2 1 T0 T1 T2 0' 1' 2' Tm = p élai de propagation du compteur T Tm Période de l'horloge F 1/(Tm) = 1 / p Fréquence de l'horloge 51
écompteur synchrone Un décompteur peut être obtenu en sortant sur les sortie du compteur. On peut également réaliser un décompteur en remarquant sur la table de vérité que le bit de poids faible change à tous les coups d'horloge et qu'un bit quelconque change lorsque tous les bits de droite sont égaux à 0. T0 = 1 T1 = 0 T2 = 0.1 2 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 T0 0' 0 Tn = 0.1...n-1 T1 1' 1 T2 2' 2 52
Compteur / décompteur synchrone Par le même raisonnement, on peut déterminer la structure d'un compteur / décompteur synchrone dont le mode comptage ou décomptage est commandé par une commande C (C=0 => Comptage, C=1 => écomptage). T0 = 1 T1 = C.0 + C.0 = C 0 T2 = C.0.1 + C.0.1 Tn = C.0.1...n-1 1 n 1+C0 C.0.1 1...n-1 1 C T2 2 T1 1 T0=1 0 53
Compteur synchrone par 6 Pour réaliser un compteur, un décompteur ou un compteur / décompteur dont le cycle n'est pas une puissance de 2, il faut recalculer les fonctions d'entrée des bascules. 2 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 Soit C5 un flag prévenant qu'on est sur la combinaison 5. C5 = 2.1.0 T0 = 1 (Même fonctionnement que C5 vaille 0 ou 1) T1 = C5.0 + C5.0 = C5.0 (Conservation de la valeur de sortie lorsque C5=1) T2 = C5.0.1 1 + C5.1 = C5.0.1 1 + C5 (Inv. de la valeur de sortie lorsque C5=1) 54
Compteur / écompteur par 6 avec Inhibition 2 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 Inib Compt Clear i Inib : Signal d inhibition du compteur (actif sur niveau 1) Compt : Signal de comptage (1) / écomptage (0) C0 : étection de la combinaison 0 C5 : étection de la combinaison 5 T0 = Inib T1 = Inib [Compt{C5.0)} + Compt {C0.0 } ] T2 = Inib [Compt{C5.0.1 + C5} + Compt {C0.0.1 +C0].1 C0] = 55
Bascules T, et JK E T E E J K 56
Compteur synchrone () Clear 0 1 0 1 2??? 2 2 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 (n+1) 0 0 1 1 0 = 0 1 = 0.1 + 0.1 = 0 1 2 = 0.1. 2 +(0.1).2.2 = 0.1 2 57 n =...
écompteur synchrone () Clear 0 1 0 1 2??? 2 2 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 (n+1) 0 0 1 1 0 = 0 1 = 0.1 + 0.1 = (0 1) 2 = (0+1). 2 + (0+1).2 = (0+1) 2 58 n =...
Compteur / écompteur par 6 avec Inhibition 2 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 Inib Compt Clear = i Inib : Signal d inhibition du compteur (actif sur niveau 1) Compt : Signal de comptage (1) / écomptage (0) C0 : étection de la combinaison 0 C5 : étection de la combinaison 5 0 = [Inib [Compt{C5.0 + C5.0 } + Compt {C0.0 0 +C00 } C0.0 ]+Inib Inib. 0] = [Inib [0' ] + Inib. 0] = Inib 0 1 = [Inib [Compt{C5.(0.1 +0.1)+C5.0} + Compt {C0.(0.1 +0.1) + C0.0} ] + Inib. 0] = [Inib [Compt{C5 [Compt{C5.(0 1)} + Compt {C0.(0 1 ) } ] + Inib. 0] 2 = [Inib [Compt{C5.(0.1 [ 2)} + Compt {C0.(0+1 2 ) } ] + Inib. 0] 59
Règles de conception (Registres, Compteurs, ) Pas de logique sur les signaux - d horloge () -de forçage (Clear, Preset) Clear Contrôle Contrôle e0 e1 e2 Clear ei i?? 1? 0 2 = 0 1 2 60
Règles de conception (Circuit) Pas de logique sur les signaux - d horloge () -de forçage (Clear, Preset) Clear Control ata_in Bloc1 Bloc2 Bloc3 Bloc4 ata_out 61