Les circuits séquentiels L ’additionneur 4 bits Analyse des périodes d ’activités Les automates La synthèse des automates
Objectif Nous allons découvrir comment synthétiser une fonction à partir d ’un circuit séquentiel. .
L’additionneur 1 bit rs Additionneur s a b re
L’additionneur 4 bits à propagation Nous allons analyser les séquences d ’activités des additionneurs 1 bit en fonction du temps. bo ao b1 a1 b2 a2 b3 a3 r0 r1 r2 r-1 r-1 r3 1 Bit 1 Bit 1 Bit 1 Bit so s1 s2 s3
L’additionneur 4 bits à propagation Intervalle 0-2 bo ao b1 a1 b2 a2 b3 a3 r0 r1 r2 r-1 r-1 r3 1 Bit 1 Bit 1 Bit 1 Bit so s1 s2 s3 Actif inactif inactif inactif
L’additionneur 4 bits à propagation Intervalle 2-4 bo ao b1 a1 b2 a2 b3 a3 r0 r1 r2 r-1 r-1 r3 1 Bit 1 Bit 1 Bit 1 Bit so s1 s2 s3 Inactif actif inactif inactif
L’additionneur 4 bits à propagation Intervalle 4-6 bo ao b1 a1 b2 a2 b3 a3 r0 r1 r2 r-1 r-1 r3 1 Bit 1 Bit 1 Bit 1 Bit so s1 s2 s3 Inactif inactif actif inactif
L’additionneur 4 bits à propagation Intervalle 6-8 bo ao b1 a1 b2 a2 b3 a3 r0 r1 r2 r-1 r-1 r3 1 Bit 1 Bit 1 Bit 1 Bit so s1 s2 s3 Inactif inactif inactif actif
L’additionneur Si a chaque intervalle de temps un seul additionneur est actif, il doit être possible de réaliser un circuit avec une seul additionneur. 1 Bit r-1 Nous allons tenter de voir comment réaliser ce circuit.
L’additionneur Analysons le fonctionnement en fonction des intervalles de temps. 1 Bit r-1 b3 a3 bo ao b1 a1 b2 a2 r0 r1 r2 r3 r-1 1 Bit r-1 1 Bit 1 Bit 1 Bit s3 so s1 s2
L’additionneur t0 a0 b0 r-1 t0 r-1 1 Bit b3 a3 bo ao b1 a1 b2 a2 r3 s3 so s1 s2
L’additionneur t0 a0 b0 r-1 t1 s0 r0 t0 t1 r-1 1 Bit b3 a3 bo ao b1 a1 so s1 s2 t1
L’additionneur t1 a1 b1 r0 s0 r0 t0 t1 r-1 1 Bit b3 a3 bo ao b1 a1 b2 so s1 s2 t1
L’additionneur t1 a1 b1 r0 s0 r0 t0 t1 La retenue doit être disponible en entrée. t1 a1 b1 r0 s0 r0 1 Bit r-1 b3 a3 bo ao b1 a1 b2 a2 r0 r1 r2 r3 r-1 1 Bit r-1 1 Bit 1 Bit 1 Bit t0 s3 so s1 s2 t1
L’additionneur t1 a1 b1 r0 t2 s1 r1 t0 t1 t2 r-1 1 Bit b3 a3 bo ao b1 so s1 s2 t1 t2
L’additionneur t2 a2 b2 r1 s1 r1 t0 t1 t2 r-1 1 Bit b3 a3 bo ao b1 a1 so s1 s2 t1 t2
L’additionneur t2 a2 b2 r1 s1 r1 t0 t1 t2 r-1 1 Bit b3 a3 bo ao b1 a1 so s1 s2 t1 t2
L’additionneur t2 a2 b2 r1 t3 s2 r2 t0 t1 t2 t3 r-1 1 Bit b3 a3 bo ao so s1 s2 t1 t2 t3
L’additionneur t3 a3 b3 s2 r2 r2 L ’utilisation ici d ’un registre permet de mémoriser la retenue t-1 . t3 a3 b3 r2 s2 r2 1 Bit r-1 Mémoire Horloge
L’additionneur Réalisation d ’un additionneur à partir d ’un circuit séquentiel. 1 Bit r-1 Mémoire Horloge
Les circuits séquentiels Un circuit séquentiel est un circuit dont les sorties dépendant des entrées et de l ’état du système. Etat : ce qu’il faut mémoriser de l’histoire du passé, c-a-d jusqu’à l’instant t+1, pour pouvoir déterminer les sorties présentes S(t).
Les automates d’états finis e(ti) s(ti+1) Logique combinatoire r-1 q(ti) q(ti+1) état de l’automate Horloge
Les automates d’états finis e(ti) s(ti+1) Logique combinatoire r-1 q(ti) Automate d’états finis q(ti+1) état de l’automate Horloge
Les automates d ’états finis Un automate est un être mathématique dont la réponse à un stimulus extérieur dépend de ce stimulus et de l ’état interne de l ’automate. Un automate fini a un nombre fini d ’états internes. Les stimulus sont susceptibles de faire passer l ’automate d ’un état à un autre état. L ’automate est entièrement déterminé par la donnée de ses fonctions de transition qui fournissent le nouvel état et la réponse en fonction de l ’ancien état et du stimuli.
Synthèse d’un circuit séquentiel Pour réaliser la synthèse d’un circuit séquentiel il faut : 1 déterminer le graphe des états (diagramme de transitions) ; 2 déterminer le nombre de bascules ; 3 construire la table d’états ; 4 réaliser les circuits combinatoires associés aux entrées des bascules et aux sorties
Synthèse d’un additionneur Nous allons tenter de réaliser la synthèse d ’un additionneur à l ’aide d ’un circuit séquentiel. Vue externe Additionneur
Diagramme de transition : graphe d’état État : ce qu’il faut mémoriser de l’histoire du passé, c-a-d jusqu’à l’instant t+1, pour pouvoir déterminer les sorties présentes S(t) Dans notre exemple , il y a deux états internes : Etat1 = Retenue ; Etat2 = Pasretenue. Etat Etats Etat Additionneur
Synthèse d’un additionneur (graphe d’état) Après avoir défini les états, il faut compléter le graphe par les transitions du systèmes. Entrées/sortie Une fonction de transition définit l ’évolution d ’un automate sous l ’effet d ’un stimulus externe. Etat Transition Etats Etat Additionneur Représentation Mealey :
Synthèse d’un additionneur (graphe d’état) 01/1 Voici le graphe de transition complet de l ’additionneur. Nous allons vérifier son comportement à partir d ’un certains nombres de stimulus d ’entrées. 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (graphe d’état) 01/1 t+5 1 t+4 0+1 1 t+3 1+0 1 t+2 0+0 0 t+1 0+1 0 t 1+1 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (graphe d’état) 01/1 t+5 1 t+4 0+1 1 t+3 1+0 1 t+2 0+0 0 t+1 0+1 0 t 1+1 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (graphe d’état) 01/1 t+5 1 t+4 0+1 1 t+3 1+0 1 t+2 0+0 0 t+1 0+1 0 t 1+1 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (graphe d’état) 01/1 t+5 1 t+4 0+1 1 t+3 1+0 1 t+2 0+0 0 t+1 0+1 0 t 1+1 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (graphe d’état) 01/1 t+5 1 t+4 0+1 1 t+3 1+0 1 t+2 0+0 0 t+1 0+1 0 t 1+1 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (graphe d’état) 01/1 t+5 1 t+4 0+1 1 t+3 1+0 1 t+2 0+0 0 t+1 0+1 0 t 1+1 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (graphe d’état) 01/1 t+5 1 t+4 0+1 1 t+3 1+0 1 t+2 0+0 0 t+1 0+1 0 t 1+1 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (graphe d’état) 01/1 t+5 1 t+4 0+1 1 t+3 1+0 1 t+2 0+0 0 t+1 0+1 0 t 1+1 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (graphe d’état) 01/1 t+5 1 t+4 0+1 1 t+3 1+0 1 t+2 0+0 0 t+1 0+1 0 t 1+1 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (graphe d’état) 01/1 t+5 1 t+4 0+1 1 t+3 1+0 1 t+2 0+0 0 t+1 0+1 0 t 1+1 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (graphe d’état) 01/1 t+5 1 t+4 0+1 1 t+3 1+0 1 t+2 0+0 0 t+1 0+1 0 t 1+1 00/0 10/1 Aucune retenue 00/1 11/0 une retenue Additionneur 11/1 01/0 10/0
Synthèse d’un additionneur (table des états) 01/1 J’ai vérifié sur un jeu d’entrées non exhaustif que le graphe semble bien correspondre au comportement attendu de mon système. La construction du graphe est l ’étape la plus délicate. 00/0 10/1 Aucune retenue 00/1 11/0 une retenue 11/1 01/0 10/0
Représentation sous forme de table Pour synthétiser mon circuit, on représente ce graphe par une table des états. 01/1 00/0 10/1 a b EPresent s EFutur 0 0 AR 0 AR 0 0 UR 1 AR 0 1 AR 1 AR 0 1 UR 0 UR 1 0 AR 1 AR 1 0 UR 0 UR 1 1 AR 0 UR 1 1 UR 1 UR AR 00/1 11/0 UR 11/1 01/0 10/0
Codage des états 01/1 Codage des états Nombre de bascules 00/0 10/1 Il y a deux états : Etat aucune retenue est codé 0 Etat une retenue est codé 1 Le nombre de bascules est donnée par : 2nbB>= nb Etats nb B=1 00/1 11/0 1 11/1 01/0 10/0
La table des états On remplace le nom de l ’état par son code. 01/1 00/0 10/1 a b EPresent s EFutur 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 00/1 11/0 1 A partir de cette table il est facile de déterminer les fonctions logique donnant la sortie et l ’état. 11/1 01/0 10/0
Synthèse d’un additionneur (schéma) Les équations sont réalisées à l ’aide de circuits combinatoires. s a b rs D État à mémoriser
Synthèse d’un additionneur (schéma) Logique combinatoire b rs D Registres d’etats
Remarques : Mealey/Moore 00 01/1 00/0 10/1 UR S=0 AR AR S=0 00 00 00/1 11/0 AR S=1 UR S=1 UR 00 11/1 01/0