8/3/2019 chap6compteur synchrones
1/19
95
CHAPITRE 6COMPTEURS SYNCHRONES
- Squenceur : Circuit ou systme qui passe travers une srie dtats successifs grce unehorloge synchrone ou asynchrone.Ex : Machine laver.
- Au chapitre 6, nous allons voir les squenceurs fabriqus laide de Flips Flops tousconnects une horloge commune.Ex : Compteur (avec comme seule entre extrieure : CK, lhorloge)
+ avec de faon optionnelle : reset, load, halt (mise zro, chargement, arrt).
Si dautres entres sont prsentes, on parlera de machines dtat ("State machine", vus auchapitre 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 employepour le design.
- Aussi : registres synchrones.- Avec le chapitre 6, on pourra faire le design de nimporte quel compteur synchrone !
6.1 Circuit squentiel, tat, horloge
Circuit synchrone : lment de mmoire : Flip Flop, mme horloge pour tous les Flips FlopsCircuit squentiel : lment de mmoire : latch et Flip Flop
Rappel : Flip Flop, lhorloge est "edge-sensitive" et Latch, lhorloge est "level-sensitive".
6.2 tat et sortie
- Pour dterminer ltat futur : Circuit combinatoire : il faut connatre : les entres prsentes + diagramme des portes
8/3/2019 chap6compteur synchrones
2/19
96
Circuit squentiel : il faut connatre : - lhistoire des entres- les entres- le diagramme du circuit
"Lhistoire des entres" = sorties courantes des Flips Flops, cest ltat du circuit.
Si N Flip Flop au maximum 2N diffrents tats.
Ltat du circuit nest pas toujours gal la sortie des Flips Flops (si logique combinatoire ensortie).
Exemple :
Exemple : Shift register.
La sortie = dernier FF seulement.
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).
Schma gnral dune "Machine de Moore"
M N 2
Signaux deFeed-back
(First In - First Out)
8/3/2019 chap6compteur synchrones
3/19
97
Les TATS dun circuit squentiel peuvent aussi avoir un nom : ATTENTE, ACCEPTE,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 dhorloge pour tous les FF et tous les FF sont du mmetype ou .
- Lhorloge ne doit pas tre retarde par des portes logiques, ceci causerait des arrives decoups dhorloge des instants diffrents cause du "Skew" de lhorloge.
- cause des avantages de synchronisme, plus de 90 % des circuits emploient une seulehorloge et sont du type "squentiel". (a limine les courses et le "catching").
- Sorties stables qui ne changent quau coup dhorloge.- Quelle est la frquence Max de lhorloge ?
On a la topologie suivante :
priode minimum
Ici thold= 0 (ngligeable)Ex : 1 ns pour 74F175
Lhorloge doit tre stable aussi
Ex : pour une montre, on emploie un cristal de quartz.
Dlai C Dlai f + Set uptime+ hold time
holdsetupf CMIN ttt +++=
min1
T f =
8/3/2019 chap6compteur synchrones
4/19
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 lhorloge est distribue tous les FF, lhorloge peut se dgrader.
Solutions :1) Circuit spcial dhorloge qui fournit beaucoup de courant.2) Employer des buffers comme suit :
- linversion naffecte pas le systme- permet de maintenir un "fast rise time" (horloge nest pas "skewed")
3) Emploi des Schimitt trigger : "transform slowly changing input signals into sharply definedsignals". Il y a donc une bonne immunit au bruit.
8/3/2019 chap6compteur synchrones
5/19
99
6.4 tapes danalyse et de design
A- tapes danalyse (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 entredes Flips Flops.
3. Assumer quau dbut, le circuit est dans un tat zro, donc, mettre "0" dans les quationsboolennes.
4. Obtenir les nouvelles valeurs de sortie et les mettre dans les quations pour dterminer ltatsuivant.
5. Reprendre ltape 4 jusqu ce que tous les tats suivants soient dtermins. Indiquer les tatsdans 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 ltat 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 dinitialisation pour le dmarrage automatique (e.g. 000 000).3. Synthtiser lEntre srie (Serialln ) comme la somme des mintermes pour lesquelsSerialln =
1 dans la liste successive des tats.
8/3/2019 chap6compteur synchrones
6/19
100
Table 6.1 State Changes for Three Flip-Flops (Extrait de "Digital Design from Zero to One" p.312)
JK Flip-FlopQN + 1 QN 1
D Flip-FlopD
Toggle Flip-FlopENABLE J K J K
0 10 0 0 00 0
0 X
1 00 1 1 1
1 11 X
0 11 0 0 1
1 1X 1
0 01 1 1 0
1 0X 0
Exemple 1 : (sera fait en classe)
Tir de "Digital Design", J. D.Daniels, 1ere dition, p.313,Fig. 6.10
8/3/2019 chap6compteur synchrones
7/19
101
Exemple 2 : (sera fait en classe)
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. Sil y a M tats au moins N Flip Flop, M N 22. Parfois pratique davoir + dtat que le minimum.3. Cas extrme : 1 FF/tat4. 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 quon pourra revenir en cas dedfaillance (attention !).
Exemple : Faire le design dun compteur que rpte la squence 0, 3, 6, 9, 12, 0...Employer le code binaire pour le codage des FF D, employer les sorties des FFcomme sortie.Ces spcifications ne donnent pas beaucoup de choix au designer.
Tir de "Digital Design", J. DDaniels, 1ere dition, p.315,Fig. 6.12
8/3/2019 chap6compteur synchrones
8/19
102
tape 1 et 2 : La sortie des Flips Flops est dtermine par les spcifications.
# Q3 Q2 Q1 Q00 0 0 0 03 0 0 1 1
6 0 1 1 09 1 0 0 112 1 1 0 0
tape 3 :
tat prsent tat suivantQ3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 D3 D2 D1 D0
0 0 0 0 0 0 0 1 1 0 0 1 13 0 0 1 1 0 1 1 0 0 1 1 06 0 1 1 0 1 0 0 1 1 0 0 19 1 0 0 1 1 1 0 0 1 1 0 012 1 1 0 0 0 0 0 0 0 0 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 0011DDDD0000QQQQ 01230123 == etLtat futur sera 0011QQQQ 0123 =
tape 6 : Obtenu de la table de ltape 3 :
8/3/2019 chap6compteur synchrones
9/19
103
tape 7 : Il est sage de laisser des zros dans les tables de Karnaugh (T-K) prcdentes pouravoir un tat de retour connu "ground state".
tape 8 : On obtient les quations.
012301230 QQQQQQQQ D+=
tape 9 : Les sorties sont directement les sorties des FF.
6.6 Compteurs codage positionnel
- Ce sont des compteurs dont la sortie sincrmente ou dcrmente chaque coup dhorloge.- tat des Flips Flops directement la sortie du circuit.
012301231 QQQQQQQQ D +=
012301232 QQQQQQQQ D +=
012301233 QQQQQQQQ D +=
On a choisi unereprsentation genrePAL ici.
8/3/2019 chap6compteur synchrones
10/19
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 estlev cause de la logique dexcitation combinatoire approche pas intressante.
- Approche plus intressante : cascade de circuits de compteur MSI (Medium ScaleIntegration). Exemple : CB4CLED de Xilinx.CB4CLEB : compteur 4 bits up/down avec external load, 2 Enable. Permet de raliser encascadant N units, des compteurs 4 N tats.
- Le Rco peut tre employ pour crer un bit supplmentaire en lenvoyant un "toggleenable" dun FF externe.
Exemple :
- Que faire pour cascader des compteurs 4 bits ?On a pas accs au contrle de lentre du 1er FFSi on a seulement accs lhorloge, alors on propage RCO sur CK2
8/3/2019 chap6compteur synchrones
11/19
105
- On voit quil faut employer Rco pour des compteurs positive edge triggened.- Il y aura 1 dlai = tpd (temps propagation dans porte ET synthse Rco .- Approche moins pire quun "full ripple" compteur avec 8 x tpd (ici 1 seul tpd).
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 lextrieur ou peut-tre gnr de lintrieur (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 desFF.
* pas dentre externe admise.
Registres srie srie SI SO srie parallle SI PO parallle srie PI SO parallle parallle PI PO
8/3/2019 chap6compteur synchrones
12/19
106
Exemple circuit TTL #74164 (SI PO) avec mise zro asynchrone
Registre 8 bits :
Table :CLR CK DSA DSB Q0 Q1 Q7 ModeL X X X L L L ClearH L L L Q0 Q6H L H L Q0 Q6 ShiftH H L L Q0 Q6H H H H Q0 Q6
8-bi serial-in parallel-out shift register
Note : MR = Master Reset
Shift register 8 bits(asynchrone)le produit DSA DSB estentr
8/3/2019 chap6compteur synchrones
13/19
107
FUNCTION TABLE
INPUTS OUTPUTSMR CP Dsa Dsb Q0 Q1. Q7
OPERATING MODE
L X X X L L L Reset (clear)H l l L q0 q6H l h L q0 q6H h l L q0 q6H h h H q0 q6
Shift
H = High voltage levelh = High voltage level one set-up time prior to the Low-to-High clock transitionL = Low voltage levell = Low voltage level one set-up time prior to the Low-to-High clock transitionQn = Lower case letters indicate the state of the referenced input (or output) on setup time prior to the Low-to-
High
clock transitionX = Dont care = 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 bitsQo = f(Qi, i = 0, N) fonction boolenne
Aprs un certain nb de cycles,( )N2 la squence recommence
- Pour dterminer la squence : - simulation- la faire la maison
Ex : CSR
8/3/2019 chap6compteur synchrones
14/19
108
Trs simpleUn simple inverseur constitue la logique de SinQuelle 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
Si on commence zro Si on commence ailleursSquence de MOEBIUS Squence ANTI-MOEBIUS
Design avec les CSR
- On peut implanter toute squence qui "se droule avec un patron dcal" (that un folds with ahorizontal shift pattern ).
- En faisant le design, voir si on peut avoir un patron qui se droule gauche ou droite.
Ex : - 5 jointures/articulations dun robot qui doivent tre plies en squence comme suit :
A B C D E Serial in1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 1
Solution :- 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 !
Q1 Q2 Q3 Q41- 0 0 0 02- 1 0 0 03- 1 1 0 04- 1 1 1 05- 1 1 1 16- 0 1 1 17- 0 0 1 18- 0 0 0 1
8 tats
Q1 Q2 Q3 Q40 1 0 10 0 1 01 0 0 10 1 0 01 0 1 01 1 0 10 1 1 01 0 1 10 1 0 1
Switch tailedRing compteur
tat suivant diffre dun seul bit (code gray) Tous les FF changent aprs le coup dhorloge
8/3/2019 chap6compteur synchrones
15/19
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 :
On peut synthtiser Sin directement avec :
Sin = 3210 QQQQ +++ , Q4 na pas dimportance ici (Q4 = 1 ou Q4 = 0 et SIN = 1)= 3210 QQQQ
On a alors le design suivant :
Il faut A = B = C = D = 0 pour avoir DINmis 1.- Avec ce design peut importe ltat des FF, aprs 5 coups dhorloge 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 quon a accompli un cycle, peut servir
arrter le systme.- Ce systme est appel "one-hot sequencer".
Assigne 1 FF par tat pas efficace comme usage des FFTrs employs.
- Si on avait voulu faire circuler un "0" au lieu dun 1a) mettre des inverseurs cest un "one-cold sequencer"
b) employer une porte NAND (NAND = 0 lorsque toutes les entres sont 1).
A B C D EQ0 Q1 Q2 Q3 Q4 SIN0 0 0 0 1 1 ABCDE0 0 0 0 0 1 0000X
On recommence la squenceCas dun reset
Q0 Q1 Q2 Q3 Q4 SIN1 1 1 1 1 0 - reset1 1 1 1 1 0 - dbut nouveau cycle
8/3/2019 chap6compteur synchrones
16/19
110
- On peut faire circuler plus quun 1 la fois, mais nimporte quel mot dun tat la fois.
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 dinitialisation 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 destats.
6.12 Gnrateur pseudo-alatoire
Cest un CSR avec un grand nombre de bascules. Le compteur passe dans beaucoup dtats(2N au maximum).
Utilit en cryptage de squence srieUtilit en gnration de bruits rptitif
On a :PS
Q1 Q2 Q3 Q4 Sin0) 0 0 0 0 18) 1 0 0 0 1
12) 1 1 0 0 114) 1 1 1 0 07) 0 1 1 1 1
11) 1 0 1 1 113) 1 1 0 1 06) 0 1 1 0 03) 0 0 1 1 19) 1 0 0 1 04) 0 1 0 0 1
10) 1 0 1 0 05) 0 1 0 1 02) 0 0 1 0 01) 0 0 0 1 00) 0 0 0 0 1
Passe dans 15 des 16 tats sauf 1111 quiest un cul-de-sac.
Q1 Q2 Q3 Q41 1 1 11 1 1 1
Q3 Q4 Sin0 0 10 1 01 0 01 1 1
1111 est un cul-de-sac ici !
8/3/2019 chap6compteur synchrones
17/19
111
La sortie du gnrateur pseudo-alatoire peut-tre nimporte quel sortie des FF puisque le patronnest pas important ici.
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
Si N nest pas une puissance de 2, il faut prvoir un mcanisme de rechargement du compteur oueffacement 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 dhorloge.
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 dtats que de FF- plusieurs cycles sont raliss, un seul est valide initialisation requise
Exemple : one-hot, two-hotone-cold, two-coldsequencer
2M N
N = longueur de la squenceM = nb de bits dans le compteur
8/3/2019 chap6compteur synchrones
18/19
112
4- Johnson
-
similaire au compteur en anneau- offre 2 fois plus dtats que de FF grce un dcodage simple.
Ex :
Exemple de circuit 74163
5. Anneau squence arbitraireQA QB QC Dcodeur dtat0 0 0
C AQQ1 0 0
B AQQ1 1 0 CBQQ1 1 1
C AQQ
0 1 1 B AQQ0 0 1 CBQQ
8/3/2019 chap6compteur synchrones
19/19
113
Si K bits squence de 2K tats
Problme les tats inemploys lock-out (cul-de-sac) :
- Caractristique : Le dernier bit invers est inject en DA- Appels : "Switch-tailed ring" compteurs.
6- Compteurs squence quelconqu
PS NS
QA QB QC DA DB DC QA QB QC0 1 0 1 0 1 1 0 11 0 1 0 1 0 0 1 0
Top Related