Arhitetures logiielles et matérielles Cours 3 : Ciruits séquentiels Automates Laurene Pierre - Philippe Waille http://users-tima.imag.fr/amfors/lpierre/alm/ L3 Informatique 26-27 Ciruits séquentiels Rappel : un iruit ombinatoire représente une fontion booléenne en négligeant le temps de propagation, fournit un résultat au temps t en fontion d'entrées stables au temps t n'a pas de faulté de mémorisation d'un état pour adapter son omportement mais une telle faulté est souvent indispensable Exemple : distributeur de boissons simplifié est en attente d'une insertion de pièes de monnaie dès que l'insertion de pièes ommene, ompte la somme fournie lorsque la somme néessaire a été fournie, donne la possibilité de séletionner la boisson lorsque la séletion est faite, délivre la boisson 5
Ciruits séquentiels Rappel : un iruit ombinatoire représente une fontion booléenne en négligeant le temps de propagation, fournit un résultat au temps t en fontion d'entrées stables au temps t n'a pas de faulté de mémorisation d'un état pour adapter son omportement Etat d'attente mais une telle faulté est souvent indispensable Exemple : distributeur de boissons simplifié Etat de omptage est en attente d'une insertion de pièes de monnaie dès que l'insertion de pièes ommene, ompte la somme fournie lorsque la somme néessaire a été fournie, donne la possibilité de séletionner la boisson Etat de séletion lorsque la séletion est faite, délivre la boisson 52 Ciruits séquentiels Pour réaliser un tel omportement, nous avons reours à des iruits séquentiels : leur omportement et leur résultat à un temps t dépendent des stimuli exerés à e temps t, mais aussi de l'état ourant du système (lui-même obtenu selon la suite de stimuli exerés, à partir d'un état ial) généralement synhrones : l'évolution du système est adenée par un signal périodique, le signal d'horloge, qui induit une disrétisation du temps (ou bien onçus en logique asynhrone, que nous n'étudierons pas ii) Comment onçoit-on et synthétise-t-on es iruits? 53
Coneption des iruits séquentiels Leur oneption néessite de spéifier le omportement souhaité : le modèle ouramment utilisé est elui d'un automate (ou FSM, Fe State Mahine, mahine à états finis) Déf l'évolution du système selon des états (symboliques) possibles, et des transitions entre es états transformer ette spéifiation (synthétiser) en un iruit séquentiel synhrone Outre les portes logiques, d'autres omposants spéifiques permettront de mémoriser l'état du système Nous allons voir la spéifiation sous forme de mahines de Moore et de Mealy la méthode de synthèse 54 Spéifiation par automate Exemple : distributeur de boissons rudimentaire, seule boisson possible (à.5 ), n'aepte que des pièes de et.5 (une à la fois) 5ents( 5 s/d ent elive eu Reçu euro( r= De ro / Reçu5 liver = not 5ents. not euro / Deliver = 5ents / Deliver = not 5ents. not euro / Deliver = euro / Deliv er = 5ents / Del Reçu iver = euro / Deliver = Deliver( not 5ents. not euro / Deliver = (ii on prévoira aussi un rendu de monnaie) 55
Mahine de Mealy L'automate de l'exemple préédent est une Mahine de Mealy : la valeur ourante de ses sorties dépend de l'état ourant ET de la valeur ourante de ses entrées Mahine de Mealy : (Q, I, O, t, f, q) Q : ensemble d'états (symboliques) { Reçu, Reçu5, Reçu } I : ensemble des valeurs possibles des entrées O : ensemble des valeurs possibles des sorties t : fontion de transition t : Q x I Q f : fontion de sortie f : Q x I O q : état ial 5e nts / er = Deliv eu Reçu ro Reçu5 er = liv / De Reçu 5ents / Deliver = not 5ents. not euro / Deliver = euro / Deliver = er = 56 {, } not 5ents. not euro / Deliver = 5ents / Deliv {, } 2 Reçu not 5ents. not euro / Deliver = euro / Deliver = Mahine de Moore La spéifiation du omportement d'un iruit séquentiel peut aussi se faire sous la forme d'une Mahine de Moore : la valeur ourante des sorties dépend uniquement de l'état ourant Mahine de Moore : (Q, I, O, t, f, q) Q : ensemble d'états (symboliques) I : ensemble des valeurs possibles des entrées O : ensemble des valeurs possibles des sorties t : fontion de transition t : Q x I Q f : fontion de sortie f : Q O q : état ial 57
Mahine de Moore Exemple : ompteur 2 bits ave une entrée de ontrôle ompte si vaut garde la valeur ourante si vaut SS = SS = SS = SS = Mahine de Moore : Q = {,,, } I = {, } O = {, }2 q = 58 Une telle spéifiation sous forme d'automate pourra être transformée en un iruit séquentiel synhrone Les fontions de transition (t) et de sortie (f) vont être traduites en fontions booléennes (blos ombinatoires) permettant de aluler l'état suivant et les valeurs des sorties L'état sera mis à jour sur les fronts (généralement) montants de l'horloge. On prévoira de plus un signal de reset. Comment se traduit la mémorisation de l'état du système? Par des omposants de mémorisation (basules), voir prohain ours Mais omment produire des fontions booléennes alors que les états sont symboliques (ex.,,, )? Il faut déider d'un odage (numérique) de l'état 59
Mahine de Mealy : elle va donner naissane à un iruit qui a la struture suivante f Blos ombinatoires t Eléments de mémorisation http://www.groupes.polymtl.a/iruits-logiques/help/chapitre6.htm 6 Mahine de Moore: elle va donner naissane à un iruit qui a la struture suivante f Blos ombinatoires t Eléments de mémorisation http://www.groupes.polymtl.a/iruits-logiques/help/chapitre6.htm 6
Il reste à déterminer les fontions des deux blos ombinatoires : alul des sorties (f), et alul de l'état futur (t) Prinipe : Etape : à partir de l'automate, onstrution des tables de vérité de f et de t Etape 2 : hoix d'un odage pour l'état (en partiulier, il détermine le nombre de bits de mémorisation qui seront néessaires) Etape 3 : à partir des tables de vérité dans lesquelles l'état symbolique a été remplaé par son odage, dérivation des expressions algébriques assoiées à f et à t (voir ours 2) 62 Exemple : ompteur 2 bits SS = SS = SS = SS = q q' Etat q S S 63
Exemple : ompteur 2 bits Selon un odage binaire lassique, on prend =, =, =, et = (2 bits pour oder 4 valeurs possibles) q q S S q q q' q' S = not(q).q + q.q = q S = q.not(q) + q.q = q q' = not().not(q).q + not().q.q +.not(q).not(q) +.q.not(q) = not().q +.not(q) q' = not().q.not(q) + not().q.q +.not(q).q +.q.not(q) = not().q +.(q xor q) 64 Exemple : ompteur 2 bits S = q S = q f q' = not().q +.not(q) q' = not().q +.(q xor q) t q q 65
Exemple 2 : version Mealy de e ompteur 2 bits (sorties affetées dès réeption de l'entrée) / / / / / / / q S S q q' /? 66 Exemple 2 : version Mealy de e ompteur 2 bits Toujours ave le même odage, nous obtenons : q q S S q q q' q' Soit les mêmes équations pour l'état. Pour les sorties : S = not().not(q).q + not().q.q +.not(q).not(q) +.q.not(q) = not().q +.not(q) S = not().q.not(q) + not().q.q +.not(q).q +.q.not(q) = not().q +.(q xor q) 68
Exemple 2 : version Mealy de e ompteur 2 bits S = not().q +.not(q) S = not().q +.(q xor q) f q' = not().q +.not(q) q' = not().q +.(q xor q) t q q 69 Synhronisme? Attention : les sorties d'une mahine de Moore sont disponibles sur (juste après) les fronts d'horloge, une telle synhronisation peut ne pas exister pour une mahine de Mealy Exemple : hronogrammes pour nos 2 versions 2 3 7 2 3 3
Codage de l'état ( ) Trois odages sont ouramment utilisés Le odage binaire lassique, pour lequel log 2 (nb_états) bits de mémorisation suffisent Le odage de Gray, qui néessite aussi log 2 (nb_états) bits de mémorisation Le odage "one hot", qui néessite nb_états bits de mémorisation Déimal Binaire Gray One hot 2 3 4 5 6 7 7