synthese_synchrone
-
Upload
moundhernasmlahe -
Category
Documents
-
view
215 -
download
0
Transcript of synthese_synchrone
-
8/18/2019 synthese_synchrone
1/60
Chapitre 4Chapitre 4Synthèse des systèmes LogiquesSynthèse des systèmes Logiques
SynchronesSynchrones
2001
Cours de logique séquentielle
E. Pigeon
-
8/18/2019 synthese_synchrone
2/60
Procédure à suivre pour la synthèse d’uneProcédure à suivre pour la synthèse d’une
machine d’état synchronemachine d’état synchrone1. Construire le graphe et table des états à partir du cahier des charges
2. Minimiser le nombre d’états
3. Choisir les variables d’états et coder les états4. Construire la table de transition/sortie à partir de la table des états/sortie
6. Choisir le type de bascules (D, J-K, etc.)
Le plusdifficile
mais le plusintéressant
Cours de logique séquentielle
. ons ru re a a e exc a on es ascu es par r e a a e etransition
8. Déterminer les équations d’excitation des bascules à partir de la tabled’excitation
9. Déterminer l’équation du circuit combinatoire de sortie à partir de la
table d’excitation10. Etude des états hors cycle et modification
11. Elimination des aléas d’entrée et de sortie
Automatique
-
8/18/2019 synthese_synchrone
3/60
Etape nEtape n°°1 : Construction du diagramme à partir1 : Construction du diagramme à partir
du cahier des chargesdu cahier des charges Cette étape peut être vue comme l’écriture d’un organigramme :
– Le cahier des charges est bien souvent une vague description du
fonctionnement de la machine d’état– Les prises de décision doivent se faire en fonction du bon sens et
parfois arbitrairement (précision dans la notice)
Cours de logique séquentielle
– spécifiés dans le cahier des charges)
– Cette étape est itérative …
-
8/18/2019 synthese_synchrone
4/60
Synthèse Exemple 1: InterprétationSynthèse Exemple 1: Interprétation
Cahier des charges (Détecteur de séquence)– Synthèse d’une machine d’état avec 1 entrée et 1 sortie : A et Y.
– Y doit passer à 1 lorsque la séquence d’entrée 1 1 0 a été détectée pendant
les 3 derniers fronts actifs d’horloge sinon Y = 0.– La machine synthétisée est une machine Moore
Interprétation du cahier des charges
Cours de logique séquentielle
A
CLK
Y
0 1 1 0 0 1 1 1 0 1 1 1
-
8/18/2019 synthese_synchrone
5/60
Synthèse Exemple 1: Choix des états en vue deSynthèse Exemple 1: Choix des états en vue de
la construction du graphe des étatsla construction du graphe des états Etats Possibles (Que doit on se rappeler ?)
– Initial : mise sous tension (pas de front actif) Y = 0
– Pas1 : Premier 1 pas détecté Y = 0– Prem1 : Premier 1 détecté Y = 0
– Deux1 : Deuxième 1 consécutif détecté Y = 0
– Bingo : Code détecté 1 1 0 Y = 1
Cours de logique séquentielle
A
CLK
YPrem1
Deux1
Bingo
Pas1
Prem1
Deux1
Deux1
Bingo
Prem1
Deux1
Pas1 Deux1
Tous les états sont ils utiles ?
– Remarque: Initial est équivalent à Pas1
union de l’état Initial et Pas1
0 1 1 0 0 1 1 1 0 1 1 1
-
8/18/2019 synthese_synchrone
6/60
Synthèse Exemple 1: Graphe et Table des étatsSynthèse Exemple 1: Graphe et Table des états
Pas1
0
Prem1
0
1
0
Graphe des étatsReset
0
SPas1
Prem1
A
Y
Table des états
0 1Pas1
Pas1
Prem1
Deux1
0
0
Cours de logique séquentielle
Deux1
0
Bingo
1
1
0Format:Arc: entrée ANœud : état/sortie Y
Deux1Bingo
S+
10
1
BingoPas1
Deux1Prem1
01
-
8/18/2019 synthese_synchrone
7/60
Exemple 1: détecteur de 1 1 0Exemple 1: détecteur de 1 1 0
Etape 2: Minimisation du nombre d’états
Etape 3: Choix des variables d’états :
S
Pas1
A0
0 0
1
0 1
Y
0
Binaire naturel
Q1 Q2
0 0 Pas1 Prem1
Cours de logique séquentielle
rem
Deux1
Bingo
1 1
0 0
1 0
0 1
0
1
S+
1 0
1 1
CCS : 1 porte ET
Y= Q1Q2
Bingo
Pas1
Deux1
Prem1
-
8/18/2019 synthese_synchrone
8/60
Synthèse utilisant des bascules JSynthèse utilisant des bascules J--KK La procédure reste la même quelque soit le type de bascule sauf pour les
étapes :– 5. Choix du type de bascule
– 6. Table d’excitation
Table de transition d’une J-KJ K Q Q+
Table d’excitation d’une J-K
Q Q+ J K pour JK
Cours de logique séquentielle
Mémoire 0 0 1 10 1 0 0
Reset 0 1 1 01 0 0 1
Set 1 0 1 11 1 0 1T 1 1 1 0
0 0 00, 010 1 10, 111 0 01, 111 1 00, 10
0 φ1 φφ 1φ 0
beaucoup de cas indéfinis :plus de liberté
-
8/18/2019 synthese_synchrone
9/60
Exemple 1Exemple 1--bisbis
Table de Transition/sortieA
Q1 Q2 0 1 Y0 0 0 0 0 1 00 1 0 0 1 1 01 1 0 0 0 1 01 0 1 1 1 1 1
+ +
Cours de logique séquentielle
-A
Q1 Q2 0 1 Y
0 0
0 11 1
1 0J1 K1, J2 K2
0φ, 0φ
0φ, φ1φ1, φ1
φ0, 1φ
0φ, 1φ 0
00
1
1φ, φ0φ1, φ0φ0, 1φ
-
8/18/2019 synthese_synchrone
10/60
Q1 Q2A 00 01 11 10
0 0 0 φ φ
1 0 1 φ φ
Q1 Q2A 00 01 11 10
0 φ φ 1 0
1 φ φ 1 0
Exemple 1Exemple 1--bisbis
J1= Q2 A K1 = Q2
Cours de logique séquentielle
Q1 Q2A 00 01 11 10
0 0 φ φ 11 1 φ φ 1
Q1 Q2A 00 01 11 10
0 φ 1 1 φ1 φ 0 0 φ
J2 =A+Q1 K2 = A
1 porte ET, 1 porte OU
-
8/18/2019 synthese_synchrone
11/60
Exemple 1: détecteur de 1 1 0Exemple 1: détecteur de 1 1 0
Refaire avec des bascules D A0 1 Y
00
0
Q1 Q2
0 00 1
1 1
00
00
00
0111
01
Cours de logique séquentielle
11 0Q1+ Q2+
=D1 D2
11 11
3 portes ET, 2 portes OU, 1 porte XOR
( ) QQAQQD21121 ⊕+=
D2 = A+Q1Q2
-
8/18/2019 synthese_synchrone
12/60
Exemple 2: Distributeur de bonbonsExemple 2: Distributeur de bonbons
Une machine de bonbons distribue un bonbon lorsque l’on introduit 15 sous danscelle-ci. La machine possède deux détecteurs de pièces, un pour les pièces de 5 sous(« P5 ») et un autre pour les pièces de 10 sous (« P10 »). La machine possède 2 sorties
D et R, la première actionne le distributeur de bonbon (« D ») et la deuxième assure larestitution des pièces lorsque le montant introduit est supérieur à 15 sous (« R »).
Le cahier des charges est le suivant :– On ne peut introduire que des pièces de 5 ou 10 sous.
Cours de logique séquentielle
– Deux pièces ne peuvent être introduites/détectées au même moment;
– Une pièce n’est détectée que pendant un seul cycle de l’horloge de la machine àétats. Entre deux pièces introduites successivement, le capteur retourne à l’état 0pendant au moins un cycle d’horloge.
La machine synthétisée sera une machine de Moore. La méthode de synthèse
sera la méthode du risque minimal.
-
8/18/2019 synthese_synchrone
13/60
Exemple 2: distributrice de bonbonsExemple 2: distributrice de bonbons
Etats Possibles (Que doit on se rappeler ?) : « raisonnement sur lespièces »
1: Initial : mise sous tension (pas de pièce) DR = 00
2: Pas Pièce : Pas de pièce détectée DR = 003: S_5 : Pièce de 5 détectée (Somme = 5 ) DR = 00
4: S_2*5 : 2 Pièces de 5 détectées (Somme = 10 ) DR = 00
Cours de logique séquentielle
6: S_10 : Pièce de 10 détectée (Somme = 10 ) DR = 00
7: S_2*10 : 2 Pièces de 10 détectées (Somme = 20 ) DR = 11
: _ : ces e tect es omme = =
8: S_15 : 1 Pièce de 10 et 1 de 5 détectées (Somme = 15) DR = 10
1 e t 2Etats : 4 et 6 fusionnables
5 e t 8Rq : les états fusionnables ont la même sortie
-
8/18/2019 synthese_synchrone
14/60
Exemple 2: distributrice de bonbonsExemple 2: distributrice de bonbons
Etats Possibles (Que doit on se rappeler ?) : « raisonnement sur lasomme »
1: Initial : mise sous tension (pas de pièce) DR = 00
2: Pas Pièce : Somme = 0 DR = 003: S_5 : Somme = 5 DR = 00
4: S_10 : Somme = 10 DR = 00
Cours de logique séquentielle
7: S_20 : Somme = 20 DR = 11
: _ : omme = =
Etats : 1 et 2 fusionnables
-
8/18/2019 synthese_synchrone
15/60
00
00
Exemple 2: distributrice de bonbonsExemple 2: distributrice de bonbons
Graphe des états :
PasPièce00 01
Format :Arc : entrées : P10,P5Nœud : état/sorties : DR
0000
Cours de logique séquentielle
S_500
10 01
10
S_2011
S_1510
0001
10
S_10
00
Les capteursrestent une période
à 0 après passaged’une pièce
-
8/18/2019 synthese_synchrone
16/60
00
00
Exemple 2: distributrice de bonbonsExemple 2: distributrice de bonbons
Graphe des états :
PasPièce00 01
Format :Arc : entrées : P10,P5Nœud : état/sorties : DR
0000
Cours de logique séquentielle
S_500
10 01
10
S_2011
S_1510
00 01
10
S_10
00
Le capteur excitérestent une période
à 0 après passaged’une pièce
01
10
10
R=1 donc0 10 R=1 donc0 5
Exercice : refaire avec une
machine de Mealy
-
8/18/2019 synthese_synchrone
17/60
La minimisation des états à pour objectif de réduire au minimum lenombre d’états (intéressant car diminue la taille du hardware)
Minimisation du nombre d’état :Minimisation du nombre d’état :
En règle générale une table des états créée à partir d’un cahier des chargesn’est pas minimale, alors il faut :
– Identifier les états équivalents (redondant) :
Cours de logique séquentielle
Remplacer tous les états équivalents par un seul état. Cette étape peut être très simple si le concepteur a fait attention lors de
l’écriture de la table des états !
Deux états sont équivalents si pour toute entrée Xk, les sorties sontidentiques et les états suivants respectifs sont eux-mêmeséquivalents ou égaux.
-
8/18/2019 synthese_synchrone
18/60
Minimisation du nombre d’états :Minimisation du nombre d’états :X
S 0 1 Y
A D B 0
B C D 1
C A B 1
1
S 0 1 Y
A D B 0
B C D 1
C A B 1
D C D 1
3
Table Primitive
B
B
Cours de logique séquentielle
S+S 0 1 Y
A D B 0
B C D 1C A B 1
D C D 1
S+
2
S+
S 0 1 Y
A B B 0
B C B 1
C A B 1
S+
4
Table Réduite
-
8/18/2019 synthese_synchrone
19/60
X
S 0 1 Y ZA D B 0 0
B C D 1 0
Minimisation du nombre d’état :Minimisation du nombre d’état :
?
Cours de logique séquentielle
D C D 1 1S+
-
8/18/2019 synthese_synchrone
20/60
Minimisation du nombre d’état :Minimisation du nombre d’état :X
S 0 1 Y
A B C 0
B C D 0C A B 1
D A E 1
S 0 1 Y
A B C 0
2B
Cours de logique séquentielle
S+
Table Primitivedes états
B C D 0C A B 1
D A B 1
S+
CS 0 1 Y
A B C 0
B C C 0C A B 1
S+
Table des états réduite
-
8/18/2019 synthese_synchrone
21/60
Procédure à suivre pour la synthèse d’uneProcédure à suivre pour la synthèse d’une
machine d’état synchronemachine d’état synchrone1. Construire le graphe et table des états à partir du cahier des charges
2. Minimiser le nombre d’états
3. Choisir les variables d’états et coder les états4. Construire la table de transition/sortie à partir de la table des états/sortie
5. Choisir le type de bascules (D, J-K, etc.)
Le plusdifficile
mais le plusintéressant
Cours de logique séquentielle
. ons ru re a a e exc a on es ascu es par r e a a e e
transition7. Déterminer les équations d’excitation des bascules à partir de la table
d’excitation
8. Déterminer l’équation du circuit combinatoire de sortie à partir de la
table d’excitation9. Etude des états hors cycle et modification
10. Elimination des aléas d’entrée et de sortie
Automatique
-
8/18/2019 synthese_synchrone
22/60
Etape nEtape n°°3 : Codage des états3 : Codage des états
Quel code binaire choisir pour chaque état ?
Exemple 1: Soit 3 états A, B, C (s = 3):
– Combien de bits sont nécessaires ?n >= log2(s) n >= 2
(Rq: parfois 2n est supérieur au nombre minimum requis s !)– Avec # bits d’état, uelle combinaison coda e d’état doit être utilisée our cha ue
Cours de logique séquentielle
état ?
Nom de Codage possible
l’état 1 2 3 4
A 00 01 01 10
B 01 11 00 00
C 10 10 11 01
⇒ 4 choix pour A, 3 choix pour B, 2 choix pour C
4 · 3 · 2 = 4!/1! = 24 possibilités !!!
-
8/18/2019 synthese_synchrone
23/60
Codage des étatsCodage des états Exemple 2: Soit 5 états : A, B, C, D, E et 3 bits de codage, Combien de
possibilité de codage sont offertes ?
8·7·6·5·4 = 8! / 3! = 6720Ou d’une manière générale,
2n ! : ( nombre de codes possibles)!
(2n - s)! : ( nombre de codes inutilisés)!
’
Cours de logique séquentielle
– ENORMES effets sur la complexité du circuit combinatoire d’entrée et desortie ET donc sur le coût du montage.
Comment trouver le meilleur codage ?
– La seule solution pour arriver au meilleur codage est de tous les essayer et dedéterminer à chaque fois les équations des CCE et CCS résultants.
LONG et PEU PRATIQUE !
− Sinon l’utilisation de règles empiriques qui permettent d’arriver à desrésultats relativement bon par rapport à l’investissement en temps.
-
8/18/2019 synthese_synchrone
24/60
Codage des états : Règles à suivreCodage des états : Règles à suivre
Dans l’ordre :
Choisir un code pour l’état initial qui soit facile à réaliser : (tout à 0 où 1)
Utiliser librement les 2n états pour obtenir le meilleur codage ( passeulement 0,1,…,s-1)
Définir des bits ou des combinaisons ayant des significations particulières
Cours de logique séquentielle
. ,
possible d’utiliser plus de variables d’états que nécessaire. Minimiser le nombre de variables d’état commutant à chaque changement
d’état :– Les états ayant même état futur pour une entrée donnée doivent être adjacents.
– Les états qui ont même antécédent doivent être adjacents.
-
8/18/2019 synthese_synchrone
25/60
Exemple 3 : Codage des étatsExemple 3 : Codage des états
Codages possibles ABQ1..Q4 Q1..Q5 Q1Q2Q3 Q1Q2Q3 S 00 01 11 10 Z
0000 00001 000 000 INIT A0 A0 A1 A1 0
0001 00010 100 001 A0 OK_A0 OK_A0 A1 A1 0
Codages possibles pourcoder 5 états
Exemple : Soit la table des états (5) suivante :
Cours de logique séquentielle
0010 00100 101 010 A1 A0 A0 OK_A1 OK_A1 00100 01000 110 011 OK_A0 OK_A0 OK_A0 OK_A1 A1 1
1000 10000 111 100 OK_A1 A0 OK_A0 OK_A1 OK_A1 1
Almost One Décomposé SimpleOne Hot
Hot
-
8/18/2019 synthese_synchrone
26/60
Exemple 3 : Codage des étatsExemple 3 : Codage des états
Binaire naturel– Le plus simple, PAS le meilleur car codage arbitraire sans
réflexion
Code Décomposé– Etat initial = ‘tout à 0’ pour un RESET facilement réalisable
– ’ =Q1Q2Q3
Q1Q2Q3INIT 0 0 0A0 0 0 1A1 0 1 0OK_A0 0 1 1OK_A1 1 0 0
Cours de logique séquentielle
, 1
autres codes ainsi D1=1– Z = 1 dans seulement 2 cas, aussi on utilise Q2 =1 pour les états ou
Z = 1 alors Z = Q2– On utilise Q3 = 1 pour les transitions qui ont pour cause A=1 (A1 et
OK_A1) ainsi D3=A
INIT 0 0 0A0 1 0 0A1 1 0 1OK_A0 1 1 0OK_A1 1 1 1
-
8/18/2019 synthese_synchrone
27/60
Exemple 3 : Codage des étatsExemple 3 : Codage des états
Codage ‘One Hot’– Utilisation d’autant de bit d’état que d’état (plus que le
minimum !)
– Facile à coder et le CCE est facile à réaliser en général
– Le CCS est réduit à sa plus simple expression si la sortie estvrai pour un seul état sinon une porte OU suffit.
Q1…..Q5INIT 0 0 0 0 1
A0 0 0 0 1 0A1 0 0 1 0 0OK_A 0 1 0 0 0OK_A1 1 0 0 0 0
Cours de logique séquentielle
Codage ‘Almost One Hot’– ‘Almost One Hot’ est le même codage que le ‘One Hot’, mais
avec un bit de codage en moins.
– Utilisation du code 000 pour le RESET
– Logique de décodage pour la transition vers l’état 000
Q1….Q4INIT 0 0 0 0A0 0 0 0 1A1 0 0 1 0OK_A 0 1 0 0OK_A1 1 0 0 0
Ces deux codes amènent souvent des aléas de fonctionnement (cycles pièges)Ces deux codes amènent souvent des aléas de fonctionnement (cycles pièges)
car de nombreux états sont inutiliséscar de nombreux états sont inutilisés
-
8/18/2019 synthese_synchrone
28/60
Codage des états indéfinisCodage des états indéfinisCompromis Risque/Coût du codageCompromis Risque/Coût du codage
Si des états sont non utilisés (le nombre d’états possibles 2n > s ), alorsdeux stratégies sont possibles :
– On considère que des perturbations peuvent amener la machine dans
Risque Minimum = plus sur = plus cher
Cours de logique séquentielle
. ,
suivants de ces états inutilisés sont placés arbitrairement commeétant l’état initial ou ‘idle’.
– On considère que la machine d’état ne peut jamais arriver dans ces
état indéfinis. Dans ce cas, les états suivants et la sortie de ces étatssont considérés comme étant indéfinis, ce qui permet de réduiresensiblement les équations de la machine d’état.
Coût Minimum = comporte des risques = moins cher
-
8/18/2019 synthese_synchrone
29/60
Codage des états indéfinisCodage des états indéfinis
Compromis Risque/Coût du codageCompromis Risque/Coût du codageX X
Q1Q0 S 0 1 Z Q1Q0 0 1 Z
00 A A B 0 00 00 01 001 B C B 0 01 10 01 010 C B A 1 10 01 00 1
Cours de logique séquentielle
S+
11 φφ φφ φQue faire de l’état 11 ?
11 00 00 0
Avec ROUGE = coût minimumVERT = risque minimum
-
8/18/2019 synthese_synchrone
30/60
Synthèse : Exemple 3Synthèse : Exemple 3 Cahier des charges (Détecteur de séquence)
– Synthèse d’une machine d’état avec 1 entrée et 1 sortie : A et Y.– Y doit passer à 1 lorsque la séquence d’entrée 1 1 0 ou 1 0 1 a été détectée pendant les
3 derniers fronts actifs d’horloge sinon Y = 0.– Les séquences d’entrée correctes se chevauchant sont acceptées
– Synthèse coût minimal
Interprétation du cahier des charges
Cours de logique séquentielle
A
CLK
Y
0 1 0 1 0 1 1 0 1 0 0 0
-
8/18/2019 synthese_synchrone
31/60
Synthèse Exemple : 3Synthèse Exemple : 3
Etats Possible (Que doit on se rappeler ?)– Idle : mise sous tension ou de 1 détecté Y = 0
– Got1 : Premier 1 détecté Y = 0– Got10 : Séquence A = 10 détectée sur 2 derniers fronts Y = 0
– Got101 : Séquence A = 101 détectée sur 3 derniers fronts Y = 1
–
Cours de logique séquentielle
– Got110 : Séquence A = 110 détectée sur 3 derniers fronts Y = 1
Got1 Got10
Got101
Got11
Got110
Got10
Got101
Got101
Got10
IdleIdle
A
CLK
Y
0 1 0 1 0 1 1 0 1 0 0 0
-
8/18/2019 synthese_synchrone
32/60
Synthèse : Exemple 3Synthèse : Exemple 3
SIdle
Got1
A
Idle
Got10
Got1
Got11
Y0
0
Séquences à repérer : 101 et 110
0 1
Cours de logique séquentielle
Got10Got101
Got11
Got110
IdleGot10
Got110
Idle
Got101Got11
Got11
Got101
01
0
1
S+
-
8/18/2019 synthese_synchrone
33/60
Synthèse : Exemple 3Synthèse : Exemple 3
Idle0
Got10
0 1
00
ResetGraphe des étatsGraphe des états
Cours de logique séquentielle
Got10
0
Got101
1
Got11
0
Got110
1
1
1
0
1
0
1
1
Format :Arc : entrée ANœud : état/sortie Y
-
8/18/2019 synthese_synchrone
34/60
Etape 2: Minimisation du nombre d’états Etape 3: Codage des états :
– Etat initial ‘tout à 0’– Q1 = Y
– Q3+ = A– Minimisation du nombre de commutation
SA
0 1 YQ1 Q2 Q3
Synthèse : Exemple 3Synthèse : Exemple 3
Cours de logique séquentielle
IDLE
Got1
Got10
Got101
Got11
Got110
IDLE
Got10
IDLE
Got10
Got110
IDLE
Got1
Got11
Got101
Got11
Got11
Got101
0
0
0
1
0
1
S+
0 0 0
0 0 1
0 1 0
1 1 1
0 1 1
1 1 0
-
8/18/2019 synthese_synchrone
35/60
Synthèse : Exemple 3Synthèse : Exemple 3
Etape 4: Table de Transition/sortie Etape 5: Choix du type de bascule D Etape 6: Table d’excitation
– Même que la table de Transition– Choix du coût minimum
A0
000
010
000
1
001
011
111
Y
0
0
0
Q1 Q2 Q3
0 0 0
0 0 1
0 1 0
Cours de logique séquentielle
110
000
011
111
0
1
Q1+ Q2+ Q3+
=D1 D2 D3
0 1 1
1 1 0
Etats indéfinis?
1 0 0
1 0 1 φφφφφφ
φφφφφφ
φ
φ
Y= Q1
-
8/18/2019 synthese_synchrone
36/60
Synthèse : Exemple 3 (coût minimal)Synthèse : Exemple 3 (coût minimal) Etape 7: CCE
– D1, D2, D3 = F (A, Q1, Q2, Q3)φ
1 1 φ
φ
1 φ
Q1 Q2Q3 A 00 01 11 10
00
01D1 :
11
10
AQQ AQQQ D323211
+=
3 portes ET, 2 portes OU
Cours de logique séquentielle
φ
1 1 1 φ1 1 1 φ
φ
Q1 Q2Q3 A 00 01 11 10
00
01
D3 :
11
10
φ
1 1 φ1 1 1 φ
1 1 1 φ
Q1 Q2Q3 A 00 01 11 10
00
01
D2 :
11
10
322 Q AQ D +=
A D =3
-
8/18/2019 synthese_synchrone
37/60
Synthèse : Exemple 3 (risque minimal)Synthèse : Exemple 3 (risque minimal)
Etape 7: CCE– D1, D2, D3 = F (A, Q1, Q2, Q3)
1 1
1
Q1 Q2Q3 A 00 01 11 10
00
01D1 :
11
10
AQQ AQQQ D323211
+=
5 portes ET, 4 portes OU
Cours de logique séquentielle
1 1 11 1 1
Q1 Q2Q3 A 00 01 11 10
00
01
D3 :
11
10
1 11 1 1
1 1 1
Q1 Q2Q3 A 00 01 11 10
00
01
D2 :
11
10
21322 QQQ AQ D ++=
( )213
QQ A D +=
Procéd re à s i re po r la s nthèse d’ neProcéd re à s i re po r la s nthèse d’ ne
-
8/18/2019 synthese_synchrone
38/60
Procédure à suivre pour la synthèse d’uneProcédure à suivre pour la synthèse d’une
machine d’état synchronemachine d’état synchrone1. Construire le graphe et table des états à partir du cahier des charges
2. Minimiser le nombre d’états
3. Choisir les variables d’états et coder les états4. Construire la table de transition/sortie à partir de la table des états/sortie
5. Choisir le type de bascules (D, J-K, etc.)
Le plusdifficile
mais le plusintéressant
Cours de logique séquentielle
. ons ru re a a e exc a on es ascu es par r e a a e e
transition7. Déterminer les équations d’excitation des bascules à partir de la table
d’excitation
8. Déterminer l’équation du circuit combinatoire de sortie à partir de la
table d’excitation9. Etude des états hors cycle et modification
10. Elimination des aléas d’entrée et de sortie
Automatique
-
8/18/2019 synthese_synchrone
39/60
On désire réaliser un séquenceur à 4 bits D,C,B,A, présentant le cycle suivant :DCBA = 0001, 0010, 0100, 1000, 0001, …...
Les bascules utilisées sont des bascules D synchrones actives sur front descendant. Laméthode de synthèse sera la méthode du coût minimal.
-a ] Établir le diagramme des états représentant cette machine.-b ] Établir la table des excitations correspondant à ce graphe.-c ] Donner les équations des excitations de chaque bascule (synthèse coût minimale).-d ] Dessiner le logigramme correspondant.
Exemple 4: Synthèse d’un chenillardExemple 4: Synthèse d’un chenillard
Cours de logique séquentielle
-e ] On cherche maintenant à savoir si il existe des cycles pièges et les corriger le caséchéant. Pour cela, écrire la table de transition complète (selon le modèle donné ci-dessous).-f ] Dessiner le graphe des états complets.
Nombre de bascules :4 Minimisation du circuit combinatoire de sortie
2 Minimisation du nombre de bascules(recodage de l’état par le CCS)
-
8/18/2019 synthese_synchrone
40/60
Exemple 4: Synthèse d’un séquenceurExemple 4: Synthèse d’un séquenceur
0001 0010
Graphe des états « nominal »S
00010010
0100
DD DC DB DA
Table des états
S+
00100100
1000
0 0 1 00 1 0 0
1 0 0 0
Minimisation du circuit combinatoire de sortie Codage ‘one hot’
Cours de logique séquentielle
01001000
1000 0001 0 0 0 1
Équations des excitations avec unesynthèse coût minimal
DD =Dc =DB =
DA
= QD
QA
QBQC
-
8/18/2019 synthese_synchrone
41/60
Exemple 4: Synthèse d’un séquenceurExemple 4: Synthèse d’un séquenceur
D Q D Q D Q D Q
A B C D
Logigramme :
Cours de logique séquentielle
DB = QA Dc = QB DD = QC
HQ Q Q Q
DA = QD
Exemple 4 : Synthèse d’un séquenceurExemple 4 : Synthèse d’un séquenceur
-
8/18/2019 synthese_synchrone
42/60
Exemple 4 : Synthèse d un séquenceurExemple 4 : Synthèse d un séquenceur
Cycle piège :
0001 0010
Cycle nominal :
xxxxyyyy
perturbation
Etats hors cycle nominal :Que se passe-t-il pour les états hors cycle :
Cours de logique séquentielle
• Modification des équations d’excitations afind’éliminer ce cycle• Utilisation des entrées de forçage
01001000
La machine reste bloquée dansce « cycle piège »
Exemple 4: Synthèse d’un séquenceurExemple 4: Synthèse d’un séquenceur
-
8/18/2019 synthese_synchrone
43/60
Exemple 4: Synthèse d’un séquenceurExemple 4: Synthèse d’un séquenceur
0
Graphe complet des états
S
0000
0001001000110100
Table complète des états
S+
00100100
1000
0000
0110
0
1234
0
2464
3 65
12
9
10Cycle piège n°3
Cycle piège n°1
Cours de logique séquentielle
01100111100010011010
10111100110111101111
0001
11001110
00110101
0111100110111101
1111
678910
1112131415
1214135
79111315
1 2
48
7 14
1311
15
Cycle nominalCycle piège n°2
Cycle piège n°4Cycle piège n°5
-
8/18/2019 synthese_synchrone
44/60
Exemple 4: Synthèse d’un séquenceurExemple 4: Synthèse d’un séquenceur
ABCDABCDAQQQQQQQQD +=
Modification des équations d’excitations : cycle 1
Rupture du cycle piége n°1 en modifiant DA=QD .
On veut DA
=1 pour état 0 et état 8 :
Cours de logique séquentielle
QQQDABCA
=
D’ou la nouvelle Table de transition :
Exemple 4: Synthèse d’un séquenceurExemple 4: Synthèse d’un séquenceur
-
8/18/2019 synthese_synchrone
45/60
Exemple 4: Synthèse d un séquenceurExemple 4: Synthèse d un séquenceur
S
0000
0001001000110100
Table complète des états
S+
00100100
1000
0001
0110
0
1234
1
2464
0
Graphe complet des états
3 65
12
149 11
10
Cours de logique séquentielle
01100111100010011010
10111100110111101111
0001
11001110
00100100
0110100010101100
1110
678910
1112131415
1214124
68101214
1 2
487
13
15Cycle nominal
Disparition des Cycles piège !!!!
-
8/18/2019 synthese_synchrone
46/60
E l 4 S hè d’ éE l 4 S hè d’ é
-
8/18/2019 synthese_synchrone
47/60
Exemple 4: Synthèse d’un séquenceurExemple 4: Synthèse d’un séquenceur
00 01
Graphe des étatsS
0001
11
DB DA
Table des états
S+
0111
10
0 11 1
1 0
Minimisation du nombre de bascules
Cours de logique séquentielle
1110
10 00 0 0
Équations des excitations
DB =DA =
QAQB
Pas d’état hors cycle nominal
E l 4 S thè d’ éE l 4 S thè d’ é
-
8/18/2019 synthese_synchrone
48/60
Exemple 4: Synthèse d’un séquenceurExemple 4: Synthèse d’un séquenceur
Reconstruction de la séquence par le CCS
S
Table de sortie
Minimisation du nombre de bascules
DCBA
Cours de logique séquentielle
0001
11
10
00010010
0100
1000
A B
=
A BQQC =
A BQQ B =
A BQQ A =
E l 4 S thè d’ éE l 4 S thè d’ é
-
8/18/2019 synthese_synchrone
49/60
Exemple 4: Synthèse d’un séquenceurExemple 4: Synthèse d’un séquenceur
1 A
B
D
C
Utilisation d’undémultiplexeur
Cours de logique séquentielle
D
H
Q
Q
D Q
QA B
E l 5 S thè d’ tE l 5 S thè d’ t
-
8/18/2019 synthese_synchrone
50/60
On désire faire la synthèse d’une machine synchrone (horloge : H) possédant
une entrée E et 4 sorties (Y0, Y1, Y2, Y3). Cette machine compte en BCD le
nombre de fronts actifs de l’horloge (front montant) lorsque l’entrée E est àun niveau haut sinon elle reste bloquée sur la dernière valeur comptée lorsque
l’entrée E est à un niveau bas. On utilisera des bascules D et la méthode du
Exemple 5: Synthèse d’un compteurExemple 5: Synthèse d’un compteur
Cours de logique séquentielle
coût minimal pour cette synthèse.
Construire le graphe des états de ce compteur :
Exemple 5 : Graphe des étatsExemple 5 : Graphe des états
-
8/18/2019 synthese_synchrone
51/60
Exemple 5 : Graphe des étatsExemple 5 : Graphe des états
S2
0 0 1 0
S0
0 0 0 0
S1
0 0 0 1
1
1
1
0
00Format : Arc : entrée ENœud : état/sortie Y3Y2Y1Y0
Reset
S9
1 0 0 1
0
1
Cours de logique séquentielle
S7
0 1 1 1 S6
0 1 1 0
S5
0 1 0 1
S4
0 1 0 0
S3
0 0 1 1
0 1 1
1
0 0
0
0
1
1S81 0 0 00
1
Graphe en anneauGraphe en anneau
Exemple 5 : Table des étatsExemple 5 : Table des états
-
8/18/2019 synthese_synchrone
52/60
Exemple 5 : Table des étatsExemple 5 : Table des états
S
S0
S1
S2
E
0 0 0 0
0 0 0 1
0 0 1 0
OUTY3 Y2 Y1 Y010
S0 S1
S1
S2
S2
S3
Cours de logique séquentielle
3
S4
S5
S6
S7
S8
S9
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
S+
3
S4
S5
S6
S7
4
S5
S6
S7
S8
S8
S9
S9
S0
E l 5 T bl d t itiE l 5 T bl d t iti
-
8/18/2019 synthese_synchrone
53/60
En utilisant ce tableau des états, écrire la table de transition/sortie en utilisant lecodage binaire naturel et la méthode du coût minimal. On utilisera un codaged’état comportant toutes les variables d’état à 0 lorsque aucun front n’a été
détecté. Quels sont les avantages de ce codage ?
Exemple 5 : Table de transitionExemple 5 : Table de transition
• Initialisation très simple
• Pas de CCS de 0 à 9 : binaire naturel = BCD
Cours de logique séquentielle
Nombre de bascules ?
10 états utiles 4 bascules 16 états codés
6 états hors cycle
Exemple 5 : Table de transitionExemple 5 : Table de transition
-
8/18/2019 synthese_synchrone
54/60
SS0S1S2S
3S4S5S
0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 0
Y3 Y2 Y1 Y0100 0 0 0 0 0 0 10 0 0 1
0 0 1 00 0 1 10 1 0 00 1 0 10 1 1 0
0 0 1 0
0 0 1 10 1 0 00 1 0 10 1 1 00 1 1 1
0 0 0 00 0 0 1
0 0 1 00 0 1 10 1 0 00 1 0 10 1 1 0
Q3Q2Q1Q0
Cours de logique séquentielle
S7S8
S9S10S
11S12S13S14
S15
0 1 1 11 0 0 01 0 0 1
0 1 1 1
1 0 0 0
1 0 0 01 0 0 1
1 0 0 10 0 0 0
0 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 0
1 1 1 1
φ φ φ φ
φ φ φ φ
φ φ φ φ
φ φ φ φ
φ φ φ φ
φ φ φ φ
φ φ φ φ
φ φ φ φ
φ φ φ φ
φ φ φ φ
φ φ φ φ
φ φ φ φ
φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ
Q3+Q2+ Q1+Q0+
} CodageCoût Minimal :φ
Exemple 5 : Équations d’évolutionExemple 5 : Équations d’évolution
-
8/18/2019 synthese_synchrone
55/60
Avec des bascules D : Q+ = D (table de transition = table d’évolution)
Exemple 5 : Équations d évolutionExemple 5 : Équations d évolution
D0 : Q1 Q0
Q3 Q2 00 01 11 10
00
01
Q1 Q0
Q3 Q2 00 01 11 10
00
01
Ε=0 Ε=1
0 1 01
1 01
1 0 10
Cours de logique séquentielle
φ
11
10 φ φ φ φ φ 11
10 φ φ φ φ φ φ
0 1 1 0
Q0 E Q0 E
D0 = +Q0 E Q0 E
Exemple 5 : Équations d’évolutionExemple 5 : Équations d’évolution
-
8/18/2019 synthese_synchrone
56/60
Avec des bascules D : Q+ = D (table de transition = table d’évolution)
Exemple 5 : Équations d évolutionExemple 5 : Équations d évolution
D1 : Q1 Q0
Q3 Q2 00 01 11 10
00
01
Q1 Q0
Q3 Q2 00 01 11 10
00
01
Ε=0 Ε=1
0 0 11
0 11
0 1 10
Cours de logique séquentielle
φ
11
10 φ φ φ φ φ 11
10 φ φ φ φ φ φ
0 0 0 0
Q1 E
Q1 Q0
Ou Q3 E (Q1 ⊕ Q0)D1= + +Q1 E Q3Q1 Q0 EQ1 Q0
Q3 Q1 Q0 E
Exemple 5 : Équations d’évolutionExemple 5 : Équations d’évolution
-
8/18/2019 synthese_synchrone
57/60
Avec des bascules D : Q+ = D (table de transition = table d’évolution)
Exemple 5 : Équations d évolutionExemple 5 : Équations d évolution
D2 : Q1 Q0
Q3 Q2 00 01 11 10
00
01
Q1 Q0
Q3 Q2 00 01 11 10
00
01
Ε=0 Ε=1
0 0 00
1 11
0 0 01
Cours de logique séquentielle
φ
11
10 φ φ φ φ φ 11
10 φ φ φ φ φ φ
0 0 0 0
Q2 E
Q2 Q0
D2 + +Q2 E Q2 Q0Q2 Q1
Q2 Q1
Exemple 5 : Équations d’évolutionExemple 5 : Équations d’évolution
-
8/18/2019 synthese_synchrone
58/60
Avec des bascules D : Q+ = D (table de transition = table d’évolution)
Exemple 5 : Équations d évolutionExemple 5 : Équations d évolution
D3 : Q1 Q0
Q3 Q2 00 01 11 10
00
01
Q1 Q0
Q3 Q2 00 01 11 10
00
01
Ε=0 Ε=1
0 0 00
0 00
0 0 00
E
Cours de logique séquentielle
φ
11
10 φ φ φ φ φ 11
10 φ φ φ φ φ φ
1 1 1 0
Q3 E Q0 Q3
D3 = + +Q3 E Q0 Q3 EQ2Q1Q0
Exemple 5 : Étude des états hors cycleExemple 5 : Étude des états hors cycle
-
8/18/2019 synthese_synchrone
59/60
0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 0
Y3 Y2 Y1 Y0100 0 0 0 0 0 0 10 0 0 1
0 0 1 00 0 1 10 1 0 00 1 0 10 1 1 0
0 0 1 0
0 0 1 10 1 0 00 1 0 10 1 1 00 1 1 1
0 0 0 00 0 0 1
0 0 1 00 0 1 10 1 0 00 1 0 10 1 1 0
Q3Q2Q1Q0
Détermination des étatssuivants pour les états horscycle si existence de cycle
piège
Cours de logique séquentielle
0 1 1 11 0 0 01 0 0 1
0 1 1 1
1 0 0 0
1 0 0 01 0 0 1
1 0 0 10 0 0 0
0 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1
1 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1
1 0 1 10 0 0 01 1 0 10 1 0 01 1 1 11 0 0 0
Q3+Q2+ Q1+Q0+
Q3Q1 Q0 E
Q3+ = + +Q3 E Q0 Q3 EQ2Q1Q0
Q2+= + +Q2 E Q2 Q0Q2 Q1
Q1+ = + +Q1 E Q1 Q0
Q0+ = +Q0 E Q0 E
φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ φ
Exemple 5 : Graphe des étatsExemple 5 : Graphe des étatsA é0
-
8/18/2019 synthese_synchrone
60/60
S2
0 0 1 0
S0
0 0 0 0
S1
0 0 0 1
1
1
1
0
00
Format : Arc : entrée E
Nœud : état/sortie Y3Y2Y1Y0Reset
S9
1 0 0 1
0
1
S10
0 S11
0
1 1
S12
0
S14
0
0
Cours de logique séquentielle
S7
0 1 1 1 S6
0 1 1 0
S5
0 1 0 1
S4
0 1 0 0
S3
0 0 1 1
0 1 1
1
0 0
0
0
1
1S
81 0 0 00
1
S13
01
1
S15