chap6compteur synchrones

download chap6compteur synchrones

of 19

Transcript of chap6compteur synchrones

  • 8/3/2019 chap6compteur synchrones

    1/19

    95

    CHAPITRE 6COMPTEURS SYNCHRONES

    - Squenceur : Circuit ou systme qui passe travers une srie dtats successifs grce unehorloge synchrone ou asynchrone.Ex : Machine laver.

    - Au chapitre 6, nous allons voir les squenceurs fabriqus laide de Flips Flops tousconnects une horloge commune.Ex : Compteur (avec comme seule entre extrieure : CK, lhorloge)

    + avec de faon optionnelle : reset, load, halt (mise zro, chargement, arrt).

    Si dautres entres sont prsentes, on parlera de machines dtat ("State machine", vus auchapitre 7).

    tat (STATE) : tout moment, les sorties de tous les flips flops constituent son tat.

    Une table : tat prsent tat futur (Present-State Next State ou PS-NS) : sera employepour le design.

    - Aussi : registres synchrones.- Avec le chapitre 6, on pourra faire le design de nimporte quel compteur synchrone !

    6.1 Circuit squentiel, tat, horloge

    Circuit synchrone : lment de mmoire : Flip Flop, mme horloge pour tous les Flips FlopsCircuit squentiel : lment de mmoire : latch et Flip Flop

    Rappel : Flip Flop, lhorloge est "edge-sensitive" et Latch, lhorloge est "level-sensitive".

    6.2 tat et sortie

    - Pour dterminer ltat futur : Circuit combinatoire : il faut connatre : les entres prsentes + diagramme des portes

  • 8/3/2019 chap6compteur synchrones

    2/19

    96

    Circuit squentiel : il faut connatre : - lhistoire des entres- les entres- le diagramme du circuit

    "Lhistoire des entres" = sorties courantes des Flips Flops, cest ltat du circuit.

    Si N Flip Flop au maximum 2N diffrents tats.

    Ltat du circuit nest pas toujours gal la sortie des Flips Flops (si logique combinatoire ensortie).

    Exemple :

    Exemple : Shift register.

    La sortie = dernier FF seulement.

    Les Flips Flops ne sont pas directement relis la sortie. Ils sont dits cachs ("hidden").

    Si on veut une machine M tats (cycles de M tats) avec N Flip Flop(Parfois on peut mettre plus de FF que le minimum requis).

    Schma gnral dune "Machine de Moore"

    M N 2

    Signaux deFeed-back

    (First In - First Out)

  • 8/3/2019 chap6compteur synchrones

    3/19

    97

    Les TATS dun circuit squentiel peuvent aussi avoir un nom : ATTENTE, ACCEPTE,DMARRE LE MOTEUR, etc.

    Un choix judicieux des noms des tats et des variables peut faciliter le design comme on verra

    plus tard.

    6.3 Frquence maximum avec 1 seule horloge

    - On emploie 1 seule frquence dhorloge pour tous les FF et tous les FF sont du mmetype ou .

    - Lhorloge ne doit pas tre retarde par des portes logiques, ceci causerait des arrives decoups dhorloge des instants diffrents cause du "Skew" de lhorloge.

    - cause des avantages de synchronisme, plus de 90 % des circuits emploient une seulehorloge et sont du type "squentiel". (a limine les courses et le "catching").

    - Sorties stables qui ne changent quau coup dhorloge.- Quelle est la frquence Max de lhorloge ?

    On a la topologie suivante :

    priode minimum

    Ici thold= 0 (ngligeable)Ex : 1 ns pour 74F175

    Lhorloge doit tre stable aussi

    Ex : pour une montre, on emploie un cristal de quartz.

    Dlai C Dlai f + Set uptime+ hold time

    holdsetupf CMIN ttt +++=

    min1

    T f =

  • 8/3/2019 chap6compteur synchrones

    4/19

    98

    Circuit de communication 9600 bits par seconde (BPS), on emploie un cristal de 11.059 Mhz(dans le microcontrleur 8051, par exemple).

    Fan-Out (Distribution Maximale)

    Puisque lhorloge est distribue tous les FF, lhorloge peut se dgrader.

    Solutions :1) Circuit spcial dhorloge qui fournit beaucoup de courant.2) Employer des buffers comme suit :

    - linversion naffecte pas le systme- permet de maintenir un "fast rise time" (horloge nest pas "skewed")

    3) Emploi des Schimitt trigger : "transform slowly changing input signals into sharply definedsignals". Il y a donc une bonne immunit au bruit.

  • 8/3/2019 chap6compteur synchrones

    5/19

    99

    6.4 tapes danalyse et de design

    A- tapes danalyse (circuit synchrone avec Flips Flops, sans entre)

    1. Sparer les Flips Flops et la logique combinatoire de stimulation.2. tudier la logique de stimulation et obtenir une quation boolenne pour chacune des entredes Flips Flops.

    3. Assumer quau dbut, le circuit est dans un tat zro, donc, mettre "0" dans les quationsboolennes.

    4. Obtenir les nouvelles valeurs de sortie et les mettre dans les quations pour dterminer ltatsuivant.

    5. Reprendre ltape 4 jusqu ce que tous les tats suivants soient dtermins. Indiquer les tatsdans des tables de Karnaugh, diagramme en anneaux.

    B- tapes de design (circuit synchrone avec Flips Flops, sans entre)

    1. Exprimer chaque nombre de la squence en binaire. Chaque nombre correspondra un tat.2. Dterminer une mthode pour assigner les tats M aux sorties des Flips Flops.3. tablir la table tat-Prsent tat Suivant.4. Choisir le type de Flip Flop : T, JK, D (D par dfaut).5. tablir les relations entre les tats.

    6. Employer les tats prsents comme entres dans les tables de vrit.7. Assigner ltat de retour aux tats inemploys.8. Trouver les quations partir des tables de vrit du point 6.9. Monter les sorties comme combinaison des sorties des Flips Flops.10. Raliser la logique combinatoire de stimulation partir des quations.

    C- tapes de design (registres dcalage cyclique cyclic shift register)

    1. tablir la liste successive des tats dans la table TAT PRSENT TAT SUIVANT(Present State Nest State).

    2. Ajouter le(s) cas dinitialisation pour le dmarrage automatique (e.g. 000 000).3. Synthtiser lEntre srie (Serialln ) comme la somme des mintermes pour lesquelsSerialln =

    1 dans la liste successive des tats.

  • 8/3/2019 chap6compteur synchrones

    6/19

    100

    Table 6.1 State Changes for Three Flip-Flops (Extrait de "Digital Design from Zero to One" p.312)

    JK Flip-FlopQN + 1 QN 1

    D Flip-FlopD

    Toggle Flip-FlopENABLE J K J K

    0 10 0 0 00 0

    0 X

    1 00 1 1 1

    1 11 X

    0 11 0 0 1

    1 1X 1

    0 01 1 1 0

    1 0X 0

    Exemple 1 : (sera fait en classe)

    Tir de "Digital Design", J. D.Daniels, 1ere dition, p.313,Fig. 6.10

  • 8/3/2019 chap6compteur synchrones

    7/19

    101

    Exemple 2 : (sera fait en classe)

    6.5 Design de compteurs synchrones

    - Maintenant : tant donn la squence quel est le design ?- considrer : minimisation/optimisation des tats

    choix du Flip Flop (habituellement "D") assignation des noms des variables viter les tats non dsirs "lock out" Auto-correcteur

    Considrations pratiques

    1. Sil y a M tats au moins N Flip Flop, M N 22. Parfois pratique davoir + dtat que le minimum.3. Cas extrme : 1 FF/tat4. Prvoir un tat retour ou "ground state" : point de retour pour tous les tats inemploys.

    Souvent 0000.Si tats inemploys = "X" dans le design des tables, pas sr quon pourra revenir en cas dedfaillance (attention !).

    Exemple : Faire le design dun compteur que rpte la squence 0, 3, 6, 9, 12, 0...Employer le code binaire pour le codage des FF D, employer les sorties des FFcomme sortie.Ces spcifications ne donnent pas beaucoup de choix au designer.

    Tir de "Digital Design", J. DDaniels, 1ere dition, p.315,Fig. 6.12

  • 8/3/2019 chap6compteur synchrones

    8/19

    102

    tape 1 et 2 : La sortie des Flips Flops est dtermine par les spcifications.

    # Q3 Q2 Q1 Q00 0 0 0 03 0 0 1 1

    6 0 1 1 09 1 0 0 112 1 1 0 0

    tape 3 :

    tat prsent tat suivantQ3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 D3 D2 D1 D0

    0 0 0 0 0 0 0 1 1 0 0 1 13 0 0 1 1 0 1 1 0 0 1 1 06 0 1 1 0 1 0 0 1 1 0 0 19 1 0 0 1 1 1 0 0 1 1 0 012 1 1 0 0 0 0 0 0 0 0 0 0

    tape 4 : On emploie FF D (Avantage des FF-D, le design est plus ais).

    tape 5 : Relation entre les tats : facile avec FF-D.Si 0011DDDD0000QQQQ 01230123 == etLtat futur sera 0011QQQQ 0123 =

    tape 6 : Obtenu de la table de ltape 3 :

  • 8/3/2019 chap6compteur synchrones

    9/19

    103

    tape 7 : Il est sage de laisser des zros dans les tables de Karnaugh (T-K) prcdentes pouravoir un tat de retour connu "ground state".

    tape 8 : On obtient les quations.

    012301230 QQQQQQQQ D+=

    tape 9 : Les sorties sont directement les sorties des FF.

    6.6 Compteurs codage positionnel

    - Ce sont des compteurs dont la sortie sincrmente ou dcrmente chaque coup dhorloge.- tat des Flips Flops directement la sortie du circuit.

    012301231 QQQQQQQQ D +=

    012301232 QQQQQQQQ D +=

    012301233 QQQQQQQQ D +=

    On a choisi unereprsentation genrePAL ici.

  • 8/3/2019 chap6compteur synchrones

    10/19

    104

    6.7 Compteur dcade dcrmental avec FF-D Toggle

    Ce sont des compteurs de type 9---0---9---0---9 : 10 tats compteur dcade.

    6.8 Compte suprieur en employant le "Ripple Carry output" (RCO)

    - On peut raliser des compteurs 8, 12, 16 bits avec la mthode prcdente, mais le cot estlev cause de la logique dexcitation combinatoire approche pas intressante.

    - Approche plus intressante : cascade de circuits de compteur MSI (Medium ScaleIntegration). Exemple : CB4CLED de Xilinx.CB4CLEB : compteur 4 bits up/down avec external load, 2 Enable. Permet de raliser encascadant N units, des compteurs 4 N tats.

    - Le Rco peut tre employ pour crer un bit supplmentaire en lenvoyant un "toggleenable" dun FF externe.

    Exemple :

    - Que faire pour cascader des compteurs 4 bits ?On a pas accs au contrle de lentre du 1er FFSi on a seulement accs lhorloge, alors on propage RCO sur CK2

  • 8/3/2019 chap6compteur synchrones

    11/19

    105

    - On voit quil faut employer Rco pour des compteurs positive edge triggened.- Il y aura 1 dlai = tpd (temps propagation dans porte ET synthse Rco .- Approche moins pire quun "full ripple" compteur avec 8 x tpd (ici 1 seul tpd).

    6.9 Registre dcalage pour le design de compteurs synchrones- On va voir quelles sont les squences disponibles avec un "Shift register" (MSI).

    Df : ensemble de bascules "D" edge-triggened connectes dos dos, horloge commune.

    DIN = vient de lextrieur ou peut-tre gnr de lintrieur (cas des compteurs).

    Pour DM, M 0 on a DM = Qm-1, donc il y a des limitations aux squences disponibles.

    6.10 Serial In Parrallel Out shift register (SR) ou SI PO

    Registre dcalage cyclique (RDC)

    On a aussi des "cyclic SR" *SIPO pour lequel la Serial input est une combinaison des sorties desFF.

    * pas dentre externe admise.

    Registres srie srie SI SO srie parallle SI PO parallle srie PI SO parallle parallle PI PO

  • 8/3/2019 chap6compteur synchrones

    12/19

    106

    Exemple circuit TTL #74164 (SI PO) avec mise zro asynchrone

    Registre 8 bits :

    Table :CLR CK DSA DSB Q0 Q1 Q7 ModeL X X X L L L ClearH L L L Q0 Q6H L H L Q0 Q6 ShiftH H L L Q0 Q6H H H H Q0 Q6

    8-bi serial-in parallel-out shift register

    Note : MR = Master Reset

    Shift register 8 bits(asynchrone)le produit DSA DSB estentr

  • 8/3/2019 chap6compteur synchrones

    13/19

    107

    FUNCTION TABLE

    INPUTS OUTPUTSMR CP Dsa Dsb Q0 Q1. Q7

    OPERATING MODE

    L X X X L L L Reset (clear)H l l L q0 q6H l h L q0 q6H h l L q0 q6H h h H q0 q6

    Shift

    H = High voltage levelh = High voltage level one set-up time prior to the Low-to-High clock transitionL = Low voltage levell = Low voltage level one set-up time prior to the Low-to-High clock transitionQn = Lower case letters indicate the state of the referenced input (or output) on setup time prior to the Low-to-

    High

    clock transitionX = Dont care = Low-to-High clock transition

    6.11 Analyse des Registres SR Cycliques [CSR] cyclic Shift Register

    On dcode comme ceci : Qi Qi + 1, i = 0, N 1 N = Nb de bitsQo = f(Qi, i = 0, N) fonction boolenne

    Aprs un certain nb de cycles,( )N2 la squence recommence

    - Pour dterminer la squence : - simulation- la faire la maison

    Ex : CSR

  • 8/3/2019 chap6compteur synchrones

    14/19

    108

    Trs simpleUn simple inverseur constitue la logique de SinQuelle est la squence ?On commence avec 0000 (contenu des FF).Solution : le SR va se remplir de 1 puis se vider avec au total 8 tats

    Si on commence zro Si on commence ailleursSquence de MOEBIUS Squence ANTI-MOEBIUS

    Design avec les CSR

    - On peut implanter toute squence qui "se droule avec un patron dcal" (that un folds with ahorizontal shift pattern ).

    - En faisant le design, voir si on peut avoir un patron qui se droule gauche ou droite.

    Ex : - 5 jointures/articulations dun robot qui doivent tre plies en squence comme suit :

    A B C D E Serial in1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 1

    Solution :- On emploie 5 FF, chaque sortie FF commande une articulation, un joint.- On aurait pu y aller avec 3FF (23 = 8 > 5 tats requis) mais avec 2 FF de plus, aucun

    dcodage de sortie !

    Q1 Q2 Q3 Q41- 0 0 0 02- 1 0 0 03- 1 1 0 04- 1 1 1 05- 1 1 1 16- 0 1 1 17- 0 0 1 18- 0 0 0 1

    8 tats

    Q1 Q2 Q3 Q40 1 0 10 0 1 01 0 0 10 1 0 01 0 1 01 1 0 10 1 1 01 0 1 10 1 0 1

    Switch tailedRing compteur

    tat suivant diffre dun seul bit (code gray) Tous les FF changent aprs le coup dhorloge

  • 8/3/2019 chap6compteur synchrones

    15/19

    109

    - Quelle est la logique combinatoire que va faire circuler un 1 ?- Une approche : Considrons les 5 sorties 25 = 32 cas

    De ceux-ci les cas :

    On peut synthtiser Sin directement avec :

    Sin = 3210 QQQQ +++ , Q4 na pas dimportance ici (Q4 = 1 ou Q4 = 0 et SIN = 1)= 3210 QQQQ

    On a alors le design suivant :

    Il faut A = B = C = D = 0 pour avoir DINmis 1.- Avec ce design peut importe ltat des FF, aprs 5 coups dhorloge au maximum, un 1 va

    circuler dans le systme (tous les 1 sont rinjects 0 cause de la porte NOR).- Q4 peut tre vu comme un tmoin qui avertit lors quon a accompli un cycle, peut servir

    arrter le systme.- Ce systme est appel "one-hot sequencer".

    Assigne 1 FF par tat pas efficace comme usage des FFTrs employs.

    - Si on avait voulu faire circuler un "0" au lieu dun 1a) mettre des inverseurs cest un "one-cold sequencer"

    b) employer une porte NAND (NAND = 0 lorsque toutes les entres sont 1).

    A B C D EQ0 Q1 Q2 Q3 Q4 SIN0 0 0 0 1 1 ABCDE0 0 0 0 0 1 0000X

    On recommence la squenceCas dun reset

    Q0 Q1 Q2 Q3 Q4 SIN1 1 1 1 1 0 - reset1 1 1 1 1 0 - dbut nouveau cycle

  • 8/3/2019 chap6compteur synchrones

    16/19

    110

    - On peut faire circuler plus quun 1 la fois, mais nimporte quel mot dun tat la fois.

    Gnralisons la mthode de design :

    1- tablir la liste de la succession des tats prsent tats futurs incluant le "Serial in".2- Ajouter le (les) cas dinitialisation pour le "dmarrage automatique" ex : 0000 0000.3- Synthtiser Serial in

    Serial in = la somme des mintermes pour lesquels Serial in = 1 dans la liste successive destats.

    6.12 Gnrateur pseudo-alatoire

    Cest un CSR avec un grand nombre de bascules. Le compteur passe dans beaucoup dtats(2N au maximum).

    Utilit en cryptage de squence srieUtilit en gnration de bruits rptitif

    On a :PS

    Q1 Q2 Q3 Q4 Sin0) 0 0 0 0 18) 1 0 0 0 1

    12) 1 1 0 0 114) 1 1 1 0 07) 0 1 1 1 1

    11) 1 0 1 1 113) 1 1 0 1 06) 0 1 1 0 03) 0 0 1 1 19) 1 0 0 1 04) 0 1 0 0 1

    10) 1 0 1 0 05) 0 1 0 1 02) 0 0 1 0 01) 0 0 0 1 00) 0 0 0 0 1

    Passe dans 15 des 16 tats sauf 1111 quiest un cul-de-sac.

    Q1 Q2 Q3 Q41 1 1 11 1 1 1

    Q3 Q4 Sin0 0 10 1 01 0 01 1 1

    1111 est un cul-de-sac ici !

  • 8/3/2019 chap6compteur synchrones

    17/19

    111

    La sortie du gnrateur pseudo-alatoire peut-tre nimporte quel sortie des FF puisque le patronnest pas important ici.

    6.13 Units caches

    Elles peuvent parfois rsoudre le problme lors de la rptition des mmes nombres.

    Exemple : squence 5 5 4 2 puis 5 5 4 2

    6.14 Compteur + ROM pour crer une squence arbitraire

    Si N nest pas une puissance de 2, il faut prvoir un mcanisme de rechargement du compteur oueffacement avec CLR synchrone qui peut tre command avec une des lignes du ROM

    On peut aussi employer un contrleur microprogramm qui permet en plus de raliser : sauts,sous-routines, boucles.

    Dfinition : Circuit squentiel qui assure la fonction de comptage (binaire ou autre) avec 2N

    tats sans aucun dcodeur de sortie. Sorties = tat des FF chaque coup dhorloge.

    6.15 Types de compteur

    1- Ripple (srie) ou dbordement (asynchrone)

    2- Binaire :- up/down, sortie en binaire- ck commune- la longueur de la squence est le modulo

    3- En anneau :- fait circuler un 1 ou un 0- possde autant dtats que de FF- plusieurs cycles sont raliss, un seul est valide initialisation requise

    Exemple : one-hot, two-hotone-cold, two-coldsequencer

    2M N

    N = longueur de la squenceM = nb de bits dans le compteur

  • 8/3/2019 chap6compteur synchrones

    18/19

    112

    4- Johnson

    -

    similaire au compteur en anneau- offre 2 fois plus dtats que de FF grce un dcodage simple.

    Ex :

    Exemple de circuit 74163

    5. Anneau squence arbitraireQA QB QC Dcodeur dtat0 0 0

    C AQQ1 0 0

    B AQQ1 1 0 CBQQ1 1 1

    C AQQ

    0 1 1 B AQQ0 0 1 CBQQ

  • 8/3/2019 chap6compteur synchrones

    19/19

    113

    Si K bits squence de 2K tats

    Problme les tats inemploys lock-out (cul-de-sac) :

    - Caractristique : Le dernier bit invers est inject en DA- Appels : "Switch-tailed ring" compteurs.

    6- Compteurs squence quelconqu

    PS NS

    QA QB QC DA DB DC QA QB QC0 1 0 1 0 1 1 0 11 0 1 0 1 0 0 1 0