Professional Documents
Culture Documents
1 -
CHAPITRE II :
INTRODUCTION
Un circuit squentiel est un circuit dont la sortie dpend de la squence d'entres appliques
depuis la mise en route du circuit : ce circuit mmorise une information. La valeur de
l'information mmorise forme l'tat du circuit ; le support de cette information est les
variables d'tats. Ces variables tant binaires, un circuit squentiel n variables d'tat peut
prendre 2n tats.
Nous n'tudierons ici que les circuits squentiels synchrones : les changements de valeur de
chacune des variables d'tat sont synchroniss par un signal ; quand ce signal n'est pas actif,
l'tat ne peut pas tre modifi.
Aprs avoir prsent l'lment de base des circuits squentiels : les bascules, et leur utilisation
pour raliser des registres (1), le modle d'automate synchrone sera prsent (2), ainsi que
les mthodes de synthse d'automates (3).
1.1. DEFINITION
Une bascule est un circuit squentiel lmentaire, capable de mmoriser une variable d'tat et
- II.2 -
donc qui peut prendre 2 tats (tat 0 et tat 1). Il existe diffrents types de bascules, qui
peuvent tre classs par :
1.2. BASCULE D
Une bascule D (pour Delay) synchrone est un circuit 2 tats, qui a une entre de valeur D,
une entre d'activation Act, et 2 sorties y (tat de la bascule) et .
La figure II-1 dfinit les entres et sorties d'une bascule D, ainsi que son tableau de
fonctionnement.
y Act D y t+? t
D non * yt
y oui 0 0
Act oui 1 1
Tant qu'il n'y a pas activation de la bascule (Act : non), la bascule garde son tat antrieur,
quelle que soit la valeur de l'entre D. Quand la bascule est active (Act : oui), l'tat de la
bascule prend la valeur de l'entre D : une bascule D permet de mmoriser une valeur entre
deux activations.
La bascule D est la plus utilise, en particulier pour raliser des registres, mais il existe d'autres
bascules avec des entres de valeurs diffrentes.
y Act R S y t+? t
R
non * * yt
S y oui 0 0 yt
Act oui 0 1 1
oui 1 0 0
oui 1 1 ???
Figure II 2 : bascule RS
J y Act J K y t+?t
y non * * yt
K
Act oui 0 0 yt
oui 0 1 0
oui 1 0 1
oui 1 1 yt
y
Act T y t+?t
T
y non * yt
Act oui 0 yt
oui 1 yt
Une bascule D peut tre ralise partir d'une bascule RS (avec S = D et R complmentaire)
ou d'une bascule JK (avec J = D et K complmentaire). Une bascule T peut tre ralise
partir d'une bascule JK (avec J et K = T).
- verrou sensible au niveau haut : la bascule est active ds que (et tant que) Act = 1,
- verrou sensible au niveau bas : la bascule est active ds que (et tant que) Act = 0,
ce qui veut dire que quand la bascule est active, son tat est gal la valeur de l'entre D : un
verrou est "transparent" quand il est activ.
Le fonctionnement temporel d'un verrou D sensible au niveau haut est indiqu l'aide d'un
chronogramme donn dans la figure II-5 : la figure II-5 a) illustre le fonctionnement de type
verrou, tandis que la figure II-5 b) met en vidence les retards associs au fonctionnement (en
fait, c'est plus complexe : les retards sont diffrents suivant que l'tat passe de 0 1 ou de 1
0 ; de plus, les retards sont diffrents pour la sortie y et la sortie .
Act Act
D
D
y
?? ??
y ? ? t1 ? t2
b) retards de positionnement de y
a) verrou sensible au niveau haut par rapport Act ( ? t1) et D ( ? t2)
Si l'entre D change "au moment o" l'entre d'activation Act passe de 1 0 (pour un verrou
sensible au niveau haut), l'tat de la bascule aprs la fin de l'activation est indtermin : on ne
sait pas si la nouvelle valeur de l'entre a t mmorise ou non. Des intervalles de temps t1
(temps de positionnement, tset-up) et t2 (temps de maintien, thold ) dfinissent l'intervalle de
temps o D doit tre stable autour du passge de Act de 1 0.
- bascule sensible au front montant : la bascule est active quand Act passe de 0 1,
- bascule sensible au front descendant : la bascule est active quand Act passe de 1 0,
ce qui veut dire qu'une telle bascule ne peut changer d'tat qu' des instants bien prcis : la
(les) entre(s) de valeur sont chantillonnes aux fronts de l'entre d'activation.
- II.5 -
Act Act
t1 t2
? ?
D
D
y
??
y ? ?t
Supposons qu'on veuille concevoir un circuit 2 tats, qui complmente son tat chaque
activation (squence d'tats 0101010.....). Il semble logique d'utiliser le montage de la figure
II-7 :
- II.6 -
a) montage
propos y
D
Act
Act Act
D ?????
D
?? ?
?t
y ?????
y
Si la bascule utilise dans le montage de la figure II-7 a) est de type verrou, le fonctionnement
n'est pas correct (Fig.II-7 b)) : ds que la bascule est active, l'tat y est complment ;
l'entre D est complmente en consquence. Comme le verrou est toujours activ, son tat
se complmente ..... On obtient bien en sortie la squence 010101..., mais les changements
de valeurs ne sont pas synchroniss par l'entre d'activation, et quand Act passe 0, l'tat de
la bascule est indtermin.
Note : un verrou D toujours activ, reboucl suivant le schma de la figure II-7-a avec une
chane de 1 ou 2p +1 inverseurs permet de gnrer un signal d'horloge dont la priode
dpend du nombre et du retard des inverseurs utiliss. Mais il ne s'agit pas s d'un circuit
squentiel synchrone : le changement d'tat n'est pas synchronis par un signal (Act toujours
vrai).
Quand on utilise une bascule sensible au front, le fonctionnement est correct (Fig. II-7 c)),
condition que l'entre reste stable autour du front de Act, c'est--dire que :
t + > t2,
En gnral, les bascules sont conues de faon ce que Min ( tpLH , tpHL .) > thold , donc cette
relation est toujours vrifie.
ce qui fixe une frquence maximale pour Act. Par exemple, si = 0 (cas des registres
dcalage, voir plus loin), on obtient :
T > tsetup + Max( tpLH , tpHL .)
Pour les circuits TTL utiliss en travaux pratiques (les temps caractristiques se comptent en
nano-secondes), on obtient des frquences maximales entre 16MHz (7474) et 75 MHz
(74AS74). Pour les technologies actuelles, o les temps se comptent en pico-secondes, on
obtient des frquences maximales de l'ordre du GHz.
Pour raliser le type de montage de la figure II-7, on peut aussi utiliser 2 bascules de type
verrou au lieu d'une bascule sensible au front : on connecte ces 2 verrous en srie, en les
activant alternativement. On obtient une bascule de type matre-esclave (Figure II-8).
E1
D y E2
DM yM DE yE
D
Act Act
yM
E2 y
E1
Quand E1 vaut 1, la valeur de l'entre D (connecte DM) est recopie dans le premier
verrou ; quand E1 passe 0, la dernire valeur de D est mmorise. Ds que E2 passe 1,
cette valeur est recopie dans le deuxime verrou et affiche sur la sortie y, o elle sera stable
jusqu' la prochaine activation. Le premier verrou est appel verrou matre, et le deuxime,
verrou esclave.
- II.8 -
Quand E2 = , cette bascule se comporte comme une bascule sensible au front descendant de
E1. La bascule ne se comporte correctement que si on a toujours E1 . E2 = 0 (non-
recouvrement des activations).
Certaines bascules (en particulier les bascules sensibles au front) ont plusieurs entres
d'activation :
En CK Activation
0 * non
1 $,0,1 non
1 # oui
Pour une bascule qui ne doit pas voluer chaque priode d'horloge, cela permet de
connecter directement l'entre d'horloge de la bascule l'horloge du systme, et donc d'avoir
un signal pas trop dgrad et sans alas, et d'utiliser l'entre En pour autoriser ou non
l'volution (la fonction d'autorisation peut tre une fonction boolenne complexe).
Pour une bascule qui doit voluer chaque priode d'horloge, l'entre En est inutile : il suffit
de connecter l'horloge du systme sur l'unique entre d'activation de la bascule ... cette entre
d'ailleurs est souvent appele entre d'horloge H ou CK dans les documentations.
Outre les entres de donnes et d'activation, les bascules ont des entres d'initialisation 0 et /
ou 1 : ces entres sont prises en compte indpendamment de l'entre d'activation, et servent
imposer une valeur initiale dans les bascules la mise sous tension du circuit (Fig.II-9)
- II.9 -
C P Act D y
t+1
C P
y 10 * * 0
D 01 * * 1
y 11 * * ?
0 0 non * y t
Act 0 0 oui 0 0
0 0 oui 1 1
Ces entres permettent une initialisation asynchrone de l'tat. On peut aussi assurer une
initialisation synchrone (pour initialiser 0, D = init - - 0 . tat suivant , pour initialiser 1,
D = init--1 . tat suivant).
Nous avons vu au chapitre I (3.1.) que des capacits ralisent, en technologie MOS, une
mmorisation rudimentaire : ce mcanisme peut tre utilis pour raliser un verrou (Fig. II-10)
Act
D y
A l'aide de deux verroux de ce type, activ l'un par Act, l'autre par son complmentaire, il est
possible de raliser une bascule matre-esclave, qui elle aussi est dynamique.
- II.10 -
Pour obtenir un verrou capable de mmoriser indfiniment une information (tant que le circuit
st aliment), la valeur de l'tat est reboucle en entre quand Act= 0 (Fig. II-11).
Act
D y
1
0
y
Un multiplexeur slectionne soit l'entre D, soit l'tat courant yt, d'aprs la valeur de Act (ce
multiplexeur est en gnral ralis par un rseau de transistors MOS (cf Fig.I-19)).
3. REGISTRES ET MMOIRES
a n-1 an-2 a0 A
n
ER ER
registre R
yn-1 yn-2 y0
Y n
Le type de bascules utilis est choisi d'aprs l'utilisation du registre. On utilise souvent des
bascules deux entres d'activation (horloge et autorisation) : l'horloge du systme est
connecte l'entre d'horloge des bascules, le signal ER est connect l'entre d'autorisation.
C
R1 R2
La prsence d'un registre en entre d'un circuit combinatoire permet de disposer des variables
- II.12 -
sous les deux formes, normale et complmente, car chaque bascule du registre affiche en
sortie ces deux formes.
3.3.REGISTRES DECALAGE
Si on veut dcaler gauche ou droite les bits d'information mmoriss dans un registre, il
faut le munir de la capacit de dcalage. Un circuit registre qui a deux fonctionnalits :
- dcalage droite (si decal = 1 et ER activ),
- chargement parallle (si dcal = 0 et ER activ)
est donn figure III-22.
a n-1 an-2 a0
e
e A
decal 1 0 n
1 0 1 0 ER
ER
registre R
decal
Y n
yn-1 yn-2 y0
a) conception d'un registre dcalage b) schma d'un registre
dcalage
Ce type de registre ne peut pas tre ralis avec des verrous : il y aurait un nombre
indtermin de dcalages durant le niveau actif de ER.
- entre parallle, sortie parallle plus dcalage d'une position droite (celui de la figure III-
22),
- entre parallle, sortie parallle plus dcalage d'une position gauche,
- entre parallle, sortie parallle plus dcalage gauche ou droite,
- entre srie, sortie srie et dcalage droite (entre srie : cf entre e de la figure II-14,
sortie srie : y0, un seul signal de commande),
- etc.
- II.13 -
Exercices
III-16Proposer un circuit registre dcalage entre srie, sortie srie et dcalage gauche ou
droite d'une position ( 2 signaux de commandes : chargement du registre ER, / decald.
III-17Une pile de dimension k est un circuit qui permet de mmoriser k mots de b bits, et de
les relire dans l'ordre inverse de celui de leur arrive (dernier entr, premier sorti, ou Last In,
First Out : LIFO). Ecrire un mot dans la pile est appel "empiler" ou push, lire un mot dans la
pile est appel "dpiler" ou pull (pop).
Proposer une ralisation d'une pile de 4 mots de 2 bits, l'aide de registres dcalage tel que
celui ralis dans l'exercice III-16. Les entres et sorties du circuit sont indiques figure III-23
a).
pull pull
PILE PILE
pleine
k mots de k mots de
b bits vide b bits
III-18Il est intressant de connatre l'tat de la pile : pile pleine (donc on ne peut plus faire
d'opration Push), pile vide (donc qui ne contient plus d'informations). Complter le schma
prcdent pour gnrer ces indicateurs. La solution la plus simple consiste prvoir un bit
supplmentaire dans chaque mot de la pile : V, indicateur de validit. Si V = 1, le mot associ
est valide, sinon le mot est invalide (ne fait pas partie de l'ensemble des informations stockes
actuellement dans la pile).
3. 4. REGISTRES COMPTEURS
pour obtenir un registre compteur/ dcompteur. La figure III-24 donne le schma d'un registre
compteur entre parallle, sortie parallle.
A H
n incr R ch R Y t+1
ch R 1 * Yt plus 1
0 0 Yt
incr R registre compteur 0 1 A
n bits : comptage
raz R modulo 2 n
la sortie max est gale 1
n quand le registre a la
Y valeur 2n -1
max
Ce compteur modulo 2n est activ chaque priode de l'horloge H. Il peut tre forc 0 par
la commande raz R (asynchrone), ou la valeur d'entre A par la commande de chargement
ch R (prise en compte l'activation par H). La commande d'incrmentation incr R est
prioritaire sur la commande de chargement. La sortie max est 1 quand le compteur atteint sa
valeur maximale 2n 1 (dans certains compteurs, la sortie max est 1 quand le compteur
passe de sa valeur maximale 0). La sortie max permet de cascader des compteurs, par
exemple pour construire un compteur modulo 22n partir de deux compteurs 2n .
Il existe de nombreux types de compteurs, avec ou sans entres et / ou sorties parallles, qui
effectuent l'incrmentation et la dcrmentation ou seulement une des oprations.
Exercices
III-19Proposer une ralisation du registre compteur de la figure III-24 l'aide d'un registre n
bits, d'un incrmenteur n bits et de n multiplexeurs 2 -> 1.
III-20Proposer une ralisation d'un registre compteur / dcompteur l'aide d'un circuit
incmenteur / dcrmenteur.
travers des interrupteurs (Fig III-25 c). Les commandes de ces interrupteurs et celles de
chargement des registres permettent de commander les transferts de registre registre
(Fig.III-25 d).
cA cB cC cD
ai bi ci di
C D D D D D
EA EB EC ED
fil i du bus
transfert de B dans D : SB = 1 et ED = 1
c) connexion par bus pour
les bits de rang i d) schma global
Attention, on ne peut transfrer la valeur que d'un registre un instant donn (ce moyen de
transport en commun est plus un taxi vhicule partag dans le temps, avec un seul utilisateur
la fois qu'un bus !). Pour assurer qu'au plus un regsitre est connect en sortie au bus un
instant donn, il est prudent de gnrer les signaux SA,SB,SC et SD l'aide d'un dcodeur ou
dmultiplexeur.
Les interrupteurs peuvent tre raliss par des transistors, en technologie MOS. On appelle
de tels interrupteurs "portes 3-tats" (tri-state drivers) : leur sortie peut prendre la valeur 0 ou
la valeur 1 lorsque l'interrupteur est ferm, et prend une 3me valeur, haute impdance, note
Z, lorsque l'interrupteur est ouvert.
Une mmoire vive est une mmoire dans laquelle on peut lire et crire : Read/Write Memory
ou RWM (par opposition aux ROM, Read Only Memory, vues chapitre III, 2).Une
- II.16 -
mmoire vive de 2n mots de b bits permet de mmoriser 2n informations de b bits, qui sont
repres par un numro cod sur n bits (Fig.III-26 a). Ce numro de mot est appel adresse
du mot.
mot 0
numro mot 1 select L / E action
mot 2
n 0 *
1 0 lecture
mot 2 n-2 1 1 criture
mot 2 n-1
b b
Une telle mmoire est appele mmoire accs alatoire (parce que le temps d'accs est le
mme, quel que soit le mot accd) ou Random Access Memory (RAM). Notez qu'il y a
- II.17 -
souvent une confusion entre les modes d'accs possibles et le type d'accs qui mne
opposer RAM et ROM, alors qu'une ROM est en fait une RAM.
Un point de mmorisation en technologie MOS est propos figure III-26 c) : il s'agit d'une
ralisation nave, non optimale. On utilise un verrou, toujours activ :
- quand la commande de lecture est 1 et que le mot est slectionn (select i = 1), l'tat du
verrou est affich sur la ligne de sortie (similaire une ligne de bus),
- quand la commande d'criture et select i sont 1, la valeur sur la ligne d'entre est
mmorise dans le verrou,
- tant que select i est 0, l'tat du verrou reste inchang.
Le verrou peut tre de type statique ou dynamique ; dans le dernier cas, il ncessite moins de
transistors, mais il est ncessaire de "rafrachir" l'information mmorise rgulirement (en la
lisant puis en la rcrivant). Il est possible de raliser des mmoires RWM avec 5 ou 6
transistors par point mmoire (type statique) ou mme un seul transistor (type dynamique).
ligne d'entre/sortie
Il est possible de raliser, par extension du schma de la figure III-26 c), des mmoires
double accs en lecture et / ou en criture :
- si il y a 2 dcodeurs (qui gnrent des signaux select1i et select 2i), 2 commandes de lecture
et 2 lignes de sortie par bit, il est possible de lire en mme temps 2 mots d'adresses
diffrentes (ou non),
- avec ces 2 dcodeurs, il est aussi possible de lire un mot et d'en crire un autre, mais il faut
viter de lire et crire le mme mot.
- II.18 -
Exercices
III-21Proposer un point de mmorisation pour une mmoire double accs en lecture (cf
Fig.III-26 c).
II-7 On peut raliser une pile (cf exercice III-17 et III-18) l'aide d'une mmoire RWM et
d'un registre compteur / dcompteur (cf exercice III-20). Proposer une telle ralisation.pour
une pile de 32 mots de b bits.
Comparer le cot de ralisation d'une pile l'aide de registres dcalages (exercice III-18) et
celui de la ralisation l'aide d'une mmoire. On suppose que les registres dcalage sont
raliss avec des bascules matre-esclave MOS de 12 transistors, et que la mmoire est une
mmoire statique points de mmorisation de 6 transistors.
III-22Une file d'attente de k mots de b bits permet de mmoriser des mots et de les relire
dans l'ordre de leur arrive (premier entr, premier sorti, ou First In, First Out : FIFO). Une
telle structure peut tre ralise l'aide d'une mmoire RWM et de registres compteurs, qui
mmorisent l'adresse du mot de tte de la file et l'adresse du mot de queue de la file dans la
mmoire. Proposer une ralisation d'une file de 32 mots de b bits.
- II.19 -
2. AUTOMATES
Tout circuit squentiel peut tre modlis formellement par un automate. Inversement,
"effectuer la synthse d'un automate" est "raliser un circuit squentiel". Aprs avoir dfini un
automate, nous en tudierons les reprsentations.
2.1. DEFINITION
Un automate A est dfini par un quintuplet ( Q , E , S , , ) o :
Nous n'tudierons que les automates synchrones, principalement de type Moore, tat initial
fix, dterministe et ractif ( chaque couple tat, entre est associe une et une seule
transition)
Exemple
E = { a , b} , S = { oui, non}
tel que la sortie vaut oui si et seulement si les 4 dernires entres reues forment la squence a
b b a.
Les graphes d'tat pour un automate de type Moore et un automate de type Mealy,
rpondant cette spcification, sont donns figure II-19.
init init
A/non b A b/non
a a/non
B/non a B a/non
a b a/non b/non
C/non C b/non
b
b b/non
a D/non a/oui D
b
a
E/oui
On peut interprter les tats de la faon suivante ; tat A : l'automate n'a pas encore reu
d'entre intressante ; tat B : l'automate a reu a ; tat C : l'automate a reu a puis b ; tat D
: l'automate a reu a puis b puis b. Ensuite, dans le cas de l'automate de Mealy, la sortie passe
oui si une entre a est reue, puis l'automate se met dans l'tat B. Dans le cas de l'automate
- II.21 -
de Moore, l'automate passe l'tat E o la sortie prend la valeur oui, puis se met dans l'tat B
ou C, suivant la valeur de l'entre suivante.
Ces 2 automates sont quivalents (pour toute squence d'entres, les squences de sortie sont
identiques), mais ont un fonctionnement temporel diffrent (cf 3.2.E).
On peut aussi reprsenter un automate par un tableau d'tats, donnant l'tat suivant et la sortie
en fonction de l'tat courant et de l'entre.
Exemple
Pour les automates spcifis par les graphes d'tats de la figure II-19, les tableaux d'tats sont
les suivants :
entre a b
entre a b
tat courant
tat courant
A B A non
B B C non A B/non A/non
C B D non B B/non C/non
D E A non C B/non D/non
E B C oui D B/oui A/non
tat suivant sortie tat suivant
a) automate de Moore b) automate de Mealy
Exercice
E = { a, b, c }, S = {d, e, f}, tel que la sortie vaut d ssi les 3 dernires entres taient abc,
vaut e ssi les 2 dernires entres taient cb, et f sinon.
Faire le graphe d'tats et le tableau d'tats de cet automate (type Moore et Mealy).
3. SYNTHSE D'AUTOMATES
3.1. PRINCIPE
Nous tudions ici la ralisation d'un automate synchrone par un circuit digital. Ce circuit sera
toujours du type indiqu figure II-21.
- II.22 -
entres sorties
bascules d'tat
init
H
Un ensemble de bascules mmorisent l'tat de l'automate ; elles peuvent tre mises l'tat
initial par le signal init (qui agit sur les entres d'initialisation des bascules), et sont actives par
le signal H, qui est l'horloge de synchronisation de l'automate. Ces bascules doivent tre
sensibles au front ou matre-esclave, comme il y a rebouclage des sorties des bascules vers les
entres, et que l'tat ne doit voluer qu'une fois au maximum durant une priode d'horloge.
Le circuit combinatoire C ralise les fonctions et , d'aprs les valeurs des entres et l'tat
courant du circuit.
Avant de songer raliser un automate, il faut choisir un codage binaire des tats et des
vocabulaires d'entre et de sortie. Ce codage peut tre quelconque, ou impos par la
spcification de l'automate (en gnral, c'est le cas pour les entres et sorties).
Aprs cette tape de codage, on peut dterminer le graphe d'tats cod : un noeud est
associ le code de l'tat qu'il reprsente, un arc est associ les valeurs des variables
boolennes d'entre et ventuellement de sortie.
Exemple
Pour l' automate de Moore des figures II-19 a et II-20 a, nous choisissons le codage :
- II.23 -
- vocabulaire d'entre : 2 lments, codage par une variable boolenne x, a est cod 1, b est
cod 0,
- vocabulaire de sortie : 2 lments, codage par une variable boolenne z, oui est cod 1,
non est cod 0,
- tats : 5 tats, codage par 3 variables d'tats y2 y1 y0 , A : 000, B : 001, C : 010, D : 011,
E : 100.
On en dduit le graphe d'tats cod et le tableau d'tats cod (Fig.II.22).
init
000/0 0
1 x
1 0
001/0 1 y3 y2 y1
1 0
0 0 0 001 000 0
010/0 0 0 1 001 010 0
0 0 1 0 001 011 0
0 0 1 1 100 000 0
1 0 0 001 010 1
1 011/0
0
1 tat suivant z
Y3 Y2 Y1
100/1
Pour un automate complexe, une autre forme de graphe d'tats cod permet de raisonner plus
facilement : au lieu d'associer aux arcs les valeurs des entres qui provoque la transition, on
leur associe la fonction boolenne des variables d'entres qui vaut 1 si et seulement si cette
transition doit tre effectue. De mme, au lieu d'indiquer la valeur des sorties pour tout arc
(ou tout tat), on indique dans quel cas la sortie vaut 1.
Exemple
Le graphe d'tat de la figure II-19 a ) peut tre reprsent, aprs codage du vocabulaire
d'entre et de sortie, par le graphe de la figure II-23.
- II.24 -
init
A x
x
B x
x x
C
x
x
x D
x
x
E/z
- dterministe, le produit 2 2 des expressions boolennes associes aux arcs sortants d'un
tat doit tre gal 0
- compltement dfini, la somme des expressions boolennes associes l'ensemble des
arcs sortants d'un tat doit tre gale 1.
Cet ensemble de fonctions boolennes dfinit les quations d'tat, qu'il est facile de dterminer
partir du tableau d'tats cod.
De mme, les quations des sorties du circuit sont dtermins partir du tableau d'tats cod.
Exemple
Du tableau d'tats cod de la figure II-22 b), on tire les tableaux de Karnaugh de Y3 Y2 Y1 et
de la sortie z, donns ci-dessous :
- II.25 -
y1 x y1
y3 y2 00 01 11 10 y3 y2 0 1
00 000 001 001 010 00 0 0
01 011 001 100 000 01 0 0
11 ? ? ? ?
11 ? ?
10 010 001 ? ? 10 1 ?
tableau de Y3 Y2 Y1 t ableau de z
Figure 24
Y2 = y2 + y3 + y1
Y1 = y2 + x + x
Exercice
II-10 Proposer un codage pour l'automate tudi l'exercice II-9 ; faire le tableau d'tats
cod et dterminer les quations d'tats et des sorties de l'automate.
On a donc, pour un automate n variables d'tats et p entres, les deux quations suivantes
pour y i :
yi (t+1) = D(t)
On peut donc dterminer les quations des entres des bascules D, donc la spcification du
- II.26 -
circuit C, qui peut tre ralis l'aide de portes ou de circuits de moyenne complexit.
L'utilisation de PLA est frquente. Les bascules qui mmorisent les variables d'tats ne
peuvent pas tre de type verrou : au mme moment, l'ancienne valeur des bascules est utilise
et une nouvelle valeur est charge. Ces bascules sont actives par l'horloge de l'automate et
initialises par le signal init (Fig.II-24).
Exemple
x z
y3 D3
y2 D2
y1 D1
init
avec :
D3 = y2 y1 x
D2 = y2 + y3 + y1
D1 = y2 + x + x
z = y3
Pour pouvoir dterminer les quations de J et de K, il faut mettre chaque quation d'tat sous
- II.27 -
Exemple
On peut effectuer des identifications locales, et pour cela aussi utiliser le tableau de transition
de la bascule JK donn ci-dessous :
yt yt+1 J K
0 0 0
0 1 1
1 0 1
1 1 0
Ce tableau indique quelle doivent tre les valeurs de J et K pour chaque transition d'tat de la
bascule. On peut alors pour chaque case du tableau d'tats (ou plutt du tableau de Karnaugh
qu'on en a dduit cf. figure II 24) dterminer quelles doivent tre les valeurs de J et de K.
Exemple
y1 x y1 x
y3 y2 00 01 11 10 y3 y2 00 01 11 10
00 000 001 001 010 00 0? 0? 0? 0?
01 011 001 100 000 01 0? 0? 1? 0?
11 ? ? ? 11? ? ? ? ?
10 010 001 ? ? 10 ?? ?? ? ?
tableau de Y3 Y2 Y1 t ableau de J 3 K3
On obtient :
J 3 = y2 y1 x K3 = 1
L'expression de K3 est plus simple que prcdemment, car les correspondant aux codes
d'tat non valides ont t utiliss.
- II.28 -
- au niveau du codage des entres et des sorties, ventuellement (en gnral, ces codes
sont fixs),
- au niveau du codage des tats : le codage des tats est en gnral choisi par le
concepteur ; deux codages diffrents peuvent mener des quations des variables d'tat et
des sorties plus ou moins complexes.
Exercices
- codage des entres, des sorties et des tats => tableau d'tats cods
- dterminer les tableaux de Karnaugh et/ou les quations des variables d'tats et des
sorties
- choisir un type de bascules et dterminer les quations des entres des bascules
II-12 Mme exercice pour l'automate tudi dans les exercices II-9 et II-10.
II-13 Dterminer les tableaux de transitions des bascules RS et des bascules T. Faire la
synthse de l'automate de Moore qui nous a servi d'exemple (le tableau d'tats et de la sortie
sont indiqus figure II-24).
Il reste analyser les aspects temporels du fonctionnement des automates, c'est--dire les
relations entre l'horloge, le type de bascule, l'volution temporelle des entres, le type
- II.29 -
Cette analyse sera faite pour des automates raliss avec des bascules sensibles au front
montant (ou des bascules matre-esclave dont l'tage esclave est activ par H). Prenons
comme exemples les automates tudis au paragraphe prcdent : la figure II-26 indique
l'volution temporelle de la sortie z (ou chronogramme de z), lorsque la squence d'entre 1 0
0 1 (squence reconnaitre a b b a) est applique sur l'entre x partir de l'tat initial A.
init
x
a b b a
A B C D E
tat
type
Moore
z
A B C D B
type tat
Mealy
z
Sur cette figure, l'volution de l'entre x est telle que sa valeur est spcifie autour du front
montant de H, sans prjuger des instants de variation (les portions en gris indiquent une
valeur indtermine).
On voit que :
- dans l'automate de Moore, la sortie reste stable entre 2 fronts d'horloge (elle ne dpend
que de l'tat, qui est stable entre 2 fronts) ;
- dans l'automate de Mealy, la sortie n'est valide que autour de chaque front (en effet, elle
est fonction de l'tat et des entres, or l'tat change au front),
Dans le cas de l'automate de Mealy, pour avoir une valeur de la sortie stable assez longtemps
pour pouvoir l'exploiter, il faut
- soit s'assurer que l'entre est stable longtemps avant le front de changement d'tat (de
- II.30 -
- soit mmoriser la valeur des sorties dans un ensemble de bascules, ce qui revient en
fait un automate de Moore.
C'est pour cela que nous concevrons principalement des automates de Moore, dont les
sorties sont stables une priode d'horloge complte, et non des automates de Mealy.
Pour qu'un automate fonctionne correctement, il faut que les 2 ingalits suivantes soient
respectes :
- tmax + tamax + t setup,
- tamin + t min = thold,
o T est le temps entre deux fronts d'activations des bascules, c'est--dire la priode de
l'horloge, tamax est le temps maximal et tamin est le temps minimal de calcul des entres des
bascules, tmax et t min sont les temps maximal et minimal de changement d'tat des
bascules, tsetup et thold sont les temps minimaux imposs de stabilit des entres des bascules
avant et aprs le front d'activation.
En gnral, la 2me ingalit est toujours respecte : les bascules sont telles que tmin = thold,
par construction. La premre ingalit permet de dterminer la frquence maximale de
l'horloge.
La mthode de synthse expose ci-dessus est valable pour tout automate. Cependant,
certaines techniques sont utiles pour raliser des automates complexes, beaucoup d'entres
et / ou beaucoup d'tats.
Exemple
On prendra comme exemple l'automate dfini par le graphe de la figure II-27 (il n'est pas
vraiment complexe, mais il permet d'illustrer les techniques employes).
- II.31 -
init H
deb s init
a
deb
b
c A t A
u
a) entres et sorties de a.deb a.deb
l'automate
B/s D /s,t
Les techniques employes pour la synthse de tels automates diffrent suivant le type de
circuit utilis. Nous allons en voir quelques exemples.
Au lieu de coder les tats l'aide du minimum de variables d'tat, on choisit un code dit code
1 parmi n, qui associe une variable d'tat yi chaque tat i: les codes valides sont de la forme
0 0 0 .... 0 1 0 .... 0, avec un seul 1 parmi des 0. L'automate est dans l'tat i si et seulement si
.... yi ......= 1, ce qui est caractris par yi = 1.
Les quations d'tat sont triviales, et la ralisation de l'automate peut tre faite directement
partir du graphe d'tats de l'automate.
Exemple
Pour l'automate spcifi figure II-27, les quations d'tats et des sorties, ainsi que la ralisation
de l'automate sont donnes figure II-28. Les quations d'tat sont obtenues partir du graphe
d'tats ou du tableau de transitions, en dterminant les tats antcdents d'un tat et les
conditions de transitions
- II.32 -
YA = deb. yA + b . yC
YB = a. deb. yA
YC = yB + c. yE + c. yF
YD = a. deb. yA
YE = b . yC + yD
YF = c . yE + c. yF
s = yB + yD
t = yC + yD + yF
u = yE + yF
deb
a.deb yA a.deb
yB yD s
b b yE
yC c u
c
yF
La bascule mmorisant yA est initialise 1 (signal init connect l'entre "Preset"), les autres
sont initialises 0 ; toutes les bascules sont actives par l'horloge de l'automate.
La synthse en codage 1 parmi n simplifie les quations d'tats et les quations des sorties
(donc la partie combinatoire du circuit ), mais utilise un grand nombre de bascules.
On peut coder les tats d'un automate complexe avec le minimum de variables, pour le
raliser avec un PLA par exemple. On cherche alors choisir un code optimisant la taille du
PLA, c'est--dire minimisant le nombre de monmes. Ce type de solution est intressant en
conception de cartes, car il existe des boitiers PLA incluant des bascules, qui permettent de
raliser en un seul boitier un automate de moyenne complexit. En conception de circuits
- II.33 -
Exemple
Pour une synthse avec des bascules D, on s'interesse aux variables d'tats 1 dans le code
de chaque tat.
On note :
- unsi la liste des variables 1 dans le code de l'tat i (par exemple, si i est cod 0101
sur les variables y3,y2,y1,y0, uns i = (y2,y0)
unsE = b CC + CD unsF = CE + CF
s = CB + C D t = CC + CD + CF u = CE + CF
s = CB + C D t = CC + CD + CF u = MEF
Il nous reste choisir l'tat cod 0 : cet tat n'aura pas de 1 dans son code, et donc les
monmes correspondants ne seront pas gnrs ; on a donc intrt utiliser le code 0 pour
l'tat ayant le plus d'antcdents. Ici, on choisit A cod 0 et une ralisation 9 monmes au
plus (les monmes CA et CC ne seront pas gnrs).
On obtient ainsi un ensemble de contraintes d'adjacences sur les codes des tats ; il reste
trouver un codage qui les satisfait (ce n'est pas toujours possible). Dans notre cas, il s'agit
d'associer les tats aux cases d'un tableau de Karnaugh 3 variables ; le placement suivant
- II.34 -
Exercices
II-14 Dterminer les quations du PLA pour l'automate de l'exemple, dont un codage a t
propos ci-dessus.
II-15 Rechercher un codage optimisant la ralisation sur PLA pour l'automate tudi
l'exercice II-9. Comparer la solution obtenue avec celle trouve l'exercice II-10.
On choisit un codage qui maximise le nombre de transitions o les codes des tats d'origine et
destination sont des entiers conscutifs. Si un tat a plusieurs successeurs, le code du ou des
tats qui ne sont pas obtenus par incrmentation sont chargs dans le compteur.
Exemple
A : 0, D : 1, E : 2, F : 3, B : 6, C : 7.
On en dduit le tableau suivant, qui indique les valeurs des entres du compteur pour chaque
transition, en utilisant le compteur dfini figure II-16 pour lequel l'entre d'incrmentation est
prioritaire sur l'entre de chargement (attention, ce n'est pas forcment ce type de compteur
que vous utiliserez en travaux pratiques !) :
- II.35 -
A. deb A 0 1 0
A. a deb B 0 1 6
A. a deb D 1 ? ?
B C 1 ? ?
C. b A 1 ? ?
C. b E 0 1 2
D E 1 ? ?
E. c F 1 ? ?
E. c C 0 1 7
F. c F 0 1 3
F. c C 0 1 7
a deb 0
1 1
c 2 init H
0 3
0 4
0 incr raz En
5
1 6
b compteur
7 modulo 8
db Y
Y
0 0
6 1 0 1 cha
codes c 1
7 2
chargs 3 0 A (valeur de
dans le 7 3 chargement)
1
compteur 4
5
6
2 7
obtient le code 0, si db =1, on obtient le code 6). De mme pour le multiplexage command
par c (valeurs c,1,1)Les multiplexeurs, n'tant pas compltement utilises, peuvent tre
simplifis ou remplacs par un PLA. Les sorties sont gnres partir du code de l'tat Y.
Principe
On peut chercher raliser un automate base de ROM, mais il n'est pas envisageable de
raliser directement le circuit combinatoire C par une ROM : en effet, si il y a n variables
d'tats, m entres, la ROM aurait 2n+m mots (soit, pour notre exemple d'automate pas trs
complexe, 3 variables d'tat et 4 entres, une ROM de 128 mots de 6 bits pour gnrer
l'tat suivant et les sorties !).
La solution employe est d'associer un mot de la ROM chaque tat (et non chaque couple
(tat , valeurs des entres)), et d'indiquer dans ce mot la valeur des sorties et comment
calculer l'tat suivant. Il est vident que ce principe ne peut s'appliquer qu'aux automates de
type Moore.
Ceci est assez similaire la synthse l'aide de compteur. Le schma de principe d'une telle
ralisation est donn figure II-30.
init H
E
T ROM
A
T
Exemple
S1 S0 C A2 A1 A0 s t u
S1 SO squencement
1 0 si condition = 1 0 b
tat := adr sinon 1 c
tat := tat plus1
1 1 tat := entre tat
S1S0 C A2A1A0 s t u
mot 4
mot 5
Le circuit de calcul de l'tat suivant a comme entres : les entres de l'automate (a,deb,b,c) et
l'tat courant. Suivant le champ squencement , il en dduit le code de l'tat suivant.
- II.38 -
Exercice
II-16 Proposer une ralisation du circuit de calcul de l'tat suivant, pour l'exemple ci-dessus.
Ce circuit comporte un incrmenteur (cas S1 S0 = 0 - ou 10), un circuit de calcul du code de
l'tat suivant (cas S1 S0 = 11), un circuit de calcul de la condition (cas S1 S0 = 10), et un
systme de multiplexage qui permet de slectionner le code correct pout l'tat suivant.
Gnralisation : microprogrammation
L'avantage de ce type de ralisation base de ROM est sa flexibilit : avec une mme ROM
et un mme circuit de calcul de l'tat suivant, il est possible de raliser diffrents automates.
De plus, cette ralisation ncessite peu de boitiers. Cette technique a t propose ds les
annes 60 par Wilkes, et trs employe dans les annes 70 ; pour souligner sa flexibilit, le
nom de microprogrammation est utilis : le circuit de la figure II-30 est un squenceur
microprogramm ; le circuit de calcul de l'tat suivant est un microsquenceur (squenceur du
squenceur) ; les bascules mmorisant l'tat forment le registre compteur de microprogramme
; une ligne de la ROM contient une microinstruction.
Les extensions possibles par rapport au cas simple que nous avons trait sont :
0 champ commandes
1 champ squencement
Cela permet d'viter de prvoir un champ squencement dans toute microinstruction, alors
qu'il n'est pas toujours utilis, donc de diminuer le nombre de bits de la ROM ; mais, ds qu'il
y a branchement, 2 microinstructions au lieu d'une seule seront excutes. A noter : l'automate
- II.39 -
ralis avec ce principe n'est pas quivalent l'automate initial (priodes d'horloge
supplmentaires durant lesquelles il n'y a pas de sorties mises). Cette solution sera donc
rserve des cas particuliers : commande de la partie oprative d'un circuit complexe ou
d'un processeur, tudis par la suite.
Exercices
II-17 Nous avons ralis pour notre exemple une solution microprogrammation horizontale
(champ squencement et champ commandes dans le mme mot de la ROM). Il s'agit
d'tudier une solution microprogrammation verticale, avec deux types de microinstructions.
5- Evaluer la rentabilit des deux solutions ; le temps sera mesur par le nombre moyen
d'accs la ROM effectuer pour chaque tat de l'automate initial ; le cot sera mesur par
le nombre de bits de la ROM (pour les mots effectivement utiliss), et la rentabilit est dfinie
classiquement par : 1 / temps * cot.
6- Gnrralisation du rsultat : on suppose que l'automate initial est tel que x% des tats
peuvent tre cods avec des codes conscutifs ; que le champ squencement ncessite m bits
et le champ commande n bits. Dans quelles conditions la solution de microprogrammation
verticale est-elle intressante ?
II-18 Proposer une ralisation d'un microsquenceur offrant les primitives de squencement
suivantes :
- II.40 -
0 1 1 si condition alors
pile := tat +1, tat := adr
sinon tat := tat plus 1
1 0 0 tat := pile
1 0 1 tat := entre1
1 1 0 tat := entre2
1 1 1 tat := 0.....0
II-19 Soit un automate 15 tats, A, B, ...,0. Certains tats ont le mme champ de
commande : (A, O) (D, L), (B, E, G), (C, F, I, M).
2- En supposant qu'il n'y ait pas de contraintes sur le codage des tats dues au
squencement, proposer un codage des tats et un adressage de la ROM commande.