Vous êtes sur la page 1sur 19

95

CHAPITRE 6 COMPTEURS SYNCHRONES


Squenceur : Circuit ou systme qui passe travers une srie d tats successifs grce une horloge synchrone ou asynchrone. Ex : Machine laver. Au chapitre 6, nous allons voir les squenceurs fabriqus l aide de Flips Flops tous connects une horloge commune. Ex : Compteur (avec comme seule entre extrieure : CK, l horloge) + avec de faon optionnelle : reset, load, halt (mise zro, chargement, arrt). Si d autres entres sont prsentes, on parlera de machines d tat ("State machine", vus au chapitre 7). tat (STATE) : tout moment, les sorties de tous les flips flops constituent son tat. Une table : tat prsent tat futur (Present-State Next State ou PS-NS) : sera employe pour le design. Aussi : registres synchrones. Avec le chapitre 6, on pourra faire le design de n importe quel compteur synchrone !

6.1 Circuit squentiel, tat, horloge Circuit synchrone : lment de mmoire : Flip Flop, mme horloge pour tous les Flips Flops Circuit squentiel : lment de mmoire : latch et Flip Flop Rappel : Flip Flop, l horloge est "edge-sensitive" et Latch, l horloge est "level-sensitive". 6.2 tat et sortie Pour dterminer l tat futur : Circuit combinatoire : il faut connatre : les entres prsentes + diagramme des portes

96 Circuit squentiel : il faut connatre : - l histoire des entres - les entres - le diagramme du circuit "L histoire des entres" = sorties courantes des Flips Flops, c l du circuit. est tat Si N Flip Flop au maximum 2N diffrents tats. L tat du circuit n pas toujours gal la sortie des Flips Flops (si logique combinatoire en est sortie). Exemple :

Schma gnral d "Machine de Moore" une

Signaux de Feed-back

Exemple : Shift register. La sortie = dernier FF seulement.

(First In - First Out)

Les Flips Flops ne sont pas directement relis la sortie. Ils sont dits cachs ("hidden"). Si on veut une machine M tats (cycles de M tats) avec N Flip Flop (Parfois on peut mettre plus de FF que le minimum requis).

2N M

97 Les TATS d circuit squentiel peuvent aussi avoir un nom : ATTENTE, ACCEPTE, un DMARRE LE MOTEUR, etc. Un choix judicieux des noms des tats et des variables peut faciliter le design comme on verra plus tard. 6.3 Frquence maximum avec 1 seule horloge On emploie 1 seule frquence d horloge pour tous les FF et tous les FF sont du mme type ou . L horloge ne doit pas tre retarde par des portes logiques, ceci causerait des arrives de coups d horloge des instants diffrents cause du "Skew" de l horloge. cause des avantages de synchronisme, plus de 90 % des circuits emploient une seule horloge et sont du type "squentiel". (a limine les courses et le "catching"). Sorties stables qui ne changent qu coup d au horloge. Quelle est la frquence Max de l horloge ?

On a la topologie suivante :

Dlai C priode minimum


t MIN = C + f + t setup + t hold

Dlai f

+ Set uptime + hold time

f =

1 T min

Ici thold = 0 (ngligeable) Ex : 1 ns pour 74F175 L horloge doit tre stable aussi Ex : pour une montre, on emploie un cristal de quartz.

98 Circuit de communication 9600 bits par seconde (BPS), on emploie un cristal de 11.059 Mhz (dans le microcontrleur 8051, par exemple). Fan-Out (Distribution Maximale) Puisque l horloge est distribue tous les FF, l horloge peut se dgrader. Solutions : 1) Circuit spcial d horloge qui fournit beaucoup de courant. 2) Employer des buffers comme suit :

l inversion n affecte pas le systme permet de maintenir un "fast rise time" (horloge n pas "skewed") est

3) Emploi des Schimitt trigger : "transform slowly changing input signals into sharply defined signals". Il y a donc une bonne immunit au bruit.

99 6.4 tapes d analyse et de design A- tapes d analyse (circuit synchrone avec Flips Flops, sans entre) 1. Sparer les Flips Flops et la logique combinatoire de stimulation. 2. tudier la logique de stimulation et obtenir une quation boolenne pour chacune des entres des Flips Flops. 3. Assumer qu dbut, le circuit est dans un tat zro, donc, mettre "0" dans les quations au boolennes. 4. Obtenir les nouvelles valeurs de sortie et les mettre dans les quations pour dterminer l tat suivant. 5. Reprendre l tape 4 jusqu ce que tous les tats suivants soient dtermins. Indiquer les tats dans des tables de Karnaugh, diagramme en anneaux. B- tapes de design (circuit synchrone avec Flips Flops, sans entre) 1. Exprimer chaque nombre de la squence en binaire. Chaque nombre correspondra un tat. 2. Dterminer une mthode pour assigner les tats M aux sorties des Flips Flops. 3. tablir la table tat-Prsent tat Suivant. 4. Choisir le type de Flip Flop : T, JK, D (D par dfaut). 5. tablir les relations entre les tats. 6. Employer les tats prsents comme entres dans les tables de vrit. 7. Assigner l tat de retour aux tats inemploys. 8. Trouver les quations partir des tables de vrit du point 6. 9. Monter les sorties comme combinaison des sorties des Flips Flops. 10. Raliser la logique combinatoire de stimulation partir des quations. C- tapes de design (registres dcalage cyclique cyclic shift register) 1. tablir la liste successive des tats dans la table TAT PRSENT TAT SUIVANT (Present State Nest State). 2. Ajouter le(s) cas d initialisation pour le dmarrage automatique (e.g. 000 000). 3. Synthtiser l Entre srie (Serialln) comme la somme des mintermes pour lesquels Serialln = 1 dans la liste successive des tats.

100
Table 6.1 State Changes for Three Flip-Flops (Extrait de "Digital Design from Zero to One" p.312)

QN + 1

QN 1

D Flip-Flop D 0 1 0 1

Toggle Flip-Flop ENABLE 0 1 1 0

JK Flip-Flop J 0 0 1 1 0 1 0 1 K 1 0 0 1 1 1 0 0 J 0 1 X X K X X 1 0

0 0 0 1 1 0 1 1

Exemple 1 : (sera fait en classe)

Tir de "Digital Design", J. D. Daniels, 1ere dition, p.313, Fig. 6.10

101 Exemple 2 : (sera fait en classe)

Tir de "Digital Design", J. D. Daniels, 1ere dition, p.315, Fig. 6.12

6.5 Design de compteurs synchrones Maintenant : tant donn la squence quel est le design ? considrer : minimisation/optimisation des tats choix du Flip Flop (habituellement "D") assignation des noms des variables viter les tats non dsirs "lock out" Auto-correcteur

Considrations pratiques 1. 2. 3. 4. S y a M tats au moins N Flip Flop, 2 N M il Parfois pratique d avoir + d tat que le minimum. Cas extrme : 1 FF/tat Prvoir un tat retour ou "ground state" : point de retour pour tous les tats inemploys. Souvent 0000. Si tats inemploys = "X" dans le design des tables, pas sr qu pourra revenir en cas de on dfaillance (attention !). Exemple : Faire le design d compteur que rpte la squence 0, 3, 6, 9, 12, 0... un Employer le code binaire pour le codage des FF D, employer les sorties des FF comme sortie. Ces spcifications ne donnent pas beaucoup de choix au designer.

102 tape 1 et 2 : La sortie des Flips Flops est dtermine par les spcifications. # 0 3 6 9 12 tape 3 : tat prsent Q2 Q1 0 0 0 1 1 1 0 0 1 0 tat suivant Q2 Q1 0 1 1 1 0 0 1 0 0 0 Q3 0 0 0 1 1 Q2 0 0 1 0 1 Q1 0 1 1 0 0 Q0 0 1 0 1 0

0 3 6 9 12

Q3 0 0 0 1 1

Q0 0 1 0 1 0

Q3 0 0 1 1 0

Q0 1 0 1 0 0

D3 0 0 1 1 0

D2 0 1 0 1 0

D1 1 1 0 0 0

D0 1 0 1 0 0

tape 4 : On emploie FF D (Avantage des FF-D, le design est plus ais).

tape 5 :

Relation entre les tats : facile avec FF-D. Si Q 3 Q 2 Q1Q 0 = 0000 et D 3 D 2 D1D 0 = 0011 L tat futur sera Q 3 Q 2 Q1Q 0 = 0011

tape 6 : Obtenu de la table de l tape 3 :

103 tape 7 : Il est sage de laisser des zros dans les tables de Karnaugh (T-K) prcdentes pour avoir un tat de retour connu "ground state". tape 8 : On obtient les quations.
D0 = Q3Q2 Q1Q0 + Q3Q2 Q1Q0 D1 = Q3Q2 Q1Q0 + Q3Q2 Q1Q0 D2 = Q3Q2 Q1Q0 + Q3Q2 Q1Q0 D3 = Q3Q2 Q1Q0 + Q3Q2 Q1Q0

tape 9 : Les sorties sont directement les sorties des FF.

On a choisi une reprsentation genre PAL ici.

6.6 Compteurs codage positionnel Ce sont des compteurs dont la sortie s incrmente ou dcrmente chaque coup d horloge. tat des Flips Flops directement la sortie du circuit.

104 6.7 Compteur dcade dcrmental avec FF-D Toggle Ce sont des compteurs de type 9---0---9---0---9 : 10 tats compteur dcade. 6.8 Compte suprieur en employant le "Ripple Carry output" (RCO) On peut raliser des compteurs 8, 12, 16 bits avec la mthode prcdente, mais le cot est lev cause de la logique d excitation combinatoire approche pas intressante. Approche plus intressante : cascade de circuits de compteur MSI (Medium Scale Integration). Exemple : CB4CLED de Xilinx. CB4CLEB : compteur 4 bits up/down avec external load, 2 Enable. Permet de raliser en cascadant N units, des compteurs 4 N tats. Le Rco peut tre employ pour crer un bit supplmentaire en l envoyant un "toggle enable" d FF externe. un

Exemple :

Que faire pour cascader des compteurs 4 bits ? On a pas accs au contrle de l entre du 1er FF Si on a seulement accs l horloge, alors on propage RCO sur CK2

105

On voit qu faut employer Rco pour des compteurs positive edge triggened. il Il y aura 1 dlai = tpd (temps propagation dans porte ET synthse Rco . Approche moins pire qu "full ripple" compteur avec 8 x tpd (ici 1 seul tpd). un

6.9 Registre dcalage pour le design de compteurs synchrones On va voir quelles sont les squences disponibles avec un "Shift register" (MSI).

Df : ensemble de bascules "D" edge-triggened connectes dos dos, horloge commune.

DIN = vient de l extrieur ou peut-tre gnr de l intrieur (cas des compteurs). Pour DM, M 0 on a DM = Qm-1, donc il y a des limitations aux squences disponibles. 6.10 Serial In Parrallel Out shift register (SR) ou SI PO

Registre dcalage cyclique (RDC) On a aussi des "cyclic SR" *SIPO pour lequel la Serial input est une combinaison des sorties des FF. * pas d entre externe admise.

Registres

srie srie srie parallle parallle srie parallle parallle

SI SI PI PI

SO PO SO PO

106

Exemple circuit TTL

#74164

(SI PO)

avec mise zro asynchrone

(asynchrone) le produit DSA DSB est entr

Shift register 8 bits

Registre 8 bits : Table : CLR L H H H H

CK X

DSA X L L H H

DSB X L H L H

Q0 L L L L H

Q1 L Q0 Q0 Q0 Q0

Q7 L Q6 Q6 Q6 Q6

Mode Clear Shift

8-bi serial-in parallel-out shift register

Note : MR = Master Reset

107 FUNCTION TABLE INPUTS MR CP L X H H H H


H h L l Qn X

OUTPUTS Dsa X l l h h Dsb X l h l h Q0 L L L L H Q1 L q0 q0 q0 q0 . Q7 L q6 q6 q6 q6

OPERATING MODE Reset (clear) Shift

= High voltage level = High voltage level one set-up time prior to the Low-to-High clock transition = Low voltage level = Low voltage level one set-up time prior to the Low-to-High clock transition = Lower case letters indicate the state of the referenced input (or output) on setup time prior to the Low-toHigh clock transition = Don care t = Low-to-High clock transition

6.11 Analyse des Registres SR Cycliques [CSR] cyclic Shift Register On dcode comme ceci : Qi Qi + 1, i = 0, N 1 N = Nb de bits Qo = f(Qi, i = 0, N) fonction boolenne Aprs un certain nb de cycles, 2 N la squence recommence Pour dterminer la squence : - simulation - la faire la maison

Ex : CSR

108 Trs simple Un simple inverseur constitue la logique de Sin Quelle est la squence ? On commence avec 0000(contenu des FF). Solution : le SR va se remplir de 1 puis se vider avec au total 8 tats
Q1 0 1 1 1 1 0 0 0 Q2 0 0 1 1 1 1 0 0 Q3 0 0 0 1 1 1 1 0 Q4 0 0 0 0 1 1 1 1 Q1 0 0 1 0 1 1 0 1 0 Q2 1 0 0 1 0 1 1 0 1 Q3 0 1 0 0 1 0 1 1 0 Q4 1 0 1 0 0 1 0 1 1

12345678-

Switch tailed Ring compteur

8 tats

Si on commence zro Squence de MOEBIUS tat suivant diffre d seul bit (code gray) un Design avec les CSR -

Si on commence ailleurs Squence ANTI-MOEBIUS Tous les FF changent aprs le coup d horloge sauf 1

On peut implanter toute squence qui "se droule avec un patron dcal" (that un folds with a horizontal shift pattern). En faisant le design, voir si on peut avoir un patron qui se droule gauche ou droite.

Ex : - 5 jointures/articulations d robot qui doivent tre plies en squence comme suit : un

A 1 0 0 0 0 Solution : -

B 0 1 0 0 0

C 0 0 1 0 0

D 0 0 0 1 0

E 0 0 0 0 1

Serial in 0 0 0 0 1

On emploie 5 FF, chaque sortie FF commande une articulation, un joint. On aurait pu y aller avec 3FF (23 = 8 > 5 tats requis) mais avec 2 FF de plus, aucun dcodage de sortie !

109

Quelle est la logique combinatoire que va faire circuler un 1 ? Une approche : Considrons les 5 sorties 25 = 32 cas De ceux-ci les cas : A Q0 0 0 B Q1 0 0 C Q2 0 0 D Q3 0 0 E Q4 1 0

On recommence la squence Cas d reset un

SIN 1 1

ABCDE 0000X

On peut synthtiser Sin directement avec : Sin = Q0 + Q1 + Q2 + Q3 , Q4 n pas d a importance ici (Q4 = 1 ou Q4 = 0 et SIN = 1) = Q0 Q1 Q2 Q3 On a alors le design suivant :

Il faut A = B = C = D = 0 pour avoir DIN mis 1. Avec ce design peut importe l tat des FF, aprs 5 coups d horloge au maximum, un 1 va circuler dans le systme (tous les 1 sont rinjects 0 cause de la porte NOR). Q4 peut tre vu comme un tmoin qui avertit lors qu a accompli un cycle, peut servir on arrter le systme. Ce systme est appel "one-hot sequencer". Assigne 1 FF par tat pas efficace comme usage des FF Trs employs. Si on avait voulu faire circuler un "0" au lieu d 1 un a) mettre des inverseurs c un "one-cold sequencer" est b) employer une porte NAND (NAND = 0 lorsque toutes les entres sont 1).

Q0 1 1

Q1 1 1

Q2 1 1

Q3 1 1

Q4 1 1

SIN 0 0

- reset - dbut nouveau cycle

110

On peut faire circuler plus qu 1 la fois, mais n un importe quel mot d tat la fois. un

Gnralisons la mthode de design : 1- tablir la liste de la succession des tats prsent tats futurs incluant le "Serial in". 2- Ajouter le (les) cas d initialisation pour le "dmarrage automatique" ex : 0000 0000. 3- Synthtiser Serial in Serial in = la somme des mintermes pour lesquels Serial in = 1 dans la liste successive des tats. 6.12 Gnrateur pseudo-alatoire C un CSR avec un grand nombre de bascules. Le compteur passe dans beaucoup d est tats N (2 au maximum). Utilit en cryptage de squence srie Utilit en gnration de bruits rptitif

Passe dans 15 des 16 tats sauf 1111 qui est un cul-de-sac.

On a : PS Q1 0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 0 Q2 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 Q3 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 Q4 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 Sin 1 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 Q1 Q2 Q3 Q4 1 1 1 1 1 1 1 1 Q3 0 0 1 1 Q4 0 1 0 1 Sin 1 0 0 1

0) 8) 12) 14) 7) 11) 13) 6) 3) 9) 4) 10) 5) 2) 1) 0)

1111 est un cul-de-sac ici !

111 La sortie du gnrateur pseudo-alatoire peut-tre n importe quel sortie des FF puisque le patron n pas important ici. est 6.13 Units caches Elles peuvent parfois rsoudre le problme lors de la rptition des mmes nombres. Exemple : squence 5 5 4 2 puis 5 5 4 2 6.14 Compteur + ROM pour crer une squence arbitraire

2M N N = longueur de la squence M = nb de bits dans le compteur

Si N n pas une puissance de 2, il faut prvoir un mcanisme de rechargement du compteur ou est effacement avec CLR synchrone qui peut tre command avec une des lignes du ROM On peut aussi employer un contrleur microprogramm qui permet en plus de raliser : sauts, sous-routines, boucles. Dfinition : Circuit squentiel qui assure la fonction de comptage (binaire ou autre) avec 2N tats sans aucun dcodeur de sortie. Sorties = tat des FF chaque coup d horloge. 6.15 Types de compteur 1- Ripple (srie) ou dbordement (asynchrone)
2-

Binaire : up/down, sortie en binaire ck commune la longueur de la squence est le modulo

3- En anneau : - fait circuler un 1 ou un 0 - possde autant d tats que de FF - plusieurs cycles sont raliss, un seul est valide initialisation requise Exemple : one-hot, two-hot one-cold, two-cold sequencer

112

4- Johnson Ex : similaire au compteur en anneau offre 2 fois plus d tats que de FF grce un dcodage simple.

Exemple de circuit 74163 5. Anneau squence arbitraire tat QA QB QC Dcodeur d 0 0 0 Q A QC 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 Q A QB Q B QC Q A QC Q A QB QBQ C

113 Si K bits squence de 2K tats Problme les tats inemploys lock-out (cul-de-sac) : PS QB QC 1 0 0 1 NS QB QC 0 1 1 0

QA 0 1

DA DB DC QA 1 0 0 1 1 0 1 0

Caractristique : Le dernier bit invers est inject en DA Appels : "Switch-tailed ring" compteurs.

6- Compteurs squence quelconqu