SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Problèmes de machines à états finis synchrones
N.B. Si vous trouvez des erreurs (logiques, pas grammatiques, je sais qu'il-y-a plein de
ces derniers !) dans cette solutionnaire, contactez jeffrey.dungen@polymtl.ca. Merci !
Synthèse : Détecteur de séquence
Concevez une machine capable de détecter la séquence 0-1-1-0 sur son unique entrée (x).
Quand la séquence se produit, il devrait émettre un 1 sur son unique sortie (y). Une
diagramme temporelle du comportement attendu est donné. Notez que dans la séquence
0-1-1-0-1-1-0, la séquence se produit deux fois ! Utilisez une machine de Moore.

x

x
y
CLK

y

CLK

N'oubliez pas de commencer par une diagramme d'états, d'essayer de minimiser le
nombre d'états et de choisir les bascules qui minimisent le coût (D, T ou JK).
Diagramme d'états :
Rien

1

0
0

«0»
1
0

«01»
1

«011»
0
0

1

«0110»

1
Table d'états suivants :
État courant

État suivant quand x =

Sortie

0

1

Rien

«0»

Rien

0

«0»

«0»

«01»

0

«01»

«0»

«011»

0

«011»

«0110»

Rien

0

«0110»

«0»

«01»

1

Est-ce-qu'on peut fusionner des états ? Non, parce-que parmi les états qui ont la même
sortie, aucuns n'ont les mêmes états suivants.
Table d'états :
État courant État suivant (Y) quand x =

Sortie

y2y1y0

0

1

000 (Rien)

001

000

0

001 («0»)

001

011

0

011 («01»)

001

010

0

010 («011»)

110

000

0

110 («0110»)

001

011

1

Il-y-a cinq états, alors on a besoin de trois bascules. Trois bascules nous donnent trois
bits d'état – c'est à dire 23 = 8 états possibles. Avec deux bascules on n'aura que 22 = 4
états possibles, ce qui sera insuffisant.
C'est possible d'assigner des codes aux états d'une autre façon. Ici on a choisi 000 comme
l'état de défaut par convention. On a essayé de faire que les codes des états suivants sont
adjacents. Et finalement, on a fait que «0110» a une code distincte (c'est la seule où y2 =
1) pour faciliter la logique de sortie.
Simplification des états suivants :
On remarque que Y2 n'est 1 que dans une seule condition (avec aucun cas facultatif
adjacent). Alors on peut le simplifier directement : Y2 = !y2y1!y0!x (pour bascule D)
Pour les autres, on utilise des tables de Karnaugh :
10
0

y2y1y0x

00

Y1 (D)
00
01
11
0
0
1

00

00
0

01

1

0

1

0

01

0

1

0

1

11

0

1

-

-

11

1

0

-

-

10

-

-

-

-

10

-

-

-

-

00

00
0

Y1 (J)
01
0

11
1

10
0

01

-

-

-

-

11

-

-

-

-

11

1

0

-

-

10

-

-

-

-

10

-

-

-

-

y2y1y0x

y2y1y0x

Y1 (T)
01
11
0
1

Y1 (K)
y2y1y0x 00
01
11
00
0
1
0
01

10
0

10
1

C'est moins cher d'utiliser une bascule JK et d'encercler les 1 dans les deux cas. Si vous
n'êtes pas convaincu de ce fait, il faudrait simplifier chaque table de Karnaugh de forme
disjonctive et conjonctive et comparer les coûts !
Alors, Y1J = y0x et Y1K = y2 y0 x (un ou-exclusif de ces trois)
y2y1y0x

Y0 (D)
01
11
0
1

10
1

y2y1y0x

00

00
1

Y0 (T)
01
11
0
0

00

00
1

01

0

0

0

1

01

0

0

1

0

11

1

1

-

-

11

1

1

-

-

10

-

-

-

-

10

-

-

-

-

11
-

10
-

y2y1y0x

00

00
1

Y0 (J)
01
0

01

0

0

-

-

01

-

-

1

0

11

1

1

-

-

11

-

-

-

-

10

-

-

-

-

10

-

-

-

-

y2y1y0x

00

Y0 (K)
00
01
11
0

10
0

10
0

Encore, c'est moins cher d'utiliser une bascule JK et d'encercler les 1 dans les deux cas.
Si vous n'êtes pas convaincu de ce fait, il faudrait simplifier chaque table de Karnaugh de
forme disjonctive et conjonctive et comparer les coûts !
Alors, Y1J = y2 + !y1!x et Y1K = y1x
Simplification de la sortie :
Selon notre choix de variables d'état, la sortie est simple. La sortie est 1 quand y2 = 1.
Circuit final :
À venir quand c'est confirmé que Jeff n'a fait aucune erreur jusqu'à ce point. :-)
Synthèse : Machine de Poly-Cola
Concevez une machine qui vend du Poly-Cola. Une bouteille de Poly-Cola coute 1$. La
machine accepte des 25¢ et des 1$. Dès que la machine obtient exactement 1$, ça lâche
une bouteille. Si plus que 1$ est inséré dans la machine (par un usager con), la machine
devrait simplement lâcher cet argent et retourner à son état initial.
Il-y-a deux entrées : 25¢ et 1$. Ces entrées pulsent à 1 pendant une seule cycle d'horloge
pour indiquer quand le sous correspondant est reçu.
Il-y-a deux sorties : lâche une bouteille et lâche l'argent. Il suffit d'envoyer une pulse de
1 pendant une seule cycle d'horloget pour assurer qu'une bouteille ou l'argent est lâché.

25¢
1$
CLK

Bouteille

POLY

Argent

Concevez la machine en premier comme machine de Moore, et de suite comme machine
de Mealy. Laquelle est plus simple et moins coûteuse ?
N'oubliez pas de commencer par une diagramme d'états, d'essayer de minimiser le
nombre d'états et de choisir les bascules qui minimisent le coût (D, T ou JK).
Diagrammes d'états :
MOORE
0¢

00

00

00

00

MEALY

10

25¢
10

50¢
10

0¢
00/00
01/10 10/00

01
01
01

XX

Retour
d'argent

01

75¢ 10

1$

00/00
XX
00/00

00/00

25¢ 01/01
10/00

50¢ 01/01
10/00

75¢ 01/01
10/10

Avec Moore, il-y-a six états (trois bascules), tandis-qu'avec Mealy il-y-a quatre états
(deux bascules). C'est à dire qu'avec Mealy on sauve une bascule.
Notez que dans la machine de Moore, on aurait pu ajouter des conditions où la machine
peut aller dans l'état 25¢/1$ après avoir été dans l'état 1$ ou Retour d'argent. Mais,
puisque c'est quasiment impossible que quelqu'un ajoute deux sous en deux cycles
d'horloge suivantes, on ignore cette possibilité. La machine devrait simplifier mieux par
conséquent.
Notez aussi que c'est impossible d'avoir 1$ et 25¢ ajoutés pendant la même cycle
d'horloge. Alors on peut ignorer le cas où QL (Quarter/Loonie) = 11.
Table d'états suivants (Moore) :
État courant

État suivant quand QL =

Sorties (BA)

00

01

10

11

0¢

0¢

$1.00

25¢

-

00

25¢

25¢

Ret

50¢

-

00

50¢

50¢

Ret

75¢

-

00

75¢

75¢

Ret

$1.00

-

00

$1.00

0¢

0¢

0¢

-

10

Retour

0¢

0¢

0¢

-

01

Il-n'y-a aucune paire d'états fusionnables.
Table d'états (Moore) :
État courant État suivant quand QL =

Sorties (BA)

y2y1y0

00

01

10

11

000 (0¢)

000

110

001

-

00

001 (25¢)

001

100

011

-

00

011 (50¢)

011

100

010

-

00

010 (75¢)

010

100

110

-

00

110 ($1.00)

000

000

000

-

10

100 (Retour)

000

000

000

-

01

C'est possible d'assigner des codes aux états d'une autre façon. Ici le chemin de 0¢ à $1
consiste de de transitions adjacents dans le but de simplifier la logique. Les états $1 et
Retour, qui sont les seuls à avoir une sortie, sont distincts puisqu'ils ont y2 = 1. Ceci
devrait simplifier les sorties.
Simplification des états suivants (Moore) :
y1y0QL

00

Y2 (D) quand y2 = 0
00
01
11
0
1
-

10
0

y1y0QL

00

Y2 (D) quand y2 = 1
00
01
11
0
0
-

10
0

01

0

1

-

0

01

-

-

-

-

11

0

1

-

0

11

-

-

-

-

10

0

1

-

1

10

0

0

-

0

10
0

y1y0QL

y1y0QL

00

Y2 (T) quand y2 = 0
00
01
11
0
1
-

00

Y2 (T) quand y2 = 1
00
01
11
1
1
-

10
1

01

0

1

-

0

01

-

-

-

-

11

0

1

-

0

11

-

-

-

-

10

0

1

-

1

10

1

1

-

1

10
0

y1y0QL

y1y0QL

00

Y2 (J) quand y2 = 0
00
01
11
0
1
-

00

Y2 (J) quand y2 = 1
00
01
11
-

10
-

01

0

1

-

0

01

-

-

-

-

11

0

1

-

0

11

-

-

-

-

10

0

1

-

1

10

-

-

-

-

10
-

y1y0QL

y1y0QL

00

Y2 (K) quand y2 = 0
00
01
11
-

00

Y2 (K) quand y2 = 1
00
01
11
1
1
-

10
1

01

-

-

-

-

01

-

-

-

-

11

-

-

-

-

11

-

-

-

-

10

-

-

-

-

10

1

1

-

1

Pour Y2, c'est le moins coûteux avec une bascule JK.
Y2J = L + y1!y0Q et Y2K = 1 (oui, on 'Kill' toujours !)
y1y0QL

00

Y1 (D) quand y2 = 0
00
01
11
0
1
-

10
0

y1y0QL

00

Y1 (D) quand y2 = 1
00
01
11
0
0
-

10
0

01

0

0

-

1

01

-

-

-

-

11

1

0

-

1

11

-

-

-

-

10

1

0

-

1

10

0

0

-

0

10
0

y1y0QL

y1y0QL

00

Y1 (T) quand y2 = 0
00
01
11
0
1
-

00

Y1 (T) quand y2 = 1
00
01
11
0
0
-

10
0

01

0

0

-

1

01

-

-

-

-

11

0

1

-

0

11

-

-

-

-

10

0

1

-

0

10

1

1

-

1

10
0

y1y0QL

y1y0QL

00

Y1 (J) quand y2 = 0
00
01
11
0
1
-

00

Y1 (J) quand y2 = 1
00
01
11
0
0
-

10
0

01

0

0

-

1

01

-

-

-

-

11

-

-

-

-

11

-

-

-

-

10

-

-

-

-

10

-

-

-

-

10
-

y1y0QL

y1y0QL

00

Y1 (K) quand y2 = 0
00
01
11
-

00

Y1 (K) quand y2 = 1
00
01
11
-

10
-

01

-

-

-

-

01

-

-

-

-

11

0

1

-

0

11

-

-

-

-

10

0

1

-

0

10

1

1

-

1

Pour Y1, c'est le moins coûteux avec une bascule JK.
Y1J = y0Q + !y2!y0L et Y1K = y2 + L
y1y0QL

00

Y0 (D) quand y2 = 0
00
01
11
0
0
-

10
1

y1y0QL

00

Y0 (D) quand y2 = 1
00
01
11
0
0
-

10
0

01

1

0

-

1

01

-

-

-

-

11

1

0

-

0

11

-

-

-

-

10

0

0

-

0

10

0

0

-

0

10
1

y1y0QL

y1y0QL

00

Y0 (T) quand y2 = 0
00
01
11
0
0
-

00

Y0 (T) quand y2 = 1
00
01
11
0
0
-

10
0

01

1

0

-

1

01

-

-

-

-

11

0

1

-

1

11

-

-

-

-

10

1

1

-

1

10

1

1

-

1

10
1

y1y0QL

y1y0QL

00

Y0 (J) quand y2 = 0
00
01
11
0
0
-

00

Y0 (J) quand y2 = 1
00
01
11
0
0
-

10
0

01

1

0

-

1

01

-

-

-

-

11

-

-

-

-

11

-

-

-

-

10

-

-

-

-

10

-

-

-

-

10
-

y1y0QL

y1y0QL

00

Y0 (K) quand y2 = 0
00
01
11
-

00

Y0 (K) quand y2 = 1
00
01
11
-

10
-

01

-

-

-

-

01

-

-

-

-

11

0

1

-

1

11

-

-

-

-

10

1

1

-

1

10

1

1

-

1

Pour Y0, c'est le moins coûteux avec une bascule D.
Y0 = y0!Q!L + !y2y1Q
Simplification des sorties (Moore) :
Heureusement on peut simplifier les sorties directement de la table d'états puisque pour
chacune, il-y-a juste un cas ou c'est 1. Alors, B = y2y1 et A = y2!y1
Circuit final :
À venir quand c'est confirmé que Jeff n'a fait aucune erreur jusqu'à ce point. :-)
Maintenant, il faut l'implémenter comme machine de Mealy pour qu'on puisse comparer
les deux solutions selon leur cout...
Table d'états suivants (Mealy) :
État suivant quand QL =

Sorties (BA) quand QL =

00

01

10

11

00

01

10

11

0¢

0¢

0¢

25¢

-

00

10

00

-

25¢

25¢

0¢

50¢

-

00

01

00

-

50¢

50¢

0¢

75¢

-

00

01

00

-

75¢

75¢

0¢

0¢

-

00

01

10

-

État
courant

Il-n'y-a aucune paire d'états fusionnables.
Table d'états (Mealy) :
État courant État suivant quand QL = Sorties (BA) quand QL =
y1y0
00
01
10
11
00
01
10
11
00 (0¢)

00

00

01

-

00

10

00

-

01 (25¢)

01

00

11

-

00

01

00

-

11 (50¢)

11

00

10

-

00

01

00

-

10 (75¢)

10

00

00

-

00

01

10

-

C'est possible d'assigner des codes aux états d'une autre façon. Ici le chemin de 0¢ à 75¢
et de retour à 0¢ consiste de de transitions adjacents dans le but de simplifier la logique.
Simplification des états suivants (Mealy) :
y1y0QL

Y1 (D)
01
11
0
-

10
0

y1y0QL

00

00
0

Y1 (T)
01
11
0
-

00

00
0

01

0

0

-

1

01

0

0

-

1

11

1

0

-

1

11

0

1

-

0

10

1

0

-

0

10

0

1

-

1

y1y0QL

Y1 (J)
01
0

11
-

10
0

y1y0QL

00

00
0

00

00
-

01

0

0

-

1

01

-

-

-

-

11

-

-

-

-

11

0

1

-

0

10

-

-

-

-

10

0

1

-

1

Y1 (K)
01
11
-

10
0

10
-

C'est le moins cher avec une bascule JK (JK = 12, D = 13).
Y1J = y0Q et Y1K = L + !y0Q

y1y0QL

Y0 (D)
01
11
0
-

10
1

y1y0QL

00

00
0

Y0 (T)
01
11
0
-

00

00
0

01

1

0

-

1

01

0

1

-

0

11

1

0

-

0

11

0

1

-

1

10

0

0

-

0

10

0

0

-

0

11
-

10
1

y1y0QL

00

00
0

Y0 (J)
01
0

01

-

-

-

11

-

-

10

0

0

y1y0QL

10
1

00

Y0 (K)
00
01
11
-

10
-

-

01

0

1

-

0

-

-

11

0

1

-

1

-

0

10

-

-

-

-

Encore, c'est le moins cher avec une bascule JK (JK = 12, D = 13).
Y0J = !y1Q et Y0K = L + y1Q
Simplification des sorties (Mealy) :
B
01
1

11
-

10
0

y1y0QL

00

00
0

01

0

0

-

11

0

0

10

0

0

y1y0QL

00

00
0

A
01
0

11
-

10
0

0

01

0

1

-

0

-

0

11

0

1

-

0

-

1

10

0

1

-

0

B = !y1!y0L + y1!y0Q et A = !L · (y1 + y0)
Circuit final :
À venir quand c'est confirmé que Jeff n'a fait aucune erreur jusqu'à ce point. :-)

Comparaison :
La machine de Moore a un coût logique (Y2 + Y1 + Y0 + A + B) de (9 + 17 + 14 + 4 + 4)
= 48
La machine de Mealy a un coût logique (Y1 + Y0 + A + B) de (12 + 12 + 8 + 14) = 46
Étant donné que la machine de Mealy requiert une bascule de moins que celle de Moore,
et son coût est inférieur, on peut conclure que la machine de Mealy est moins chère.
Analyse : Détecteur de séquence
Le circuit suivant est un détecteur de séquence. En suivant les étapes de l'analyse,
déterminez quelle séquence ce circuit détecte.
x
Y1

y1

CLK
Y0

y0

y

CLK

Dès que vous obtenez la diagramme d'états, c'est facile de déterminer cette séquence.
Astuce : l'état initial est y1y0 = 00. Dans cet état, aucune partie de la séquence n'a été
détectée.
Table d'états :
Si ce n'est pas évident comment passer directement du circuit à cette table, trouvez en
premier les équations pour Y1 et Y0 puis déterminez leur sorties selon toutes les
combinaisons d'entrées possibles (comme dans la colonne à gauche dans la table.
État courant État suivant (Y1Y0) quand x =

Sortie

y1y0

0

1

00

00

01

0

01

11

01

0

10

11

01

1

11

00

10

0
Table d'états suivants :
Maintenant, on sait que l'état 00 est l'état initial, alors on le nomme «Rien». On peut
facilement nommer les autres états. Comment ? On leur accorde comme nom la
séquence qu'on a eu à date sur l'entrée :

État courant

État suivant quand x =

Sortie

0

1

Rien (00)

00

01

0

«1» (01)

11

01

0

«101» (10)

11

01

1

«10» (11)

00

10

0

On n'a même pas besoin de dessiner une diagramme d'états. On voit que dès qu'on
obtient la séquence 1-0-1, la sortie devient 1. Quand même, voici la diagramme d'états
pour mieux comprendre comment fonctionne ce circuit :
Rien

0

1

«1»
0
0

«10»
1

«101» 1
0

Ce circuit est donc un détecteur de la séquence 1-0-1.

1

Contenu connexe

Tendances

Systèmes de logiques séquentielles-Bascules
Systèmes de logiques séquentielles-BasculesSystèmes de logiques séquentielles-Bascules
Systèmes de logiques séquentielles-BasculesHatem Jebali
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision Yassine Badri
 
47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnesTRIKI BILEL
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcminfcom
 
124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011sunprass
 
Rapport stage pfe
Rapport stage  pfe Rapport stage  pfe
Rapport stage pfe rimeh moussi
 
Le grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigésLe grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigéstoumed
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
Rapport du projet de fin d'études
Rapport du projet de fin d'étudesRapport du projet de fin d'études
Rapport du projet de fin d'étudeslimam95
 
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...Madjid Meddah
 

Tendances (20)

Systèmes de logiques séquentielles-Bascules
Systèmes de logiques séquentielles-BasculesSystèmes de logiques séquentielles-Bascules
Systèmes de logiques séquentielles-Bascules
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
Bascules
BasculesBascules
Bascules
 
47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes
 
Rapport De PFE
Rapport De PFERapport De PFE
Rapport De PFE
 
Redresseurs
RedresseursRedresseurs
Redresseurs
 
Ener1 - CM1 - Monophasé
Ener1 - CM1 - MonophaséEner1 - CM1 - Monophasé
Ener1 - CM1 - Monophasé
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
01 Introduction aux SI 2018
01 Introduction aux SI 201801 Introduction aux SI 2018
01 Introduction aux SI 2018
 
124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011
 
Rapport stage pfe
Rapport stage  pfe Rapport stage  pfe
Rapport stage pfe
 
Le grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigésLe grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigés
 
Systeme embarque
Systeme embarqueSysteme embarque
Systeme embarque
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
QCM Sécurité Informatique
QCM Sécurité InformatiqueQCM Sécurité Informatique
QCM Sécurité Informatique
 
Rapport du projet de fin d'études
Rapport du projet de fin d'étudesRapport du projet de fin d'études
Rapport du projet de fin d'études
 
CM4 - Transformée en z
CM4 - Transformée en zCM4 - Transformée en z
CM4 - Transformée en z
 
Cours mooremealy [autosaved]
Cours mooremealy [autosaved]Cours mooremealy [autosaved]
Cours mooremealy [autosaved]
 
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
 

Similaire à Ch42 reponses

Circuits séquentiels v5
Circuits séquentiels v5Circuits séquentiels v5
Circuits séquentiels v5linuxscout
 
Cours2 Réponse temporelle des systèmes dynamiques continus LTI
Cours2 Réponse temporelle des systèmes dynamiques continus LTICours2 Réponse temporelle des systèmes dynamiques continus LTI
Cours2 Réponse temporelle des systèmes dynamiques continus LTIsarah Benmerzouk
 
VLSI-Chapitre1-Diaporama-2022.pptx
VLSI-Chapitre1-Diaporama-2022.pptxVLSI-Chapitre1-Diaporama-2022.pptx
VLSI-Chapitre1-Diaporama-2022.pptxmouadmourad1
 
Algèbre de boole ionction-logique-p2
Algèbre de boole ionction-logique-p2Algèbre de boole ionction-logique-p2
Algèbre de boole ionction-logique-p2linuxscout
 

Similaire à Ch42 reponses (9)

Ch42 questions
Ch42 questionsCh42 questions
Ch42 questions
 
Ch4 3 reponses
Ch4 3 reponsesCh4 3 reponses
Ch4 3 reponses
 
Compteur synchrone
Compteur synchroneCompteur synchrone
Compteur synchrone
 
Circuits séquentiels v5
Circuits séquentiels v5Circuits séquentiels v5
Circuits séquentiels v5
 
Cours2 Réponse temporelle des systèmes dynamiques continus LTI
Cours2 Réponse temporelle des systèmes dynamiques continus LTICours2 Réponse temporelle des systèmes dynamiques continus LTI
Cours2 Réponse temporelle des systèmes dynamiques continus LTI
 
VLSI-Chapitre1-Diaporama-2022.pptx
VLSI-Chapitre1-Diaporama-2022.pptxVLSI-Chapitre1-Diaporama-2022.pptx
VLSI-Chapitre1-Diaporama-2022.pptx
 
Arma
ArmaArma
Arma
 
Algèbre de boole ionction-logique-p2
Algèbre de boole ionction-logique-p2Algèbre de boole ionction-logique-p2
Algèbre de boole ionction-logique-p2
 
Asservis num
Asservis numAsservis num
Asservis num
 

Plus de Abdou Ait Loutou (7)

Chapitre2 2
Chapitre2 2Chapitre2 2
Chapitre2 2
 
Chapitre2 1 c
Chapitre2 1 cChapitre2 1 c
Chapitre2 1 c
 
Chapitre2 1
Chapitre2 1Chapitre2 1
Chapitre2 1
 
Ch4 3 questions
Ch4 3 questionsCh4 3 questions
Ch4 3 questions
 
Ch1 reponses
Ch1 reponsesCh1 reponses
Ch1 reponses
 
Ch1 questions
Ch1 questionsCh1 questions
Ch1 questions
 
Exemple qm
Exemple qmExemple qm
Exemple qm
 

Ch42 reponses

  • 1. Problèmes de machines à états finis synchrones N.B. Si vous trouvez des erreurs (logiques, pas grammatiques, je sais qu'il-y-a plein de ces derniers !) dans cette solutionnaire, contactez jeffrey.dungen@polymtl.ca. Merci ! Synthèse : Détecteur de séquence Concevez une machine capable de détecter la séquence 0-1-1-0 sur son unique entrée (x). Quand la séquence se produit, il devrait émettre un 1 sur son unique sortie (y). Une diagramme temporelle du comportement attendu est donné. Notez que dans la séquence 0-1-1-0-1-1-0, la séquence se produit deux fois ! Utilisez une machine de Moore. x x y CLK y CLK N'oubliez pas de commencer par une diagramme d'états, d'essayer de minimiser le nombre d'états et de choisir les bascules qui minimisent le coût (D, T ou JK). Diagramme d'états : Rien 1 0 0 «0» 1 0 «01» 1 «011» 0 0 1 «0110» 1
  • 2. Table d'états suivants : État courant État suivant quand x = Sortie 0 1 Rien «0» Rien 0 «0» «0» «01» 0 «01» «0» «011» 0 «011» «0110» Rien 0 «0110» «0» «01» 1 Est-ce-qu'on peut fusionner des états ? Non, parce-que parmi les états qui ont la même sortie, aucuns n'ont les mêmes états suivants. Table d'états : État courant État suivant (Y) quand x = Sortie y2y1y0 0 1 000 (Rien) 001 000 0 001 («0») 001 011 0 011 («01») 001 010 0 010 («011») 110 000 0 110 («0110») 001 011 1 Il-y-a cinq états, alors on a besoin de trois bascules. Trois bascules nous donnent trois bits d'état – c'est à dire 23 = 8 états possibles. Avec deux bascules on n'aura que 22 = 4 états possibles, ce qui sera insuffisant. C'est possible d'assigner des codes aux états d'une autre façon. Ici on a choisi 000 comme l'état de défaut par convention. On a essayé de faire que les codes des états suivants sont adjacents. Et finalement, on a fait que «0110» a une code distincte (c'est la seule où y2 = 1) pour faciliter la logique de sortie. Simplification des états suivants : On remarque que Y2 n'est 1 que dans une seule condition (avec aucun cas facultatif adjacent). Alors on peut le simplifier directement : Y2 = !y2y1!y0!x (pour bascule D) Pour les autres, on utilise des tables de Karnaugh :
  • 3. 10 0 y2y1y0x 00 Y1 (D) 00 01 11 0 0 1 00 00 0 01 1 0 1 0 01 0 1 0 1 11 0 1 - - 11 1 0 - - 10 - - - - 10 - - - - 00 00 0 Y1 (J) 01 0 11 1 10 0 01 - - - - 11 - - - - 11 1 0 - - 10 - - - - 10 - - - - y2y1y0x y2y1y0x Y1 (T) 01 11 0 1 Y1 (K) y2y1y0x 00 01 11 00 0 1 0 01 10 0 10 1 C'est moins cher d'utiliser une bascule JK et d'encercler les 1 dans les deux cas. Si vous n'êtes pas convaincu de ce fait, il faudrait simplifier chaque table de Karnaugh de forme disjonctive et conjonctive et comparer les coûts ! Alors, Y1J = y0x et Y1K = y2 y0 x (un ou-exclusif de ces trois) y2y1y0x Y0 (D) 01 11 0 1 10 1 y2y1y0x 00 00 1 Y0 (T) 01 11 0 0 00 00 1 01 0 0 0 1 01 0 0 1 0 11 1 1 - - 11 1 1 - - 10 - - - - 10 - - - - 11 - 10 - y2y1y0x 00 00 1 Y0 (J) 01 0 01 0 0 - - 01 - - 1 0 11 1 1 - - 11 - - - - 10 - - - - 10 - - - - y2y1y0x 00 Y0 (K) 00 01 11 0 10 0 10 0 Encore, c'est moins cher d'utiliser une bascule JK et d'encercler les 1 dans les deux cas. Si vous n'êtes pas convaincu de ce fait, il faudrait simplifier chaque table de Karnaugh de forme disjonctive et conjonctive et comparer les coûts !
  • 4. Alors, Y1J = y2 + !y1!x et Y1K = y1x Simplification de la sortie : Selon notre choix de variables d'état, la sortie est simple. La sortie est 1 quand y2 = 1. Circuit final : À venir quand c'est confirmé que Jeff n'a fait aucune erreur jusqu'à ce point. :-)
  • 5. Synthèse : Machine de Poly-Cola Concevez une machine qui vend du Poly-Cola. Une bouteille de Poly-Cola coute 1$. La machine accepte des 25¢ et des 1$. Dès que la machine obtient exactement 1$, ça lâche une bouteille. Si plus que 1$ est inséré dans la machine (par un usager con), la machine devrait simplement lâcher cet argent et retourner à son état initial. Il-y-a deux entrées : 25¢ et 1$. Ces entrées pulsent à 1 pendant une seule cycle d'horloge pour indiquer quand le sous correspondant est reçu. Il-y-a deux sorties : lâche une bouteille et lâche l'argent. Il suffit d'envoyer une pulse de 1 pendant une seule cycle d'horloget pour assurer qu'une bouteille ou l'argent est lâché. 25¢ 1$ CLK Bouteille POLY Argent Concevez la machine en premier comme machine de Moore, et de suite comme machine de Mealy. Laquelle est plus simple et moins coûteuse ? N'oubliez pas de commencer par une diagramme d'états, d'essayer de minimiser le nombre d'états et de choisir les bascules qui minimisent le coût (D, T ou JK). Diagrammes d'états : MOORE 0¢ 00 00 00 00 MEALY 10 25¢ 10 50¢ 10 0¢ 00/00 01/10 10/00 01 01 01 XX Retour d'argent 01 75¢ 10 1$ 00/00 XX 00/00 00/00 25¢ 01/01 10/00 50¢ 01/01 10/00 75¢ 01/01 10/10 Avec Moore, il-y-a six états (trois bascules), tandis-qu'avec Mealy il-y-a quatre états (deux bascules). C'est à dire qu'avec Mealy on sauve une bascule. Notez que dans la machine de Moore, on aurait pu ajouter des conditions où la machine peut aller dans l'état 25¢/1$ après avoir été dans l'état 1$ ou Retour d'argent. Mais,
  • 6. puisque c'est quasiment impossible que quelqu'un ajoute deux sous en deux cycles d'horloge suivantes, on ignore cette possibilité. La machine devrait simplifier mieux par conséquent. Notez aussi que c'est impossible d'avoir 1$ et 25¢ ajoutés pendant la même cycle d'horloge. Alors on peut ignorer le cas où QL (Quarter/Loonie) = 11. Table d'états suivants (Moore) : État courant État suivant quand QL = Sorties (BA) 00 01 10 11 0¢ 0¢ $1.00 25¢ - 00 25¢ 25¢ Ret 50¢ - 00 50¢ 50¢ Ret 75¢ - 00 75¢ 75¢ Ret $1.00 - 00 $1.00 0¢ 0¢ 0¢ - 10 Retour 0¢ 0¢ 0¢ - 01 Il-n'y-a aucune paire d'états fusionnables. Table d'états (Moore) : État courant État suivant quand QL = Sorties (BA) y2y1y0 00 01 10 11 000 (0¢) 000 110 001 - 00 001 (25¢) 001 100 011 - 00 011 (50¢) 011 100 010 - 00 010 (75¢) 010 100 110 - 00 110 ($1.00) 000 000 000 - 10 100 (Retour) 000 000 000 - 01 C'est possible d'assigner des codes aux états d'une autre façon. Ici le chemin de 0¢ à $1 consiste de de transitions adjacents dans le but de simplifier la logique. Les états $1 et Retour, qui sont les seuls à avoir une sortie, sont distincts puisqu'ils ont y2 = 1. Ceci devrait simplifier les sorties.
  • 7. Simplification des états suivants (Moore) : y1y0QL 00 Y2 (D) quand y2 = 0 00 01 11 0 1 - 10 0 y1y0QL 00 Y2 (D) quand y2 = 1 00 01 11 0 0 - 10 0 01 0 1 - 0 01 - - - - 11 0 1 - 0 11 - - - - 10 0 1 - 1 10 0 0 - 0 10 0 y1y0QL y1y0QL 00 Y2 (T) quand y2 = 0 00 01 11 0 1 - 00 Y2 (T) quand y2 = 1 00 01 11 1 1 - 10 1 01 0 1 - 0 01 - - - - 11 0 1 - 0 11 - - - - 10 0 1 - 1 10 1 1 - 1 10 0 y1y0QL y1y0QL 00 Y2 (J) quand y2 = 0 00 01 11 0 1 - 00 Y2 (J) quand y2 = 1 00 01 11 - 10 - 01 0 1 - 0 01 - - - - 11 0 1 - 0 11 - - - - 10 0 1 - 1 10 - - - - 10 - y1y0QL y1y0QL 00 Y2 (K) quand y2 = 0 00 01 11 - 00 Y2 (K) quand y2 = 1 00 01 11 1 1 - 10 1 01 - - - - 01 - - - - 11 - - - - 11 - - - - 10 - - - - 10 1 1 - 1 Pour Y2, c'est le moins coûteux avec une bascule JK. Y2J = L + y1!y0Q et Y2K = 1 (oui, on 'Kill' toujours !)
  • 8. y1y0QL 00 Y1 (D) quand y2 = 0 00 01 11 0 1 - 10 0 y1y0QL 00 Y1 (D) quand y2 = 1 00 01 11 0 0 - 10 0 01 0 0 - 1 01 - - - - 11 1 0 - 1 11 - - - - 10 1 0 - 1 10 0 0 - 0 10 0 y1y0QL y1y0QL 00 Y1 (T) quand y2 = 0 00 01 11 0 1 - 00 Y1 (T) quand y2 = 1 00 01 11 0 0 - 10 0 01 0 0 - 1 01 - - - - 11 0 1 - 0 11 - - - - 10 0 1 - 0 10 1 1 - 1 10 0 y1y0QL y1y0QL 00 Y1 (J) quand y2 = 0 00 01 11 0 1 - 00 Y1 (J) quand y2 = 1 00 01 11 0 0 - 10 0 01 0 0 - 1 01 - - - - 11 - - - - 11 - - - - 10 - - - - 10 - - - - 10 - y1y0QL y1y0QL 00 Y1 (K) quand y2 = 0 00 01 11 - 00 Y1 (K) quand y2 = 1 00 01 11 - 10 - 01 - - - - 01 - - - - 11 0 1 - 0 11 - - - - 10 0 1 - 0 10 1 1 - 1 Pour Y1, c'est le moins coûteux avec une bascule JK. Y1J = y0Q + !y2!y0L et Y1K = y2 + L
  • 9. y1y0QL 00 Y0 (D) quand y2 = 0 00 01 11 0 0 - 10 1 y1y0QL 00 Y0 (D) quand y2 = 1 00 01 11 0 0 - 10 0 01 1 0 - 1 01 - - - - 11 1 0 - 0 11 - - - - 10 0 0 - 0 10 0 0 - 0 10 1 y1y0QL y1y0QL 00 Y0 (T) quand y2 = 0 00 01 11 0 0 - 00 Y0 (T) quand y2 = 1 00 01 11 0 0 - 10 0 01 1 0 - 1 01 - - - - 11 0 1 - 1 11 - - - - 10 1 1 - 1 10 1 1 - 1 10 1 y1y0QL y1y0QL 00 Y0 (J) quand y2 = 0 00 01 11 0 0 - 00 Y0 (J) quand y2 = 1 00 01 11 0 0 - 10 0 01 1 0 - 1 01 - - - - 11 - - - - 11 - - - - 10 - - - - 10 - - - - 10 - y1y0QL y1y0QL 00 Y0 (K) quand y2 = 0 00 01 11 - 00 Y0 (K) quand y2 = 1 00 01 11 - 10 - 01 - - - - 01 - - - - 11 0 1 - 1 11 - - - - 10 1 1 - 1 10 1 1 - 1 Pour Y0, c'est le moins coûteux avec une bascule D. Y0 = y0!Q!L + !y2y1Q
  • 10. Simplification des sorties (Moore) : Heureusement on peut simplifier les sorties directement de la table d'états puisque pour chacune, il-y-a juste un cas ou c'est 1. Alors, B = y2y1 et A = y2!y1 Circuit final : À venir quand c'est confirmé que Jeff n'a fait aucune erreur jusqu'à ce point. :-)
  • 11. Maintenant, il faut l'implémenter comme machine de Mealy pour qu'on puisse comparer les deux solutions selon leur cout... Table d'états suivants (Mealy) : État suivant quand QL = Sorties (BA) quand QL = 00 01 10 11 00 01 10 11 0¢ 0¢ 0¢ 25¢ - 00 10 00 - 25¢ 25¢ 0¢ 50¢ - 00 01 00 - 50¢ 50¢ 0¢ 75¢ - 00 01 00 - 75¢ 75¢ 0¢ 0¢ - 00 01 10 - État courant Il-n'y-a aucune paire d'états fusionnables. Table d'états (Mealy) : État courant État suivant quand QL = Sorties (BA) quand QL = y1y0 00 01 10 11 00 01 10 11 00 (0¢) 00 00 01 - 00 10 00 - 01 (25¢) 01 00 11 - 00 01 00 - 11 (50¢) 11 00 10 - 00 01 00 - 10 (75¢) 10 00 00 - 00 01 10 - C'est possible d'assigner des codes aux états d'une autre façon. Ici le chemin de 0¢ à 75¢ et de retour à 0¢ consiste de de transitions adjacents dans le but de simplifier la logique.
  • 12. Simplification des états suivants (Mealy) : y1y0QL Y1 (D) 01 11 0 - 10 0 y1y0QL 00 00 0 Y1 (T) 01 11 0 - 00 00 0 01 0 0 - 1 01 0 0 - 1 11 1 0 - 1 11 0 1 - 0 10 1 0 - 0 10 0 1 - 1 y1y0QL Y1 (J) 01 0 11 - 10 0 y1y0QL 00 00 0 00 00 - 01 0 0 - 1 01 - - - - 11 - - - - 11 0 1 - 0 10 - - - - 10 0 1 - 1 Y1 (K) 01 11 - 10 0 10 - C'est le moins cher avec une bascule JK (JK = 12, D = 13). Y1J = y0Q et Y1K = L + !y0Q y1y0QL Y0 (D) 01 11 0 - 10 1 y1y0QL 00 00 0 Y0 (T) 01 11 0 - 00 00 0 01 1 0 - 1 01 0 1 - 0 11 1 0 - 0 11 0 1 - 1 10 0 0 - 0 10 0 0 - 0 11 - 10 1 y1y0QL 00 00 0 Y0 (J) 01 0 01 - - - 11 - - 10 0 0 y1y0QL 10 1 00 Y0 (K) 00 01 11 - 10 - - 01 0 1 - 0 - - 11 0 1 - 1 - 0 10 - - - - Encore, c'est le moins cher avec une bascule JK (JK = 12, D = 13). Y0J = !y1Q et Y0K = L + y1Q
  • 13. Simplification des sorties (Mealy) : B 01 1 11 - 10 0 y1y0QL 00 00 0 01 0 0 - 11 0 0 10 0 0 y1y0QL 00 00 0 A 01 0 11 - 10 0 0 01 0 1 - 0 - 0 11 0 1 - 0 - 1 10 0 1 - 0 B = !y1!y0L + y1!y0Q et A = !L · (y1 + y0) Circuit final : À venir quand c'est confirmé que Jeff n'a fait aucune erreur jusqu'à ce point. :-) Comparaison : La machine de Moore a un coût logique (Y2 + Y1 + Y0 + A + B) de (9 + 17 + 14 + 4 + 4) = 48 La machine de Mealy a un coût logique (Y1 + Y0 + A + B) de (12 + 12 + 8 + 14) = 46 Étant donné que la machine de Mealy requiert une bascule de moins que celle de Moore, et son coût est inférieur, on peut conclure que la machine de Mealy est moins chère.
  • 14. Analyse : Détecteur de séquence Le circuit suivant est un détecteur de séquence. En suivant les étapes de l'analyse, déterminez quelle séquence ce circuit détecte. x Y1 y1 CLK Y0 y0 y CLK Dès que vous obtenez la diagramme d'états, c'est facile de déterminer cette séquence. Astuce : l'état initial est y1y0 = 00. Dans cet état, aucune partie de la séquence n'a été détectée. Table d'états : Si ce n'est pas évident comment passer directement du circuit à cette table, trouvez en premier les équations pour Y1 et Y0 puis déterminez leur sorties selon toutes les combinaisons d'entrées possibles (comme dans la colonne à gauche dans la table. État courant État suivant (Y1Y0) quand x = Sortie y1y0 0 1 00 00 01 0 01 11 01 0 10 11 01 1 11 00 10 0
  • 15. Table d'états suivants : Maintenant, on sait que l'état 00 est l'état initial, alors on le nomme «Rien». On peut facilement nommer les autres états. Comment ? On leur accorde comme nom la séquence qu'on a eu à date sur l'entrée : État courant État suivant quand x = Sortie 0 1 Rien (00) 00 01 0 «1» (01) 11 01 0 «101» (10) 11 01 1 «10» (11) 00 10 0 On n'a même pas besoin de dessiner une diagramme d'états. On voit que dès qu'on obtient la séquence 1-0-1, la sortie devient 1. Quand même, voici la diagramme d'états pour mieux comprendre comment fonctionne ce circuit : Rien 0 1 «1» 0 0 «10» 1 «101» 1 0 Ce circuit est donc un détecteur de la séquence 1-0-1. 1