Professional Documents
Culture Documents
Chapitre 10
Dans beaucoup de situation pratiques, les entres du systme raliser ne sont pas gres par une horloge et
sont donc sujettes modification des instants quelconques. Dans ce cas il n'est pas possible de concevoir un
systme synchrone. Dans ce chapitre nous nous intresserons donc la synthse des systmes squentiels
asynchrones.
Dans le mode synchrone, les lments de mmorisation sont des bascules. Les modifications d'tat du
systme ne peuvent donc intervenir qu' des instants trs prcis dtermins par des signaux d'horloge. Par contre,
dans le mode asynchrone, la fonction de mmorisation est ralise par de simples boucles de rtroaction.
L'volution des tats ne dpend donc que des modifications intervenant sur les entres primaires (Ei) de la
machine. La reprsentation la plus gnrale d'un systme asynchrone est donn sur la Figure 10.1.
Ei Si
Rseau
yi combinatoire
Yi
't
Remarque : L'lment retard 't est un lment virtuel permettant de modliser les retards des signaux dans la
logique combinatoire.
Le circuit est dit dans un tat stable si et seulement si yi=Yi pour tout i= 1, 2, ..., k. En rponse un
changement d'entre, la logique combinatoire produit un nouvel ensemble de valeurs sur Yi. Si ces valeurs sont
diffrentes de celles de yi ce circuit entre dans un tat instable. On obtiendra un nouvel tat stable lorsqu'
nouveau on aura yi=Yi. Si aucun un tat stable n'est atteint le systme oscille.
Une variation d'entre est obligatoire pour que le systme volue d'un tat stable vers un autre tat stable.
D'autre part, vu les dlais inhrents aux structures, il est impossible de garantir le changement de deux variables
simultanment. La synthse d'un systme asynchrone doit interdire de telles situations. Cette restriction signifie
en effet qu'une seule entre peut changer un instant donn, et que le temps coul entre deux variations est plus
grand que le dlai interne de la structure. Lorsqu'un changement apparat sur une entre, nous ferons donc
l'hypothse qu'aucune variation sur toutes entres ne peut intervenir avant que le circuit soit dans un tat stable.
1
Chapitre 10 : Synthse des systmes squentiels asynchrones
Un tel mode de fonctionnement est appel mode fondamental. Notons qu'un mode de fonctionnement diffrent
appel mode puls est aussi possible mais ne sera pas tudi ici.
La mthode de synthse de systmes squentiels asynchrones propose a pour but de minimiser le nombre de
variables secondaires (Yi). Ceci a pour effet direct de minimiser le nombre de fonctions du rseau combinatoire
et par consquent le nombre de portes du circuit. Cette mthode se dcompose en plusieurs tapes. Ces tapes
sont les suivantes:
1 : Modlisation du cahier des charges
- Graphe d'tat
- Table dtat (ou des phases) primitive
2: Minimisation du nombre d'tats
- Elimination des tats quivalents
- Fusionnement d'tats
3: Codage des tats
- Graphe d'adjacence
- Assignation des tats
4: Synthse
- Synthse des variables secondaires
- Synthse des sorties
Tout comme pour les systmes squentiels synchrones, le cahier des charges d'un systme est gnralement
donn en langage courant. Pour faire la synthse d'un tel cahier des charges, la premire tape est de l'exprimer
dans un modle mathmatique. Le modle gnralement utilis pour reprsenter le cahier des charges d'un
systme asynchrone est galement un graphe appel graphe d'tat ou graphe de fluence.
Ej / Sj
Ei / Si
Ek / Sk
Figure 10.2. Structure gnrale du graphe d'tat d'un systme squentiel asynchrone
2
Chapitre 10 : Synthse des systmes squentiels asynchrones
Remarque : Dans le cas des systmes squentiels asynchrones, la notion de machine de Moore ou Mealey
n'existe plus. En effet, les tats dpendant directement des entres (de manire combinatoire), les sorties
dpendent donc toujours des entres, que ce soit directement ou indirectement au travers de variables
secondaires.
Exemple : Le systme considr a deux entres e1 et e2 et une sortie S. La sortie S doit passer 1 chaque fois
que la squence e1e2 = 10, 11, 01, 00 intervient sur les entres. Quand S est 1, S doit repasser 0 ds la
premire variation d'une des deux entres.
Le graphe d'tat reprsentant ce cahier des charges est reprsent sur la figure 10.3.
e1e2/S 1 2 4
3
10/0 11/0 01/0 00/1
5 6
7
00/0 01/0 11/0
Le cahier des charges d'un systme peut galement tre modlis sous une forme tabulaire qui est plus facile
manipuler qu'une reprsentation sous forme de graphe. Cette reprsentation tabulaire, appele table d'tat ou
table des phases primitive, est directement dductible du graphe d'tat. Elle reprsente les diffrentes possibilits
d'tats suivants de chacun des tats du systme et ceci en fonction des entres. De manire reprer plus
facilement les tats stables et instables, les tats stables seront surligns (griss). Outre le reprage des tats
stables, la seule diffrence avec les systmes squentiels synchrones est qu'il existe des tats non-atteignables du
fait de l'impossibilit de variation simultane des entres. Les sorties associes chaque tat sont galement
reprsentes sur cette table.
La table d'tat correspondant au graphe dtat prcdent est reprsente sur la figure 10.4.
1 5 - 2 1 0
2 - 3 2 1 0
3 4 3 7 - 0
4 4 6 - 1 1
5 5 6 - 1 0
6 5 6 7 - 0
7 - 6 7 1 0
3
Chapitre 10 : Synthse des systmes squentiels asynchrones
Lorsque plusieurs tats sont quivalents, il suffit de garder qu'un seul reprsentant par classe d'quivalence et
de renommer les tats suivants en consquence.
Exemple : Les rgles de minimisation appliques la table des phases primitive de la Figure 10.4 donnent:
R1: Aucun tat n'est stable pour les mmes valeurs d'entre, n'a la mme sortie et les mmes tats suivants.
Les tats 2 et 7 doivent tre spars. Il y a maintenant qu'un seul tat par classe. Il n'y a donc pas d'tats
quivalents. Pour raliser cette machine, le nombre minimum d'tats est de 7.
Remarque : Il est beaucoup plus rare de trouver des tats quivalents en asynchrone qu'en synchrone. Cela
provient essentiellement du fait que la structure mme du graphe (entres sur les tats) conduit reprer
beaucoup plus facilement les tats quivalents et donc viter les duplications.
4
Chapitre 10 : Synthse des systmes squentiels asynchrones
Rgle de fusionnement : Deux tats sont fusionnables uniquement s'il ont mmes tat suivants (pas
d'incompatibilit sur les tats suivants compte tenu des tats indtermins).
Afin de dterminer les fusionnements qui conduisent un nombre d'tats minimum, on ralise un graphe
appel graphe de fusionnement. Les nuds de ce graphe sont les tats et il y a prsence d'une arte entre deux
nuds si et seulement si les deux tats correspondants sont fusionnables.
Le graphe de fusionnement correspondant la table dtat de la Figure 10.4 et donn sur la Figure 10.5.
2
1
3
7
4
6
5
Ce graphe donne les possibilits de regroupement d'tats. Tous les tats appartenant un mme groupement
doivent tre fusionnables entre eux. La recherche du nombre de groupement minimum est un problme classique
(recherche de cliques dans un graphe) que nous ne dtaillerons pas ici. Dans l'exemple prcdent le nombre de
groupements minimum est 4 mais comme le montre la Figure 10.6 il peut y avoir plusieurs solutions.
A A
2 2
1 1 B
B
3 3
7 7
C C
4 4
6 6
5 D 5 D
(a) (b)
Remarque : Certaines solutions peuvent tre "meilleures" que d'autres. Le choix d'une solution plutt qu'une
autre pourra s'appuyer sur des critres dont certains apparatront clairement par la suite. Notons dors et dj que
la solution (a) est priori meilleure que la solution (b).
Une fois, les groupements dtermins, on peut raliser le fusionnement des tats composant un mme
groupement. Ceci conduit une nouvelle table d'tat appele table des phases rduite. Lors de la fusion d'tats,
plusieurs situation peuvent se prsenter. On peut avoir fusionner des tats stables, des tats instables et des
tats indtermins. La rgle est la suivante:
- Un tat stable et un tat instable donnent un tat stable.
- Un tat stable et un tat indtermin donnent un tat stable.
- Un tat instable et un tat indtermin donnent un tat instable
Exemple : En reprenant les groupements de la Figure 10.6.a on obtient la table. des phases rduite
reprsente sur la Figure 10.7.
5
Chapitre 10 : Synthse des systmes squentiels asynchrones
Prcdemment, nous avons not qu'il n'est pas possible de prvoir un changement simultan des entres.
Pour les variables secondaires il en est de mme. Si deux ou plusieurs variables secondaires ncessitent des
changements de valeurs simultans, il est impossible de garantir le fonctionnement de la machine. En
consquence, l'assignation des variables secondaires aux tats d'une machine asynchrone rduite doit tenir
compte de cette contrainte.
Sur cet exemple, lorsque l'tat est y1y2=00 et que les entres sont e1e2=00, l'tat suivant est y1y2=11. La
transition entre l'tat 00 et l'tat 11 introduit un changement des deux variables secondaires. La pratique impose
qu'une seule variable y1 ou y2 commute la fois. Selon le cas le systme passera au pralable par l'tat 01 ou 10.
Ces tats comportent dans l'exemple le mme tat instable 11 que l'tat stable d'arrive dsir.
Dfinitions : Une situation ncessitant la variation de plus d'une variable secondaire est appele une course.
Si l'tat final que le systme atteint ne dpend pas de l'ordre dans lequel les variables changent, alors la course
est non critique, dans le cas contraire la course est critique.
Supposons maintenant que le systme soit dans l'tat y1y2=11 et que les entres passent de 00 01. On dsire
par consquent aller vers l'tat stable 00. Si y1 change plus vite que y2, le circuit ira dans l'tat 01 et atteindra
finalement l'tat stable 00. Par contre, si y2 change plus vite que y1, le systme ira vers l'tat stable 10 et s'y
maintiendra. Nous avons une course critique et le fonctionnement du systme sera incorrect.
Les courses critiques peuvent selon les cas tre vites, en dirigeant le systme vers des tats instables
intermdiaires. Par exemple, lorsque le systme est dans l'tat y1y2=01 et e1e2=11, l'tat d'arrive voulu est 10.
Mais puisque cette transition ncessite le changement simultan des deux variables secondaires y1 et y2, l'tat
instable est cod 11, dirigeant ainsi le systme vers l'tat 11, puis vers l'tat 10.
6
Chapitre 10 : Synthse des systmes squentiels asynchrones
Dfinition : La situation, pour laquelle le systme passe par une squence d'tats instables est appele cycle.
Lors de l'assignation des tats, il est important de vrifier que chaque cycle se termine sur un tat stable. Tout
cycle ne comportant pas d'tat stable appel cycle instable doit absolument tre vit.
Dfinition : Une assignation qui ne contient ni course critique ni cycle instable est appel une assignation
valide.
Remarque : Lorsqu'une colonne d'une table des transitions ne comporte qu'un seul tat stable, il ne peut
exister de course critique sur cet tat. Les adjacences ne doivent pas tre considres sur cet tat, toutefois il est
dangereux de laisser libre les cases non spcifies de la colonne, car au moment de l'criture des fonctions
logiques ces cases pourront tre affectes des valeurs conduisant des cycles instables.
La dtermination d'une assignation valide peut tre facilite par la ralisation d'un graphe ou chaque tat
reprsente un sommet du graphe et chaque arc reprsente le fait que les deux tats relis doivent avoir un code
adjacent. Ce graphe est appel graphe d'adjacence. Afin de construire ce graphe, il est ncessaire d'introduire la
notion de liaison essentielle et de liaison libre.
Dfinition : Lorsque pour aller d'un tat instable l'tat stable correspondant, il n'y a pas d'autre solution que
d'y aller directement, nous dirons qu'il y a une liaison essentielle entre les deux tats. Lorsque pour aller d'un
tat instable l'tat stable correspondant, il y a plusieurs solutions nous dirons qu'il y a une liaison libre entre les
deux tats.
Toute liaison essentielle impose un arc sur le graphe d'adjacence. Toute liaison libre conduit un ou
plusieurs arcs mais le fait que la liaison soit libre laisse une certaine libert quant l'affectation de ces arcs. Une
assignation valide, peut tre dtermine en suivant la procdure suivante.
1. Analyser la table des phases rduite par colonnes et reporter sur le graphe d'adjacence les liaisons
essentielles.
2. S'il n'existe pas de codage respectant les adjacences ncessaires, aller en 4.
3. Reporter sur le graphe d'adjacence les liaisons libres en choisissant une solution qui permette de coder
les tats en respectant les adjacences indiques. Si une solution existe dterminer un codage respectant
les adjacences indiques par le graphe. Sinon aller en 4.
7
Chapitre 10 : Synthse des systmes squentiels asynchrones
4. Rajouter une variable secondaire est recommencer en 3 (il n'existe plus de liaisons essentielles).
Remarque : S'il existe un tat tel que tous les tats suivants soientt indtermins ou si le nombre d'tats de la
table des phases rduite n'est pas une puissance de 2, il n'existe pas de liaison essentielle.
Exemple : Reprenons la table des phases rduite de la Figure 10.7. Il existe des liaisons essentielles dans les
colonnes e1e2=00 et e1e2=01 (Figure 10.10.a). Ces liaisons essentielles conduisent au graphe d'adjacence de la
Figure 10.10.b .
A (1,2) 5 3 2 1
B (3) 4 3 7 -
C (4) 4 6 - 1 D C
D (5,6,7) 5 6 7 1
(a) (b)
On remarquera que sur ce graphe, si on doit rajouter un arc, il n'est plus possible de trouver un code
respectant les adjacences indiques avec deux variables. Il faut donc prendre en compte les liaisons libres en
vitant de rajouter un arc. Ceci peut tre fait en incluant les cycles prsents sur la Figure 10.11.a. Le graphe
d'adjacence correspondant nous conduit dfinir un codage adapt (Figure 10.11.b).
A (1,2) 5 3 2 1
B (3) 4 3 7 -
C (4) 4 6 - 1 D C
10 11
D (5,6,7) 5 6 7 1
Liaison essentielle
Liaison libre
Le codage de la table des phases rduite peut maintenant tre ralis (Figure 10.12). On remarquera le
codage correspondant aux tats (y1y2=01, e1e2=11) (y1y2=11, e1e2=11) (y1y2=11, e1e2=10). Ce codage est
impratif pour que l'assignation soit valide.
8
Chapitre 10 : Synthse des systmes squentiels asynchrones
Remarque : Dans la quatrime colonne, il n'y a pas de possibilit d'avoir de course critique. L'affectation de
la valeur 10 l'tat (y1y2=11, e1e2=10) n'est priori pas obligatoire. Toutefois l'affectation de la valeur 00 ce
mme tat aurait entran l'affectation 00 de l'tat (y1y2=01, e1e2=10) afin d'viter toute possibilit d'obtention
d'un cycle instable.
Nous observons que la ligne a doit tre adjacente aux trois autres lignes b, c et d. Bien videmment, il est
impossible d'effectuer des assignations adjacentes pour tous les tats avec seulement deux variables d'tats. Par
consquent, une troisime variable doit tre ajoute. Lajout de cette variable pour effet de crer des tats
supplmentaire (E,F,G,H) qui permettrons dassurer des passages par code adjacent (Figure 10.14). Dans le cas
gnral, pour une assignation comportant p variables d'tats secondaires, chaque tat peut tre adjacent p
autres tats au maximum
Les huit combinaisons de trois variables d'tats sont reprsentes par les cases de la Figure 10.15. Pour
dterminer une assignation valide, nous commenons par placer un tat stable (A) dans la case y1y2y3=000 pour
indiquer que la ligne A sera assigne l'tat secondaire 000. De faon similaire, nous plaons les tats (B), (C)
et (D) dans les trois cases adjacentes la case (A). Cela implique toutefois que chacune des transitions des lignes
B vers D et D vers C ncessite le changement de deux variables secondaires. Ces changements multiples
peuvent tre accomplis en amenant le systme vers les destinations finales par l'intermdiaire d'tats instables
(Figure 10.15).
9
Chapitre 10 : Synthse des systmes squentiels asynchrones
y1y2
y3 00 01 11 10
0 A C F D
1 B E
Ce problme dassignation est un problme classique dalgorithmique qui ne sera pas dtaill ici.
10.2.4. Synthse
Cette dernire tape de la synthse des machines asynchrones consiste tablir les fonctions logiques des
variables secondaires ainsi que celles lies aux sorties de la machine.
Exemple : En reprenant l'exemple prcdent, partir de la table de la Figure 10.12 on peut raliser les tables
de Karnaugh qui nous permettrons d'obtenir les relations de Y1 et Y2 (Figure 10.16).
e1e2 e1e2
y1y2 00 01 11 10 y1y2 00 01 11 10
00 1 0 0 0 00 0 1 0 0
01 1 0 1 - 01 1 1 1 -
11 1 1 1 1 11 1 0 0 0
10 1 1 1 0 10 0 0 0 0
Remarque : Rappelons que plusieurs outils de minimisation de fonctions logiques boolennes peuvent tre
utiliss: tableaux de Karnaugh, McCluskey, consensus ...
Exemple : La table de sortie prsente sur la Figure 10.17 est celle dduite de la table dtat rduite (Figure
10.7) et de la table dtat primitive (Figure 10.4).
10
Chapitre 10 : Synthse des systmes squentiels asynchrones
Etats Sorties
y1y2 00 01 11 10
00 - - 0 0
01 - 0 - -
11 1 - - -
10 0 0 0 -
Notre but ici est de considrer l'assignation des sorties pour les tats instables de la machine rduite. Cette
assignation dpend des changements des sorties dj spcifies ainsi que des objectifs de conception (machine
lente ou rapide).
Supposons que la valeur des sorties pour les tats indtermins nous soit indiffrente. Dans ce cas, la valeur
des sorties peut rester non spcifie afin d'optimiser postrieurement la fonction logique de sortie. Mais dans ce
cas, on s'expose des commutations transitoires des sorties. En effet, supposons que le systme doive aller d'un
tat stable vers un autre tat stable pour lequel la sortie est identique. Si la sortie affecte un des tats instables
intermdiaires est diffrente, la sortie prsentera une commutation transitoire lors du passage entre ces deux
tats.
Supposons maintenant que le systme doive aller d'un tat stable vers un autre tat stable pour lequel la sortie
est diffrente. La valeur de sortie attribue l'tat transitoire peut alors correspondre soit l'tat de dpart soit
l'tat d'arrive. Ce choix doit tre fait selon l'objectif dsir, savoir si l'on dsire un systme commutant au plus
tt ou au plus tard. On parlera alors de machine lente et de machine rapide.
Exemple : En reprenant l'exemple prcdant, les tables de sorties en machine rapide (a) et en machine lente
sont donnes sur la Figure 10.18. Ces tables sont tablies partir de la connaissance des passages d'tats
instables tats stables (Figure 10.11).
Un dispositif synchrone lmentaire est un composant synchronis par une horloge. Une bascule est par
exemple un dispositif synchrone lmentaire. Pour concevoir un tel systme plusieurs dmarches peuvent tre
envisages. Il en est une qui est de considrer lhorloge H comme une entre banalise est ainsi de considrer le
systme global comme tant un systme asynchrone. Dans ce chapitre nous raliserons la synthse des 3
bascules suivantes :
- La bascule D-Latch,
- La bascule D,
11
Chapitre 10 : Synthse des systmes squentiels asynchrones
Le graphe dtat dune bascule D-Latch considr comme un systme asynchrone est donn sur la figure
10.19.
DH/Q 1 2 5
4 3 6
Lapplication des deux rgles de minimisation du nombre dtat ne donnant rien, il ny a pas, parmi ces tats,
dtats quivalents. Le graphe de fusionnement est reprsent sur la figure 10.21.
1 2
6
4
5
En fusionnant les tats 1,2,4 et 3,5,6, la table dtat devient (Figure 10.22)
12
Chapitre 10 : Synthse des systmes squentiels asynchrones
En codant 0 ltat A et 1 ltat B les tables dtat et de sortie sont les suivantes (Figure 10.23):
La structure du systme (D-Latch) ainsi obtenu est prsent sur la figure 10.24.
y = Hy + H.D
Q=y
D
Q
H
Le graphe dtat dune bascule D considr comme un systme asynchrone est donn sur la figure 10.25.
DH/Q 1 2 5 6
4 3 8 7
13
Chapitre 10 : Synthse des systmes squentiels asynchrones
Lapplication des deux rgles de minimisation du nombre dtat ne donnant rien, il ny a pas, parmi ces tats,
dtats quivalents. Le graphe de fusionnement est reprsent sur la figure 10.27.
1 2
3
8
4
7
6 5
Figure 10.27. Graphe de fusionnement
En fusionnant les tats 1,2,3 et 6,7,8, la table dtat devient (Figure 10.28)
14
Chapitre 10 : Synthse des systmes squentiels asynchrones
A B
D C
En codant 00 ltat A, 01 ltat B, 11 ltat C et 10 ltat D, les tables dtat et de sortie sont les
suivantes (Figure 10.30):
La structure dune bascule D peut ainsi tre obtenue partir des quations suivantes :
y1 = y1.y2 + y1.H + y2.D.H
y2 = y1.D.H + y1.y2.D + y1.y2.D + y1.D.H
Q = y1
Le graphe dtat dune bascule D considr comme un systme asynchrone est donn sur la figure 10.31.
15
Chapitre 10 : Synthse des systmes squentiels asynchrones
9 10
DH/Q
00/0 01/0
Clear = 1
12 11
10/0 11/0
1 2 5 6
Clear = Preset = 0
4 3 8 7
13 14
00/0 01/0
Preset = 1
16 15
10/0 11/0
16
Chapitre 10 : Synthse des systmes squentiels asynchrones
Lapplication des deux rgles de minimisation du nombre dtat ne donnant rien, il ny a pas, parmi ces tats,
dtats quivalents. Le graphe de fusionnement est reprsent sur la figure 10.33.
1 2
9,10,11,12
3
8
4
13,14,15,16
7
6 5
Figure 10.33. Graphe de fusionnement
En fusionnant les tats 1,2,3,9,10,11,12 et 6,7,8,13,14,15,16, la table dtat devient (Figure 10.34)
17
Chapitre 10 : Synthse des systmes squentiels asynchrones
Figure 10.34. Table dtat rduite dune bascule D avec Clear et Preset
A B
D C
En codant 00 ltat A, 01 ltat B, 11 ltat C et 10 ltat D, la table dtat code (Figure 10.36) et la table de
sortie (Figure 10.37) sont les suivantes :
Figure 10.36. Table dtat code dune bascule D avec Clear et Preset
Etats Sortie
y1y2 Clear=Preset=0 Clear = 1 Preset = 1
00 01 11 10 00 01 11 10 00 01 11 10
00 0 0 0 0 0 0 0 0 1 1 1 -
01 0 0 1 0 0 - - 0 - - - 1
11 1 0 1 1 0 - - - 1 - - 1
10 1 1 1 1 - 0 0 0 1 1 1 1
Figure 10.37. Table dtat code dune bascule D avec Clear et Preset
18
Chapitre 10 : Synthse des systmes squentiels asynchrones
La structure dune bascule D avec signaux de forage Clear et Preset peut ainsi tre obtenue partir des
quations suivantes :
y1 = Clear.Preset.[y1.y2 + y1.H + y2.D.H] + Preset
y2 = Clear.Preset.[y1.D.H + y1.y2.D + y1.y2.D + y1.D.H] + Clear.y1.y2 +
Preset.y1.y2
Q = y1
19
Chapitre 10 : Synthse des systmes squentiels asynchrones
20
Chapitre 10 : Synthse des systmes squentiels asynchrones
21