nalyse de circuits synchrones ircuits Logiques L1300 Optimisation des circuits séquentiels (machines à états) P avid Pour partir d un circuit et déterminer le diagramme d état d un circuit, il faut effectuer les opérations inverses de la synthèse : 1. Schéma 2. xpressions des sorties 3. xpressions des entrées des bascules 4. Tableau de transition 5. Tableau d état 6. iagramme d état 26 mars 2013 ircuits logiques - P avid 2 essinez le meilleur circuit Le verrouillage d états q1 q0 x q1+ q0+ out 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 Lors du démarrage d un circuit, si les bascules d une machine à états ne sont pas initialisées grâce à une mise à 1 (preset) ou une mise à 0 (reset), les bascules s initialisent dans un état inconnu. Il est alors possible que la machine à état démarre avec un code invalide et qu elle demeure dans un état invalide. On a alors un verrouillage d états (deadlock). Pour éviter ce problème : Solution 1 : S assurer que toutes les bascules d un circuit soient initialisées à une valeur précise lors du démarrage du circuit Solution 2 (complémentaire) : Ne pas laisser d état non défini 26 mars 2013 ircuits logiques - P avid 3 26 mars 2013 ircuits logiques - P avid 4
s redondants Il arrive parfois que plusieurs états d une machine à états soient identiques même s ils ont des codes différents. eux états sont identiques lorsque : Ils ont les mêmes valeurs de sorties et ils ont les mêmes valeurs d états suivants, et cela peu importe la valeur des entrées. Il est souvent favorable d éliminer les états redondants. Réduire le nombre d états peu réduire le nombre de bascules nécessaires pour mémoriser l état et il est possible que cela réduise la quantité de logique. Technique de réduction d états 1. onstruire une table qui contient une cellule pour chaque paire d états possible. q 2 q 3. q n-2 q n-1 q n q 1 q 2 q 3... q n-2 q n-1 26 mars 2013 ircuits logiques - P avid 5 26 mars 2013 ircuits logiques - P avid 6 Réduction d états (suite) 2. Remplir le tableau comme suit pour toutes les cellules correspondant à des paires d états: Si les deux états de la paire ont des sorties différentes où ont des états ou sorties avec des cas facultatifs non alignés, placer un dans la case Sinon, placer les états suivants pour la paire dans le format suivant : ( suivant pour le premier état de la paire, suivant pour le deuxième état de la paire). S il y a plusieurs états suivants en fonction de l entrée, indiquer toutes les combinaisons possibles. xclure les paires identiques (ex : (,)) et les paires correspondants à la cellule e. S il n a rien dans la cellule, y placer un crochet 26 mars 2013 ircuits logiques - P avid 7 xemple : Réduction d états (suite) suivant I = 0 I = 1 Z 1 1 0 1 0 0 0 Étapes 1 et 2 (,) (,) 26 mars 2013 ircuits logiques - P avid 8 (,) (,) (,) (,) (,) (,) (,) (,) (,)
Réduction d états (suite) pplication à l exemple 3. Pour toutes les cellules qui n ont pas un crochet ou un, prendre chaque paire d état énumérée dans la cellule à l étape 2 et examiner le contenu des cellules correspondant à ces paires. Si l une d elle comprend un, placer un dans la cellule e. Répéter l étape 3 jusqu à ce que la table ne change plus Toutes les cellules qui n ont pas un lorsque ces étapes sont terminées représentent des paires d états équivalents (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) 26 mars 2013 ircuits logiques - P avid 9 26 mars 2013 ircuits logiques - P avid 10 pplication à l exemple (suite) pplication à l exemple (suite) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) (,) La table ne change plus, nous avons la table finale : On peut alors faire des groupes d états : ()()()() À partir de ces groupes, il est possible de créer un nouveau tableau d état : 26 mars 2013 ircuits logiques - P avid 11 26 mars 2013 ircuits logiques - P avid 12
pplication à l exemple (suite) xemple avec cas facultatif Table originale suivant I = 0 I = 1 Z 1 1 0 1 0 0 0 Table modifiée () () Y () Z () W suivant I = 0 I = 1 Z Y Z 1 Y W 1 Z W Z 0 W Z 0 suivant (z) ntrée (x 1 x 0 ) ntrée (x 1 x 0 ) 00 01 10 11 00 01 10 11-0 - - - - - 1 - - - - - - 0 - - - 1 - - - - - - - 0-0 - - - - - - - - 0 - - - 1-26 mars 2013 ircuits logiques - P avid 13 26 mars 2013 ircuits logiques - P avid 14 xemple (suite) (,) (,) (,) (,) Permet de déterminer que : 26 mars 2013 ircuits logiques - P avid 15 xemple (suite) suivant (z) ntrée (x 1 x 0 ) ntrée (x 1 x 0 ) 00 01 10 11 00 01 10 11-0 - - - - - 1 - - - - - - 0 - - - - - - 0-0 - - - - - - 1-26 mars 2013 ircuits logiques - P avid 16
usion d états facultatifs usion d états facultatifs (suite) ette étape consiste à fusionner plusieurs lignes. Pour aider à savoir comment fusionner de façon optimale, une diagramme de fusion permet de représenter graphiquement tous les états pouvant être fusionnés. eux états peuvent être fusionnés si on peut faire un nouvel état qui donne le même résultat en fonction de l entrée, en considérant les cas facultatifs. 26 mars 2013 ircuits logiques - P avid 17 26 mars 2013 ircuits logiques - P avid 18 usion d états facultatifs (suite) On retient une des solutions : suivant (z) ntrée (x 1 x 0 ) ntrée (x 1 x 0 ) 00 01 10 11 00 01 10 11 = 0 1-0 - - - - 0 - - 0 - - - - - - 1-26 mars 2013 ircuits logiques - P avid 19 usions conditionnelles Parfois, deux états ne peuvent être fusionnés que conditionnellement à ce que d autres états soient également fusionnés. est plus compliqué, mais ça peut également donner de meilleurs résultats! Voici donc un troisième exemple : 1. On fait comme l élimination d états suivant (z) redondants, sauf que l on considère les cas facultatifs ntrée ntrée 0 1 0 1 0 - - 0 - - 0-1 - (,) - - 1 26 mars 2013 ircuits logiques - P avid 20 (,) (,)
usions conditionnelles (suite) 2. On fait un diagramme de fusion : si une case contient un crochet on fait une ligne pleine, si il y a une paire d état on fait un ligne pointillée usions conditionnelles (suite) 3. On solutionne le diagramme de fusion. On peut utiliser une ligne pointillé ONITIONNLLMNT à ce que la paire d états associé à cette ligne pointillée soit fusionnée. (,) (,) (,) (,) (,) (,) (,) suivant (z) ntrée ntrée 0 1 0 1 = β 0 0 = β 1 1 26 mars 2013 ircuits logiques - P avid 21 26 mars 2013 ircuits logiques - P avid 22 ivone #7.6 #7.7 #7.15 #7.16 RÉPONSS : Problèmes suggérés #7.18 #7.19b #7.20b #7.6 : aucun «1» observé : un seul «1» observé : séquence de deux «1» observée : séquence de trois «1» observée : séquence de plus de trois «1» observée suivant z présent 0 0 1 0 0 0 1 0 0 0 26 mars 2013 ircuits logiques - P avid 23 Problèmes suggérés (suite) #7.7 : attente d un «0» : un seul «0» observé : plus d un «0» observés : chaîne de «1» suivant un «0» #7.15 Les états expriment les trois derniers bits observés (du moins récent au plus récent) : «0 0 0» : «0 0 1» : «0 1 0» : «0 1 1» : «1 0 0» : «1 0 1» : «1 1 0» : «1 1 1» suivant z présent 0 0 0 1 0 0 0 1 suivant z présent 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 26 mars 2013 ircuits logiques - P avid 24
Problèmes suggérés (suite) Problèmes suggérés (suite) #7.16 Les états expriment les trois derniers bits observés (du moins récent au plus récent) : «0 0 0» : «0 0 1» : «0 1 0» : «0 1 1» : «1 0 0» : «1 0 1» : «1 1 0» : «1 1 1» Les équivalences suivantes sont observées : présent suivant z #7.19 b) 2 = Q K = x Q = x K = x + Q 2 1 z = xq + xq #7.18 Les équivalences suivantes sont observées : présent suivant z x = 0 x = 1 ( ) ( ) β ( ) γ ( ) δ β δ γ γ 1 0 1 0 ( ) β 0 1 ( ) β γ δ 0 0 ( ) γ β 0 0 ( ) δ γ δ 1 0 26 mars 2013 ircuits logiques - P avid 25 #7.20 b) L assignation des codes est : = 00 = 11 = 10 = 01 1 2 = Q K = 1 = x K = x + Q 2 1 z = xq + xq 26 mars 2013 ircuits logiques - P avid 26