Alexandre Parodi Novembre 2008 MACHINE DE MOORE SYNCHRONE
© Alexandre Parodi – Novembre 2008 MACHINE DE MOORE SYNCHRONE SIMPLIFIÉE Alexandre Parodi, Professeur à l'UHP / ESIAL alexandre. parodi@esial. uhp-nancy. fr voir l'animation: Diaporama / Visualiser. . . avancer: Barre d'espace ou clic souris reculer: p
© Alexandre Parodi – Novembre 2008 La machine de Moore est un opérateur séquentiel synchrone Séquentiel: sa sortie courante dépend de l’histoire passée des entrées et non pas seulement de l’entrée courante. Elle a donc de la mémoire. Machine à états : l’histoire passée des entrées est représentée par un état interne dont dépend la sortie. Le nouvel état ne dépend donc que de l’état courant mémorisé et de l’entrée courante par une fonction de transition f Synchrone: le changement d’état est synchronisé avec un coup d’horloge (front montant du signal d’horloge k) k état f (état , entrée) Pour simplifier: la sortie est ici égale au code de cet état interne sortie = état DÉFINITION
© Alexandre Parodi – Novembre 2008 La machine de Moore est donc un cas particulier d’automate à états finis « Finite State Machine » FSM Finis: le nombre d’états possibles est fini. • Automate de vérification syntaxique (cf. Maths discrètes) seuls les états terminaux peuvent avoir une valeur de sortie TRUE ou FALSE • Machine de Moore usuelle: la sortie est calculée à partir de l’état courant par une fonction g de sortie: sortie = g(état) ici g = fonction identité • Machine de Mealy: la sortie dépend directement de l’état courant et aussi directement de l’entrée courante: sortie = g(état, entrée) AUTRES AUTOMATES
© Alexandre Parodi – Novembre 2008 données synchronisation commandes sortie = état INTERFACE
© Alexandre Parodi – Novembre 2008 Opérateur combinatoire Bascule D (D Flip-Flop): enregistre son entrée D à chaque front montant de k et l’envoie en sortie Q Broches d’entrée RLE: calcule le nouvel état s en fonction de: • état courant Q ; • entrées X : - données , - commandes. f fonction de transition f s = f (Q, X) Mémorise l’état courant; enregistre le nouvel état s au coup d ’horloge k au coup d’horloge k l’état Q prend la valeur du nouvel état s Bornes intérieures Pour simplifier, l’état est envoyé directement en sortie Q f (Q, X) Q s = f (Q, X) STRUCTURE
© Alexandre Parodi – Novembre 2008 a(0) b(0) * c(0) d(0) e(0) f nouvel état s = q(1) = f(q(0), X(0)) q(0) état courant q(0) GÉNÉRATION NOUVEL ÉTAT n° 1
© Alexandre Parodi – Novembre 2008 a(0) b(0) f c(0) d(0) e(0) nouvel état s = q(1) = f(q(0), X(0)) (0) q(1) q(0) ENREGISTREMENT NOUVEL ÉTAT n° 1
© Alexandre Parodi – Novembre 2008 a(1) b(1) * c(1) d(1) e(1) f nouvel état s = q(2) = f(q(1), X(1)) q(1) état courant q(1) GÉNÉRATION NOUVEL ÉTAT n° 2
© Alexandre Parodi – Novembre 2008 a(1) b(1) f c(1) d(1) e(1) nouvel état s = q(2) = f(q(1), X(1)) (2) q(1) ENREGISTREMENT NOUVEL ÉTAT n° 2
© Alexandre Parodi – Novembre 2008 Donnée à charger Commande d’effacement Commande de chargement Horloge de synchronisation Sortie de contenu EXEMPLE: REGISTRE à EFFACEMENT SPÉCIF DE L’INTERFACE
© Alexandre Parodi – Novembre 2008 f REGISTRE: DÉDUIRE LA STRUCTURE
© Alexandre Parodi – Novembre 2008 Tableau de règles « événement action » . . . l’événement (conjonction d’une valeur de commande et d’un coup d’horloge). . . déclenche l’action (affectation de l’état) REGISTRE: SPÉCIF DU COMPORTEMENT
© Alexandre Parodi – Novembre 2008 R=0 L=0 k Q Q Maintien Cas par défaut implicite : pour les autres événements, maintien de l’état courant REGISTRE: COMPLÉTER LE COMPORTEMENT
© Alexandre Parodi – Novembre 2008 On veut que: R=0 L=1 k Q D (1) Q s (0) Par construction, on a : k Pour que (1) soit respecté, par identification, il suffit donc que : RL = 01 En effet, on a alors R=0 L=1 k s=D (1 a) (0) et (1 a) Q s avec s = D donc Q D VALEUR DU NOUVEL ÉTAT AU CHARGEMENT
© Alexandre Parodi – Novembre 2008 On veut que : R=1 k Q 0 (2) Par construction, on a : k Q s (0) Pour que (2) soit respecté, par identification, il suffit donc que : RL=1 - s=0 (2 a) L En effet, on a alors R=1 k (0) et (2 a) Q s avec s = 0 donc Q 0 VALEUR DU NOUVEL ÉTAT À L’EFFACEMENT
© Alexandre Parodi – Novembre 2008 On veut que : R=0 L=0 k Q Q (3) Q s (0) Par construction, on a : k Pour que (3) soit respecté, par identification, il suffit donc que : RL = 00 En effet, on a alors R=0 L=0 k s=Q (3 a) (0) et (3 a) Q s avec s = Q donc Q Q VALEUR DU NOUVEL ÉTAT EN MAINTIEN
© Alexandre Parodi – Novembre 2008 R=0 L=1 k R=0 L=0 k Q D Q 0 Q Q Chargement synchrone Effacement synchrone Maintien Table d’expressions algébriques: pour chaque valeur de commande l’expression algébrique de la sortie en fonction des autres entrées 01 100 Valeur de commande RL D 0 Q Chargement synchrone Effacement synchrone Maintien On peut ensuite analyser Expression algébrique puis synthétiser le RLE de la sortie s du RLE fonction f combinatoire en fonction de ses REGISTRE: DÉDUIRE entrées D et Q LA SPÉCIFICATION DU RLE
© Alexandre Parodi – Novembre 2008 - Mot quelconque 1 0 f nouvel état s = q(1) = 0 U Le nouvel état s est nul D et L U état initial q 0 = U L’état initial après mise sous tension n’est pas défini : « Unitialized » U REGISTRE: GÉNÉRATION EFFACEMENT (ÉTAT n° 1)
© Alexandre Parodi – Novembre 2008 - 1 f nouvel état s = q(1) = 0 U 0 0 U REGISTRE: ENREGISTREMENT EFFACEMENT (ÉTAT n° 1)
© Alexandre Parodi – Novembre 2008 d 0 f 1 nouvel état s = q(2) = d 0 Le nouvel état s est la donnée D à charger 0 état courant q 1 = 0 0 REGISTRE: GÉNÉRATION CHARGEMENT (ÉTAT n° 2)
© Alexandre Parodi – Novembre 2008 d 0 f 1 nouvel état s = q(2) = d d 0 0 d REGISTRE: ENREGISTREMENT CHARGEMENT (ÉTAT n° 2)
© Alexandre Parodi – Novembre 2008 - 0 f 0 nouvel état s = q(3) = Q d Le nouvel état s est le même que l’état courant Q d état courant q 2 = d d REGISTRE: GÉNÉRATION MAINTIEN (ÉTAT n° 3)
© Alexandre Parodi – Novembre 2008 - 0 f 0 nouvel état s = q(3) = Q d d dd REGISTRE: ENREGISTREMENT MAINTIEN (ÉTAT n° 3)
© Alexandre Parodi – Novembre 2008 ---- 1 0 f nouvel état s = q(1) = 0000 UUUU Le nouvel état s est nul D et L UUUU état courant q 0 = UUUU REGISTRE 4 bits: GÉNÉRATION EFFACEMENT (ÉTAT n° 1)
© Alexandre Parodi – Novembre 2008 ---- 1 f nouvel état s = q (1) = 0000 UUUU REGISTRE 4 bits: ENREGISTREMENT EFFACEMENT (ÉTAT n° 1)
© Alexandre Parodi – Novembre 2008 1010 0 f 1 nouvel état s = q(2) = 1010 0000 Le nouvel état s est la donnée D=1010 à charger 0000 état courant q 1 = 0000 REGISTRE 4 bits: GÉNÉRATION CHARGEMENT (ÉTAT n° 2)
© Alexandre Parodi – Novembre 2008 1010 0 f 1 nouvel état s = q(2) = 1010 0000 REGISTRE: ENREGISTREMENT CHARGEMENT (ÉTAT n° 2)
© Alexandre Parodi – Novembre 2008 ---- 0 f 0 nouvel état s = q(3) = 1010 Le nouvel état s est le même que l’état courant Q 1010 état courant q(2) = 1010 REGISTRE 4 bits: GÉNÉRATION MAINTIEN (ÉTAT n° 3)
© Alexandre Parodi – Novembre 2008 ---- 0 f 0 nouvel état s = q(3) = 1010 REGISTRE 4 bits: ENREGISTREMENT MAINTIEN (ÉTAT n° 3)
© Alexandre Parodi – Novembre 2008 f REGISTRE: INTERFACE DU RLE
© Alexandre Parodi – Novembre 2008 L’entrée D 2 du RLE est branchée sur l’entrée D de la tranche n° 2 3 3 Q D 3 s 3 2 2 R L Q D R L s 1 s Tranches 2 identiques Commandes communes 0 les tranches 0 à toutes 1 1 Q D 2 Il n’y a pas de retenue ici. Ne pas l’oublier pour une addition ! 1 Q D RLE R L 0 R L s 0 Cette tranche n° 0 traite le bit Cette tranche n° 2 est l’exemplaire n° 0 s 0 de la sortie s du RLE 1 n° 2 du modèle de tranche REGISTRE à N=4 générique commun RLE 1 si addition entrée retenue possible bits: DÉCOMPOSITION DU RLE EN 4 TRANCHES IDENTIQUES DE 1 BIT
© Alexandre Parodi – Novembre 2008 Cet opérateur traite des données de 1 bit REGISTRE: INTERFACE DE LA TRANCHE MODELE GÉNÉRIQUE RLE 1
© Alexandre Parodi – Novembre 2008 01 100 D 0 Q Comportement de la tranche modèle générique RLE 1 qui sort un seul bit s du mot s Comportement du RLE qui sort un mot s 01 100 Chargement synchrone Effacement synchrone Maintien D 0 Q Chargement synchrone Effacement synchrone Maintien REGISTRE: COMPORTEMENT DE LA TRANCHE GÉNÉRIQUE RLE 1
© Alexandre Parodi – Novembre 2008 Table d ’expressions algébriques de s 01 100 D 0 Q Chargement synchrone Effacement synchrone Maintien Table de Karnaugh de s 00 01 11 10 0 0 1 0 0 Polynôme booléen réduit de s s = /R. /L. Q + /R. L. D REGISTRE: RÉDUCTION DU RLE 1
© Alexandre Parodi – Novembre 2008 s = /R. /L. Q + /R. L. D /R. /L. Q /R. L. D REGISTRE: STRUCTURE DU RLE 1 AVEC UN RÉSEAU LOGIQUE DE ETs et OU
© Alexandre Parodi – Novembre 2008 s = /R. /L. Q + /R. L. D = / / [ (/R. /L. Q) + (/R. L. D) ] / [ U + V ] = [ /U. /V ] // = identité Loi de Morgan s = / [ / (/R. /L. Q). / (/R. L. D) ] B / [ A. B ] = A NAND /(/R. L. D) s = /(/R. /L. Q) /L (/R Q) L D) s = (/R Même polynôme: . et + remplacés par . . . Parenthèses nécessaires car NAND non associatif ! REGISTRE: SYNTHÈSE DU RLE 1 AVEC DES NANDS
© Alexandre Parodi – Novembre 2008 /L (/R Q) L D) s = (/R Pour un polynôme, portes ET et OU remplacées par NAND REGISTRE: STRUCTURE DU RLE 1 AVEC UN RÉSEAU LOGIQUE DE NANDS
© Alexandre Parodi – Novembre 2008 00 01 11 10 0 0 1 0 0 . . . on entoure donc les 0 on réduit le polynôme booléen de NON s. . . /s = /L. /Q + L. /D + R . Il se trouve qu’ici le polynôme de /s est plus simple que le polynôme de s REGISTRE: RÉDUCTION de /s
Q) ( /L D ) + R ] ( /L D ) Même polynôme que /s: . et + remplacés par. . . (L s = Q)+ R . Loi de Morgan: A. B = /(/A + /B) Définition du NOR: . /(U + V) = U V Définition du NOR: /[X +. Y + Z] =X Y = / [ / ( L + Q ) + / ( /L + D ) + R ] © Alexandre Parodi – Novembre 2008 . s = //s = / [ /L. /Q + L. /D + R ] = /[ (L Polynôme booléen de NON s . /L. /Q + L. /D + R /s = Z REGISTRE: SYNTHÈSE avec NORs
© Alexandre Parodi – Novembre 2008 Q) (L ( /L D ) s = R . REGISTRE: STRUCTURE DU RLE 1 AVEC UN RÉSEAU LOGIQUE DE NORs
© Alexandre Parodi – Novembre 2008 s = /R. /L. Q + /R. L. D = /R. (/L. Q + L. D) Y = C(S, X 1, X 0) = /S. X 0 + S. X 1 s = /R • C(L , D , Q) factorisation multiplexeur Pas un polynôme booléen ! Fonction C (cf. livre maths num. ) REGISTRE: SYNTHÈSE DU RLE 1 AVEC UN MUX
© Alexandre Parodi – Novembre 2008 s = /R • C(L , D , Q) multiplexeur C(L, D, Q) /R /R. C(L, D, Q) REGISTRE: STRUCTURE DU RLE 1 AVEC UN MUX
© Alexandre Parodi – Novembre 2008 0 0 Q 1 0 = 1. Q = Q Q REGISTRE: FONCTIONNEMENT DU RLE 1 AVEC UN MUX
© Alexandre Parodi – Novembre 2008 1 1 D 1 0 = 1. D = D D REGISTRE: FONCTIONNEMENT DU RLE 1 AVEC UN MUX
© Alexandre Parodi – Novembre 2008 - - 0 1 = -. 0 = 0 0 REGISTRE: FONCTIONNEMENT DU RLE 1 AVEC UN MUX
FIN DE LA PRESENTATION FIN © Alexandre Parodi – Novembre 2008
FIN DE LA PRESENTATION FIN © Alexandre Parodi – Novembre 2008
- Slides: 47