1. Solution aux exercices circuits asynchrones
Problème 1 - Synthèse
Effectuez la synthèse d'une machine à état asynchrone qui a deux entrées x1 et x0 et une sortie z. La
machine à état fonctionne en mode fondamental (seul un bit de l'entrée ne peut changer à la fois et
seulement lorsque la machine est dans un état stable) et a le fonctionnement suivant :
–
–
À chaque fois que le nombre de 1 dans les deux bits d'entrées augmente, la sortie z est
inversée
À chaque fois que le nombre de 1 dans les deux bits d'entrées diminue, la sortie demeure
inchangée
Exemple de fonctionnement :
x1x0
z
: 00, 10, 11, 10, 11, 10, 00, ...
: 0, 1, 0, 0, 1, 1, 1, ...
a) Donnez le tableau de séquence primitif
État
État futur
Sortie (x)
x1x0 =
x1x0 =
00
01
11
10
00
01
11
10
A
A
D
-
F
0
-
-
-
B
B
C
-
E
1
-
-
-
C
A
C
H
-
-
0
-
-
D
B
D
G
-
-
1
-
-
E
A
-
H
E
-
-
-
0
F
B
-
G
F
-
-
-
1
G
-
C
G
E
-
-
0
-
H
-
D
H
F
-
-
1
-
b) Effectuez l'élimination d'états redondants
Toutes les sorties sont uniques, il n'est donc pas possible d'éliminer des états
c) À l'aide d'un diagramme de fusion, réduisez le nombre d'états et donnez le tableau de séquence
A
B
C
D
H
G
E
F
2. État
État futur
Sortie (x)
x1x0 =
x1x0 =
00
01
11
10
00
01
11
10
A
A
D
A
D
0
-
1
-
B
B
C
B
C
1
-
0
-
C
A
C
A
C
-
0
-
0
D
B
D
B
D
-
1
-
1
d) Effectuez l'assignation des états en utilisant un diagramme d'adjacence
y1
B
0 1
A
D
C
0 A
C
1 D
y0
B
e) Donnez le tableau de transition
État
État futur
Sortie (x)
y1y0
x1x0 =
x1x0 =
00
01
11
10
00
01
11
10
00
00
01
00
01
0
1*
1
1*
11
11
10
11
10
1
0*
0
0*
10
00
10
00
10
0*
0
-
0
01
11
01
11
01
-
1
1*
1
* Fixés pour empêcher des aléas lors de transitions d'états
f) Donnez l'expression de la sortie
y1y0
x1x0 =
00
01
11
10
00
0
1
1
1
01
-
1
1
1
11
1
0
0
0
10
0
0
-
0
Z = y1'x0 + y1'x1 + y0x1'x0' + y1'y0 (le dernier terme est pour éviter les aléas)
4. k) Faites le schéma du circuit à bistable SR
Solution non disponible.
l) Donnez le diagramme de séquence de votre design
00/0
11/1
A
00
11
01/0
10/0
C
Notation: x1x0/z
01
10
D
01/1
10/1
B
00
11
01
10
00/1
11/0
m) Est-ce qu'il y a une possibilité d'aléa essentiel? Si oui, comment peut-on éliminer cet aléa? Si non,
expliquez quand même ce qu'il faudrait faire pour éliminer un potentiel aléa.
Oui, par exemple lorsque l'on est dans l'état A/00 et que l'entrée change à 01.
A/00 -> 01 On passe à l'état D/01
D/01 -> 00 On passe à l'état B/00
B/00 -> 00 On passe à l'état C/01
Puisque D/01 != C/01, il y a un risque d'aléa essentiel. Pour éviter ces aléas, il faut s'assurer que le
délai dans la rétroaction des variables d'état est plus grand que le délai que prend les entrées à parcourir
le circuit.
5. Problème 2 - Analyse
Un concepteur inexpérimenté à fait cette machine à état asynchrones qui a plusieurs problèmes.
Effectuez une analyse complète de ce circuit pour identifier ces problèmes
x1
x0
y1+
x1
x0
x1
x0
x1
x1
x0
y0+
x0
x1
y1
y0
a) Expression des sorties
z = x1x0 + y1'y0'x0 + y1y0x1
b) Expression des états futurs
y1+ = x1x0 + y1x1'x0' + x1y1y0'
y0+ = (y1'+x1)(y1+x0')(y0+ x0')(y1+y0+x1')
délai
délai
z
6. c) Tableau de transition
État
État futur
Sortie (z)
y1y0
x1x0 =
x1x0 =
00
01
11
10
00
01
11
10
00
01
00
10
00
0
1
1
0
01
01
00
10
01
0
0
1
0
11
10
00
11
01
0
0
1
1
10
10
00
10
11
0
0
1
0
d) Identifiez s'il y a des courses et des courses critiques
Courses :
–
–
passage de l'état 01/10 (y1y0/x1x0) -> 01/11 -> 10/11. C'est une course critique puisqu'il est possible
de passer par l'état 11/11 qui est un état stable.
Passage de l'état 11/11 -> 11/01 -> 00/01. Ce n'est pas une course critique puisque peut importe par
où passe le changement d'état 11/01 -> 00/01, on ne peut rester pris dans un état stable autre que
l'état final voulu
e) Identifiez s'il y a des aléas dans la sortie et dites ce qui pourrait être modifié pour corriger ces aléas
s'il y en a. Regardez à la fois si la logique peut causer des aléas et si les transitions d'états peuvent
causer des aléas.
La logique de sortie ne peut pas causer d'aléa comme tel (tel que vu au chapitre 3), mais la sortie
pourrait quand même subir des aléas lors des transitions d'états suivantes : 10/11->10/01->00/01 ,
11/11->11/01->00/01 et 10/11->10/10->11/10->01/10. Lors de ces transitions, la sortie originalement à
1 va brièvement passer à 0 pour redevenir 1 lorsque l'état stable final est atteint.
f) Identifiez s'il y a des aléas dans la logique de calcul des états futurs et si oui, comment peut-on
corriger ces aléas?
y1+
x1x0 =
y0+
00
11
10
00
0
0
1
0
01
0
0
1
0
11
1
0
1
10
y1y0
01
1
0
1
x1x0 =
00
01
11
10
00
1
0
0
0
01
1
0
0
1
0
11
0
0
1
1
1
10
0
0
0
1
y1y0
y1+ comporte un aléa de 1 : (y1y0x1x0) 1010 <-> 1000, pour régler l'aléa il faut ajouter le groupe y1y0'x0'
y0+ comporte un aléa de 0 : (y1y0x1x0) 0101 <-> 1101, pour régler l'aléa il faut ajouter le groupe
(x1+x0')
7. g) Tableau d’états
État
État futur
Sortie (z)
y1y0
x1x0 =
x1x0 =
00
01
11
10
00
01
11
10
A
B
A
C
A
0
1
1
0
B
B
A
C
B
0
0
1
0
D
C
A
D
B
0
0
1
0
C
C
A
C
D
0
0
1
1
h) Tableau de séquence
État
État futur
Sortie (z)
y1y0
x1x0 =
x1x0 =
00
01
11
10
00
01
11
10
A
B
A
C
A
-
1
-
0
B
B
A
C
B
0
-
-
0
D
C
A
D
B
-
-
1
-
C
C
A
C
D
0
-
1
-
i) Diagramme de séquence
01/1
10/0
00/0
11/1
11
A
00
C
01
10
01
B
01
11
D
10
00/0
10/0
11/1
00
Notation: x1x0/z
8. Problème 3 – Simplification d'états
État
État futur
Sortie (z)
Entrée xy =
Entrée xy =
00
01
11
10
00
01
11
10
A
A
C
-
G
0
-
-
-
B
B
B
H
F
1
1
-
-
C
B
C
D
-
-
1
-
-
D
-
C
D
G
-
-
0
-
E
-
C
E
-
-
-
1
-
F
I
-
E
F
-
-
-
1
G
A
-
E
G
-
-
-
1
H
-
B
H
G
-
-
1
-
I
I
C
-
G
0
-
-
-
a) Effectuez l'élimination d'états redondants et donnez la table simplifiée
B
C
D
E
F
G
H
I
X
X
X
X
X
X
X
√
A
X
X
X
X
X
X
X
B
X
X
X
X
X
X
C
X
X
X
X
X
D
X
X
(B,C)
X
E
(A,I)
X
X
F
A est équivalent à I, on élimine l'état I et on remplace tous les I par des A
F est équivalent à G, on élimine l'état G et on remplace tous les G par des F
X
X
G
X
H
9. État
État futur
Sortie (z)
Entrée xy =
Entrée xy =
00
01
11
10
00
01
11
10
A
A
C
-
F
0
-
-
-
B
B
B
H
F
1
1
-
-
C
B
C
D
-
-
1
-
-
D
-
C
D
F
-
-
0
-
E
-
C
E
-
-
-
1
-
F
A
-
E
F
-
-
-
1
H
-
B
H
F
-
-
1
-
b) Effectuez la fusion des états et donnez la table fusionnée
H
B
F
E
C
A
D
W = AEF
X = DC
Y = BH
État
État futur
Sortie (z)
Entrée xy =
Entrée xy =
00
01
11
10
00
01
11
10
W
W
X
W
W
0
-
1
1
X
Y
X
X
W
-
1
0
-
Y
Y
Y
Z
W
1
1
1
-
10. Problème 4 – Aléas essentiels
Déterminez si une machine à état produite à partir de cette table d'états pourrait être affectée par des
aléas essentiels:
État
État futur
Entrée xy =
00
01
11
10
A
A
B
-
C
B
B
B
E
E
C
D
-
E
C
D
D
D
E
C
E
A
D
E
E
Oui, il existe deux cas où il pourrait se produire un aléa essentiel :
Lorsque l'état est B/00 et que l'entrée passe à 10, on se dirige vers l'état E. Si l'entrée revient à 00, on se
dirige vers l'état A. Si l'entrée passe à nouveau à 10, on se dirige vers l'état C. Puisque C != E, il y a un
potentiel aléa essentiel.
Lorsque l'état est E/10 et que l'entrée passe à 00, on se dirige vers l'état A. Si l'entrée revient à 10, on se
dirige vers l'état C. Si l'entrée passe à nouveau à 00, on se dirige vers l'état D. Puisque D != A, il y a
un potentiel aléa essentiel.