Vous êtes sur la page 1sur 19

95

CHAPITRE 6
COMPTEURS SYNCHRONES

- Squenceur : Circuit ou systme qui passe travers une srie dtats successifs grce une
horloge synchrone ou asynchrone.
Ex : Machine laver.

- Au chapitre 6, nous allons voir les squenceurs fabriqus laide de Flips Flops tous
connects 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 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 nimporte 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, 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
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 en
sortie).

Exemple :

Schma gnral dune "Machine de Moore"

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 2N M


(Parfois on peut mettre plus de FF que le minimum requis).
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 mme
type ou .
- Lhorloge ne doit pas tre retarde par des portes logiques, ceci causerait des arrives de
coups dhorloge des instants diffrents cause du "Skew" de lhorloge.
- 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 quau coup dhorloge.
- Quelle est la frquence Max de lhorloge ?

On a la topologie suivante :

Dlai C Dlai f + Set uptime


+ hold time
priode minimum t MIN = C + f + t setup + t hold

1
f =
T min

Ici thold = 0 (ngligeable)


Ex : 1 ns pour 74F175

Lhorloge 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 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 defined
signals". Il y a donc une bonne immunit au bruit.
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 entres
des Flips Flops.
3. Assumer quau dbut, le circuit est dans un tat zro, donc, mettre "0" dans les quations
boolennes.
4. Obtenir les nouvelles valeurs de sortie et les mettre dans les quations pour dterminer ltat
suivant.
5. Reprendre ltape 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 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 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)

D Flip-Flop Toggle Flip-Flop JK Flip-Flop


QN + 1 QN 1
D ENABLE J K J K
0 1
0 0 0 0 0 X
0 0
1 0
0 1 1 1 1 X
1 1
0 1
1 0 0 1 X 1
1 1
0 0
1 1 1 0 X 0
1 0

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. Sil y a M tats au moins N Flip Flop, 2 N M


2. Parfois pratique davoir + dtat que le minimum.
3. Cas extrme : 1 FF/tat
4. 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 de
dfaillance (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 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.

# Q3 Q2 Q1 Q0
0 0 0 0 0
3 0 0 1 1
6 0 1 1 0
9 1 0 0 1
12 1 1 0 0

tape 3 :

tat prsent tat suivant


Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 D3 D2 D1 D0
0 0 0 0 0 0 0 1 1 0 0 1 1
3 0 0 1 1 0 1 1 0 0 1 1 0
6 0 1 1 0 1 0 0 1 1 0 0 1
9 1 0 0 1 1 1 0 0 1 1 0 0
12 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 Q 3 Q 2 Q1Q 0 = 0000 et D 3 D 2 D1D 0 = 0011
Ltat futur sera Q 3 Q 2 Q1Q 0 = 0011

tape 6 : Obtenu de la table de ltape 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 sincrmente ou dcrmente chaque coup dhorloge.
- 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 dexcitation 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 lenvoyant un "toggle
enable" dun FF externe.

Exemple :

- Que faire pour cascader des compteurs 4 bits ?


On a pas accs au contrle de lentre du 1er FF
Si on a seulement accs lhorloge, alors on propage RCO sur CK2
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 des
FF.
* pas dentre externe admise.

Registres srie srie SI SO


srie parallle SI PO
parallle srie PI SO
parallle parallle PI PO
106

Exemple circuit TTL #74164 (SI PO) avec mise zro asynchrone

Shift register 8 bits


(asynchrone)

le produit DSA DSB est


entr

Registre 8 bits :

Table :
CLR CK DSA DSB Q0 Q1 Q7 Mode
L X X X L L L Clear
H L L L Q0 Q6
H L H L Q0 Q6 Shift
H H L L Q0 Q6
H H H H Q0 Q6

8-bi serial-in parallel-out shift register

Note : MR = Master Reset


107

FUNCTION TABLE

INPUTS OUTPUTS
OPERATING MODE
MR CP Dsa Dsb Q0 Q1 . Q7
L X X X L L L Reset (clear)
H l l L q0 q6
H l h L q0 q6
Shift
H h l L q0 q6
H h h H q0 q6

H = High voltage level


h = High voltage level one set-up time prior to the Low-to-High clock transition
L = Low voltage level
l = Low voltage level one set-up time prior to the Low-to-High clock transition
Qn = Lower case letters indicate the state of the referenced input (or output) on setup time prior to the Low-to-
High
clock transition
X = 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 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 Q2 Q3 Q4 Q1 Q2 Q3 Q4
1- 0 0 0 0 0 1 0 1
2- 1 0 0 0 0 0 1 0
3- 1 1 0 0 1 0 0 1 Switch tailed
4- 1 1 1 0 0 1 0 0 Ring compteur
5- 1 1 1 1 1 0 1 0
6- 0 1 1 1 1 1 0 1
7- 0 0 1 1 0 1 1 0
8- 0 0 0 1 1 0 1 1
8 tats 0 1 0 1

Si on commence zro Si on commence ailleurs


Squence de MOEBIUS Squence ANTI-MOEBIUS
tat suivant diffre dun seul bit (code gray) Tous les FF changent aprs le coup dhorloge sauf 1

Design avec les CSR

- 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 dun robot qui doivent tre plies en squence comme suit :

A B C D E Serial in
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 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 !
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 B C D E
Q0 Q1 Q2 Q3 Q4 SIN
On recommence la squence 0 0 0 0 1 1 ABCDE
Cas dun reset 0 0 0 0 0 1 0000X

On peut synthtiser Sin directement avec :

Sin = Q0 + Q1 + Q2 + Q3 , Q4 na pas dimportance 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 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 FF
Trs employs.
- Si on avait voulu faire circuler un "0" au lieu dun 1
a) mettre des inverseurs cest un "one-cold sequencer"
b) employer une porte NAND (NAND = 0 lorsque toutes les entres sont 1).

Q0 Q1 Q2 Q3 Q4 SIN
1 1 1 1 1 0 - reset
1 1 1 1 1 0 - dbut nouveau cycle
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 des
tats.

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 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 Q2 Q3 Q4 Sin Sin
Q1 Q2 Q3 Q4 Q3 Q4
0) 0 0 0 0 1 1 1 1 1 0 0 1
8) 1 0 0 0 1 0 1 0
1 1 1 1
12) 1 1 0 0 1 1 0 0
14) 1 1 1 0 0 1 1 1
7) 0 1 1 1 1
11) 1 0 1 1 1
13) 1 1 0 1 0 1111 est un cul-de-sac ici !
6) 0 1 1 0 0
3) 0 0 1 1 1
9) 1 0 0 1 0
4) 0 1 0 0 1
10) 1 0 1 0 0
5) 0 1 0 1 0
2) 0 0 1 0 0
1) 0 0 0 1 0
0) 0 0 0 0 1
111

La sortie du gnrateur pseudo-alatoire peut-tre nimporte quel sortie des FF puisque le patron
nest 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

2M N

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

Si N nest pas une puissance de 2, il faut prvoir un mcanisme de rechargement du compteur ou


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 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-hot


one-cold, two-cold
sequencer
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 arbitraire


QA QB QC Dcodeur dtat
0 0 0 Q A QC
1 0 0 Q A QB
1 1 0 Q B QC
1 1 1 Q A QC
0 1 1 Q A QB
0 0 1 QBQ C
113

Si K bits squence de 2K tats

Problme les tats inemploys lock-out (cul-de-sac) :

PS NS
QA QB QC DA DB DC QA QB QC
0 1 0 1 0 1 1 0 1
1 0 1 0 1 0 0 1 0

- Caractristique : Le dernier bit invers est inject en DA


- Appels : "Switch-tailed ring" compteurs.

6- Compteurs squence quelconqu

Vous aimerez peut-être aussi