La Logique Séquentielle I
Transcription
La Logique Séquentielle I
La Logique Séquentielle I Flip-flops et … PHYS-F-314 Gilles de Lentdecker et Kael Hanson Université Libre de Bruxelles Service de Physique des particules élémentaires Bascule SR (SR « Flip-Flop ») Le circuit ci-dessous à gauche est la plus fondamentale porte logique qui contient une mémoire de son état précédent. Considérons ce qui se passe quand les deux entrées sont 1: si Q est 1 il entraîne Q’ d’être 0 qui soutient Q étant 1; si Q est 0 le résultat est inversé à cause de la symétrie du circuit. Il y a deux états possibles et, alors que S et R sont 1, le circuit « rappelle » le dernier état. Voilà, nous avons créé une mémoire! Si on souhaite de changer l’état, il est possible par changer S ou R: si S devient 0 et R reste à 1, il force Q à 1 et Q’ à 0. Si S demeure 1 et R est baissé à 0, puis Q’ est 1 et Q est 0. Notez que l’activation est « logic low » : S et R agent quand ils sont à 0. Il y a également une version ci-dessous à droit qu’agit en logique positive (à vérifier). S R Q Q’ 1 1 1 0 0 1 0 1 1 0 0 0 1 1 pas de changement Mis en œuvre d’un bascule SR en portes OU-NON et qui a R et S « active-high. » 2 Verrous D LE S R Q 0 1 1 0 0 1 1 0 1 1 X 0 1 1 hold Un verrou transparent (transparent latch) recopie son entrée ou tient fixé l’état de son entrée au point précédent en fonction d’un signal de contrôle. On peut construire cette porte d’une bascule SR et quelques portes par réfléchir sûr le tableau de fonctionnement à droit … S = I'+LE' R = I + LE' € D LE S Q R 3 The Edge-Triggered D Flip-Flop Même si le bascule SR semble très utile, en réalité il est rarement utilisé, or plus populaire sont les « clocked » flip-flops dont le type « D » est le plus populaire. Ici c’est la réalisation de le circuit intégré ’74 « positive edge-triggered type D flip-flop. » Suit la titre, ce circuit n’agit que à le front montant (en général il y a également les modelés qui agit à le descendant) d’un signal « horloge. » Allons regarder au fonctionnement en détail. On note immédiatement que le côté droit est simplement une SR – donc j’étiquette ces points dans le circuit S et R. Lors CLK est 0 R et S sont 1, et en suivant les règles de la SR la sortie demeure pas changée. Y S R X CLK D X Y R S Q Q’ 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 pas de changement pas de changement 4 Verrous et registres LE OE’ Dn In On H H L L L H H H H H L H l1 L L L H h1 H H H L L L Z H L H H Z L L l1 L Z L L h1 H Z ‘573 octal D-‐type transparent latch et le tableau de foncDonnement. Notez 1: le minuscules l et h signifie l’état avant l’événement LE 0. Aussi à savoir: l’état interne est préservé même si la sorDe est en Z. CP OE’ Dn In On LE2 1 l1 L L LE2 1 h1 H H LE2 0 l1 L Z LE2 0 h1 H Z ‘574 octal D-‐type flip-‐flop posiDve edge triggered. Notez 1: le miniscules ici indiquent l’état avant le front d’horloge CP. Notez 2: LE = front montant – la registre n’est sensible qu’à l’aWaque d’horloge. If you are sDll confused about the difference between latches and registers, note that the latch’s output is dependent on the level of the LE signal while the register’s output is dependent on the rising edge of the clock signal 5 JK Flip Flop Le bascule en type « JK » opère similairement à le D bascule avec un double entrée comme la SR (J ~ S et K ~ R). Il étend la fonctionnalité de la SR par munir une opération quand J = K = 1 : inverser la sortie. Il est plus général que le D et peut être configuré d’agir comme le D. J K CLK Qn+1 0 0 TE Qn 0 1 TE 0 1 0 TE 1 1 1 TE Qn’ En particular, notez bien la cercle à l’entrée d’horloge: il précise que la ‘112 soit un JK de type qui déclenche à le rebord arrière. Même si les JKs sont plus versatiles que les bascules D, les D’s sont beaucoup plus populaire, spécifiquement dans la logique programmée où les JK’s sont difficiles de trouver en « hardware. » Pour le plupart, FPGAs implémente D’s. 6 Compteurs en cascade Q4 Q3 Q2 Q1 CLR CLK 7 Les automates finis FINITE STATE MACHINES 8 L’exemple FSM : distributeur automatique Disons que vous avez la tâche pour réaliser un distributeur des colas. Chaque cola coût 1 EUR et la machine prend 1 EUR, et 50/20/10 EUR cent espèces. Vous dessinez la FSM montré à droit où chaque état est marqué par le montant qui reste à payer: il y a 11 états et chaque état possède 1, 2, ou 3 sorDes en foncDon de la prochaine espèce reçue. Énumérez chaque état comme un adresse binaire – vous avez besoin de 4 registres de tenir l’état de la FSM. Une tableau parDel de la progression des états est: Q3 0 0 0 0 0 0 0 … 1 État en entrée Q2 Q1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 … … 0 0 Q0 0 0 0 1 1 1 0 … 1 C10 1 0 0 1 0 0 1 … 1 AcAon C20 0 1 0 0 1 0 0 … 0 C50 0 0 1 0 0 1 0 … 0 D3 0 0 0 0 0 0 0 … 1 État en sorAe D2 D1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 … … 0 1 D0 1 0 1 0 1 0 1 … 0 start 0000 10 20 20 50 90 0001 50 50 40 0110 10 10 30 0111 80 0010 10 70 0011 10 20 20 10 20 50 0101 60 0100 10 20 50 50 10 20 1000 50 10 1001 10 20 10 On doit trouver les combinaisons des OU/ET/NON qui saDsfait l’expression logique: Dn = f(Qi; C10; C20; C50) Je menDonne qu’il soit également possible d’énumérer le choix d’espèce en 2 chiffres binaires: 00 = 0.10 EUR; 01 = 0.20 EUR; 10 = 0.50 EUR, peut être. Ceci est déjà un problème très difficile de réaliser en portes discrètes. receive cola 1010 9 Le compteur comme une FSM Q2 Q1 Q0 UP D2 D1 D0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 0 Les limitaDons d’un compteur en cascade étaient présentés. Ici est un mis en œuvre d’un compteur synchrone de 3-‐bits uDlisant la concepDon de la FSM. Nous énumérons les états dans le tableau … ajoutons la possibilité de préciser la direcDon par le signal UP – vrai indique que le compteur se croisse à chaque pas, faux qu’il décrémente. Les relaDons logiques pour marcher travers les états sont: D 0 = Q 0ʹ′ D 1 = Q 0 ⊕ UP ⊕ Q 1 D 2 = (Q 0 ⊕ UP)(Q 1 ⊕ UP) ⊕ Q 2 € 10 Simulation du compteur synchrone 11