synthese_synchrone

download synthese_synchrone

of 60

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