53
Les circuits logiques séquentiels

Les circuits logiques séquentiels

Embed Size (px)

Citation preview

Les circuits logiques séquentiels

Les registres de mémorisation

• Un registre permet la mémorisation de n bits. Il est donc constitué de nbascules,mémorisant chacune un bit. L'information est emmagasinée sur unsignal de commande et ensuite conservée et disponible en lecture.

Entrées

Registre de 4 bits commandé par les entrées W et R

Sorties

Écriture

Lecture

Les registres à décalage

Il existe deux types de transmission :

Les registres à décalage permettent de passer d’un codage à l’autre. Dans unregistre à décalage les bascules sont interconnectées de façon à ce que l'étatlogique de la bascule de rang i puisse être transmis à la bascule de rang i+1 quand

Transmission parallèle : codage spatial .

Transmission série : codage temporel.

logique de la bascule de rang i puisse être transmis à la bascule de rang i+1 quandun signal d'horloge est appliqué à l'ensemble des bascules. L'information peut êtrechargée de deux manières dans ce type de registre :

• comme dans le cas d'un registre demémorisation. En général une porte d'inhibition est nécessaire pouréviter tout risque de décalage pendant le chargement parallèle.

• l'information est présentée séquentiellement bitaprès bit à l'entrée de la première bascule. A chaque signal d'horlogeun nouveau bit est introduit pendant que ceux déjà mémorisés sontdécalés d'un niveau dans le registre.

Entrée parallèle :

Entrée série :

Les registres à décalage

.Entrée série - Sortie parallèle et série :

DémonstrationDémonstration

Ce type de registre permet de transformer un codage temporel en un codagespatial.

La sortie série peut également être utilisée. L'intérêt d'utilisation d'un registre àdécalage en chargement et lecture série réside dans la possibilité d'avoir desfréquences d'horloge différentes au chargement et à la lecture. Le registreconstitue alors un tampon.

0 1 0 0 1

Registre àdécalage

1001

Les registres à décalage

.Entrée parallèle et série - Sortie série :

Démonstration

Si X = 1 l'entrée parallèle est inhibée et l'entrée série est validée.

Si X = 0 l'entrée série est bloquée et les entrées parallèles sontvalidées.

Ce type de registre permet de transformer un codage temporel ou spatialen un codage temporel.

Les registres à décalage

Entrée parallèle et série - Sortie parallèle et série :

Démonstration

X = 0Pr = Cr = 1

H =1 :validée

X = 1 H = 0, Cr=E0, Pr = E0

( )( )

1 Q ,1 Cr ,0 Pr 1

0 Q ,0 Cr ,1 Pr 0

i

i

=⇒==⇒==⇒==⇒=

i

i

E

EiE Qi =

du 4035B

Les registres à décalage

Registre à décalage à droite et à gauche

< >

Les registres à décalage

Les diverses possibilités sont sélectionnées par les lignes commande S0 et S1.

Considérons la ligne transportant le signal d'horloge aux bascules, elle est

gouvernée par l'expression logique :

( )1010 H H SSSSClk +⋅=⋅+=Le signal d'horloge sera donc inhibé si S + S = 0

Pour sélectionner le chargement parallèle (entrées A, B, C et D) il faut :

Le signal d'horloge sera donc inhibé si S0 + S1 = 0

1 1010 =⋅=+ SSSS

S0 = S1 = 1. Le chargement parallèle se fait sur un front actif d'horloge.

Les registres à décalage

Pour sélectionner le décalage à droite (entrée E1, sortie QD) :

Pour le décalage à gauche (entrée E0, sortie QA) :

S0 = 1 et S1 = 0

S0 = 0 et S1 = 1

S0 S1 Fonction

0 0 Registre bloqué0 0

0 1

1 0

1 1

Registre bloqué

Décalage à gauche

Décalage à droite

Chargement parallèle

Rq : un registre à décalage à droite et à gauche permet d'effectuer desmultiplications et des divisions entières par des puissances de 2.

Les compteurs

Un compteur est un ensemble de n bascules interconnectées par des porteslogiques. Ils peuvent donc mémoriser des mots de n bits. Au rythme d'unehorloge, ils peuvent décrire une séquence déterminée c'est-à-dire occuper unesuite d'états binaires et peut représenter au maximum 2n combinaisons. Cesétats restent stables et accessibles entre les impulsions d'horloge. Le nombretotal N des combinaisons successives est appelé le modulo du compteur.

On a N ≤ 2n. Si N < 2n un certain nombre d'états sont hors du cycle nominal defonctionnement.

Les compteurs binaires peuvent être classés en deux catégories :

• les compteurs asynchrones;

• les compteurs synchrones.

De plus on distingue les compteurs réversibles ou compteurs-décompteurs.

Les compteurs synchrones

Soit un compteur modulo 8 comptant en binaire naturel, nous choisissons un codagepermettant de réduire au maximum le CCS :

S2 S1 S0

les sorties Q0, Q1 et Q2 fournissent des signaux périodiques de fréquencesrespectivement 2, 4 et 8 plus faibles que celle de H. La division de fréquence estune des applications des compteurs.

Les compteurs synchrones

# Top Q2 Q1 Q0 K2=J2 K1=J1 K0=J0

0 0 0 0

1 0 0 1

0

0

0

1

1

1

En utilisant des bascules JK comme des bascules T

K0=J0=

K1=J1=

1

Q0

( J = K )

1 0 0 1

2 0 1 0

3 0 1 1

4 1 0 0

5 1 0 1

6 1 1 0

7 1 1 1

8 = 0 0 0 0 - - -

0

0

1

0

0

0

1

1

0

1

0

1

0

1

1

1

1

1

1

1

1

K1=J1= Q0

K2=J2= Q1Q0

En généralisant :K i = Ji = Qi-1 …..Q0

OuK i = Ji = Ji-1 Qi-1= Ki-1 Qi-1

Les décompteurs synchrones

# Top Q2 Q1 Q0 K2=J2 K1=J1 K0=J0

0 1 1 1

1 1 1 0

0

0

0

1

1

1

En utilisant des bascules JK comme des bascules T

K0=J0=

K1=J1=

1

Q01 1 1 0

2 1 0 1

3 1 0 0

4 0 1 1

5 0 1 0

6 0 0 1

7 0 0 0

8 = 0 1 1 1 - - -

0

0

1

0

0

0

1

1

0

1

0

1

0

1

1

1

1

1

1

1

1

K1=J1=

K2=J2=

Q0

Q1Q0

En généralisant :K i = Ji = Qi-1 …..Q0

OuK i = Ji = Ji-1 Qi-1= K i-1 Qi-1

Les compteurs synchrones

Aux deux manières d'exprimer les relations de récurrence des équations decommutation correspondent deux types de circuits.

• K i = Ji = Qi-1 …..Q0 est dit à report parallèle

• K i = Ji = Ji-1 Qi-1 est dit à report série

évite ainsi des portes à multiples entrées évite ainsi des portes à multiples entrées mais limite la fréquence de l’horloge !!!!

Compteur Décompteurà report parallèle

X= 0 => Compteur, X = 1 => Décompteur

Les compteurs synchrones

Compteur Décompteurà report série

Si le temps de propagation d’une porte NAND : MAX(TpHL, TpLH) = δ s (15 ns pour TTL)

TH >>6δ

Compteur synchrone

H

1 T QQ0 Q1

T Q T QQ2

& T Q

Q3

&

Compteur synchrone à report série : Tmin(H) > Tp(bascule) + (n-2) * Tp(porte ET)Compteur synchrone à report série : Tmin(H) > Tp(bascule) + (n-2) * Tp(porte ET)

H

1 T QQ0 Q1

T Q T QQ2

& T Q

Q3

&

Compteur synchrone à report parallèle : Tmin(H) > Tp(bascule) + Tp(porte ET)

Compteur synchrone

Compteur en anneau : rapide (pas de porte)

D QQ0

D Q D QQ1 Q2

Registre à décalage bouclé

HD Q D Q D Q

Q Q Q

N bascules : plusieurs cycles de comptage

Beaucoup de cycles piège : obligation d’ajouter une logique pour les casser (cf synthèse synchrone) : moins rapide

000 110011

100 101010 001 111

Compteur synchrone

HD Q

Q0D Q D Q

Q1 Q2

Compteur de Johnson : Le plus rapide (pas de porte)

Registre à décalage bouclé par inversion

HQ Q Q

N bascules : 2 cycles de comptage Un nominal de longueur 2N-2 étatsUn cycle piège de 2 états

101010

000100110111011001

Compteur chaîné asynchrone (principe)

H

Cascade de diviseurs de fréquence par deux sur fronts montants. Les bascules n’ont plus la même horloge

T Q1 T Q T Q Décompteurbinaire

Q0 Q1 Q2

HQ0

Q1

Q20 7 6 5 4 3 2 ...

Structure à éviter car asynchrone

H

Cascade de diviseurs de fréquence sur fronts descendants

T0

Q0

1 T1 Q1 T2 Q2 Compteurbinaire

Q0

Q1 Q2

Compteur chaîné asynchrone (principe)

HQ0

Q1

Q2

0 1 2 3 4 5 6 ...

Structure à éviter car asynchrone

Accumulation des temps de propagation : baisse de la fréquence

Exemple : passage de 7 à 8

H

Q0 tp

Compteur chaîné asynchrone (principe)

Q1

Q2

Q3

7 6 4 0 8

Si n bascules changent d’état : n-1 états transitoires, par contre les excitations des bascules sont synchronisées

Tmin (H)> n.tp+marge

Les compteurs synchrones (modulo N)

� Exemple du compteur décimal 0-9� Compteur synchrone 4 bits en binaire naturel

� 4 bascules JK

� Si J=K : bascules T

Il va compter jusqu’à 15!

J

K

Q

~Q

SET

RESET

J

K

Q

~Q

SET

RESET

J

K

Q

~Q

SET

RESET

J

K

Q

~Q

SET

RESET

1

2

3&

4

5

6&

Q3

Q2Q1

Q0

H

1

Les compteurs synchrones (modulo N)

Q3 Q2 Q1 Q0

0 0 0 0 0

1 0 0 0 1

2 0 0 1 0

3 0 0 1 1

4 0 1 0 0

5 0 1 0 1

6 0 1 1 0

7 0 1 1 1

8 1 0 0 0

9 1 0 0 1

Bouclage 0 0 0 0

Les compteurs synchrones (modulo N)

( )( )( ) )2()10(

)2()10(

)2()10(

1100)12(

1011)11(

1010)10(

=

=

=

Remise à l’état initial (0000) pour tous les états hors cycle par une action sur le reset des bascules : Synthèse risque minimal

Etats hors cycle( )( )( )( ) )2()10(

)2()10(

)2()10(

)2()10(

1111)15(

1110)14(

1101)13(

=

=

=

Q0

Q1Q2

Q3

RESET = Q3(Q2+Q1)

Etats hors cycle

Compteur synchrone74161 compteur intégré synchrone 4 bits binaireprogrammable cascadable de la famille TTL (16 broches (pins))

74161ENTENP

Co

E0-3LD

CP : horloge (front montant)Q0-3 : sorties du compteurE0-3 : entrées parallèles (de prog)74161ENP

CP

CLRQ0-3

Vcc+Gnd

CoE0-3 : entrées parallèles (de prog)CLR : RAZ asynchrone active à 0LD : chargt parallèle synchrone

actif au niveau basprioritaire sur le comptage

ENP/ENT : autorisation de comptagecomptage si ENP.ENT=1

Co : retenue =1 si Q3Q2Q1Q0.ENT=1(ENT agit sur Co en asynchrone)

Compteur synchrone

Présentation du 74161 ou 7416374161 ou 74163Chronogramme

ENPENT

CO

Compteur synchrone de (A)(2) à (B)(2)

H

(E)(2)

Compteur synchrone

Utilisation d’un compteur avec chargement parallèle : lorsque le modulo est détecté, on recharge le compteur (entrée prioritaire)

H

Détection de B

LD Détecteur

&

Q3-0 Q3

Q2

Q1

Q0

Load

Si B = 1001 => Load=1Q3-0= (A)(2)

Compteurs synchrones cascadés

On dispose de compteurs 4 bits, on veut compter sur N bits (N>4)

Exemple (N=12) :0000 0000 00000000 0000 0001

...

Il faut 3 compteurs 4 bits

Le premier compte tout le temps.

... 0000 0000 11110000 0001 00000000 0001 0001

... 0000 1111 11110001 0000 0000

Le deuxième ne compte que quand le premier est à 15.

(le troisième compte quand premier=15 et deuxième=15)

Cascadage des compteursCompteur MSB (de 0 à 15)

Compteur LSB (de 0 à 15)

Compteurs synchrones cascadés

3 techniques dont 2 mauvaises (!!!!)

Cascade asynchrone

1

ENPENT

Co ENPENT

Co ENPENT

Co

H

Compteurs synchrones cascadés

Cascade synchrone série :

1 ENPENT

Co ENPENT

Co ENPENT

Co

H

Co = Q3.Q2.Q1.Q0.ENTLSB

Tmin (H)> Tp(Clk/Co) + 2 Tp(Ent/Co)

Période de H :

Compteurs synchrones cascadés

Cascade synchrone parallèle :

1 ENPENT

Co ENPENT Co

ENPENT

Co

H

ENParallèle et ENThru

1

Tmin > Tp(Clk/Co) + Tp(Ent/Co)

C’est la bonnetechnique

Période de H :

Entrée : Device : machine à laverTemps : Washerpd= 30 mnFonction : laver,essorer

L’architecture pipeline : Extrait du cours du MIT l09-1

Optimisation de machine séquentielle complexe :

Le pipe line

32

Sortie :

Fonction : laver,essorer

Device : sèche lingeTemps : Drierpd= 60 mnFonction : sécher

Approche Traditionnelle (one shot) :

Le pipe line

33

Approche Traditionnelle :

Le pipe line

34

En négligeant les 30 premières minutes

Approche optimisée (pipeline) :

Le pipe line

35

Approche traditionnelle :

Approche optimisée :

Temps de propagation

Fréquence d’obtention d’un bac de linge

90 mn

120 mn*

1/90mn

1/60mn

* : les changements ont lieu à chaque fin de lavage

Application aux systèmes logiques séquentielles :

Le pipe line

36

F et G sont « en attente » (idle) lorsque H établit son niveau

Tp : temps de propagation du circuit,1/Tp : fréquence.

En posant : Tp(F)=15ns,Tp(G)=20ns,Tp(H)=25ns

Le temps de propagation de ce circuit est de 45ns

Positionnons des bascules synchrones à la sortie de chaque partie :

F et G peuvent traiter Xi+1 alors que H traite les sorties F(Xi) et G(Xi)

contenu dans les bascules.

Pipeline à 2 étages

Le pipe line

37

Pipeline à 2 étages

Approche traditionnelle :

Approche optimisée :

Temps de propagation

45 ns 1/45 ns

1/25 ns 50 ns*

* : l’élément le plus lent fixe la fréquence de l’horloge

Fréquence

Clock

Etage du pipeline

Diagramme d’un pipeline :

Le pipe line

38

Etage du pipeline

Propagation en diagonale des signaux dans le diagrammeTemps de chargement du pipeline

L’exécution schématique d’une instruction est la suivante :

1. Chargement d’une instruction de la mémoire (fetch : chercher),

Fetch, Decode, Execute, Save

Application aux traitement des instructions :

Le pipe line

2. Analyse l'instruction (decode : …),

3. Exécution de l’instruction (execute : …)

4. Sauvegarde du résultat (save : …)

Le nombre d’étape peut varier en fonction de l’architecture de processeur

Pipeline sur une machine de Harvard :

IF RO EX WBInstruction 1 :

Clock0 1 2 3 4 5 6 7

Temps de Traitement d’une instruction

IF RO EX WB

Le pipe line

Instruction 2 :Traditionnel

40

Les inconvénients :Programmation plus complexe de la structure,Gestion des interruptions (charge et décharge du pipeline),Erreur d’exécution (pipeline hazard, boucle, )…

IF RO EX WB

IF RO EX WB

IF RO EX WB

Instruction 2 :

Instruction 3 :

Instruction 4 :

IF RO EX WB

Instruction 1 :

Instruction 2 :

IF RO EX WB

Pipe line

Les mémoires : Une mémoire est un dispositif de stockage de l’information. Chaqueinformation stockée est appelée « donnée » (data). Comme il est possible destocker plusieurs données dans une mémoire, il est nécessaire d’organiser lestockage de celle-ci. Pour cela, on attribut une adresse à chaque casemémoire. De même, on utilise un signal de validation du circuit mémoire.

Les mémoires

MémoireDonnée(m bits)

Adresse ( n bits)

(Chip select)Sélection Commande

(écriture ou/et lecture)

Les mémoires

BusAdresse

SM : activation de labascule sinon état Hiz

Validation du circuit

Lecture

Écriture

Bus deDonnées

Les mémoires : organisation

Schéma du décodeurd’adresse

4 mots mémoire=

4 portes ET

64*8=512

Les mémoires : organisation

Une mémoire contenant 512 mots de 4 bits possède 512 portes ETpour réaliser le décodeur…

Largeur du bus de données (n) et d’adresse (k) :n=4 et k=9 (29=512)

Organisation bidimensionnelle : matrice de 64 lignes et 32 colonnes (8*4 bits)

6 bits=

64 ET 1 bit64 ET

3 bits

Multiplexeur 8 vers 1 pour le choix du bit à lire

Donnée 4 bitsMUX

Au final :64 ET4 (8 ET+1 OU)

100 portes logiques

1 bit

8 ET1 OU

8 ET1 OU

8 ET1 OU

8 ET1 OU

Les mémoires : organisation

Nombre de portes en fonction de la géométrie

Représentation carrée donne la plus

grande économie

Les mêmes lignes d'adresse peuvent être utilisées pour identifier successivement la ligne puis lacolonne. Cela permet de réduire le nombre de broches de connexion, donc l'encombrement et lecoût des circuits. Cependant cela demande environ deux foisplus de temps par transmettre l'adressecomplète.

Si on cherche à accéder à des informations stockées dans une même ligne il peut être possible dedéfinir une fois la ligne, puis pour chaque mot de n'avoir à envoyer que l'adresse de la colonne.

Les mémoires : organisation

Si on cherche à accéder à des informations stockéesdans une même ligne il peut être possible de définirune fois la ligne, puis pour chaque mot de n'avoir àenvoyer que l'adresse de la colonne.

Adresse Ligne (k)

CAS

Adresse Colonne (k) Adresse Colonne (k+1)

RAR

Temps d’accès data(k)

Data (k) Data(k+1)

Temps d’accès data(k)

Les mémoires : organisation

Augmentation du nombre de motsDe même la figure suivante montre la réalisation d'un bloc de4 x 2k mots de n bits à l'aide de4 boîtiers de 2k x n bits. Il nous faut k+2 lignes d'adresse. Les k bits de bas poids de l'adressesont appliqués simultanément sur les 4 boîtiers. Les deux bits de poids forts attaquent undécodeur à quatre sorties. Chacune de ces quatre lignes permet de sélectionner un boîtier(entrée de validation du boîtier : CS). Un seul boîtier est alors connecté aux lignes de sortie.

Les mémoires : organisation

Augmentation de la longueur des motsLa figure suivante montre qu'il est aisé d'associer deux boîtiers de 2k mots de n bits pour obtenirun bloc de 2k mots de 2 n bits. L'adressage doit être appliqué simultanément aux deux circuits,l'un fournissant les n bits de bas poids et l'autre les n bits de haut poids.

2n

Gestion d’une pileOn veut concevoir une pile de 4 éléments de 3 bits. Il s’agit d’une machine logique synchrone dans laquelle on peut insérer ou extraire un élément. Il s’agit d’une mémoire qualifiée de LIFO (Last Input, First Output) : on ne peut extraire de la pile que la dernière donnée à avoir été mémorisée. Outre une horloge H, le circuit comporte 3 entrées :

� E2E1E0: entrée sur 3 bits que l’on souhaite insérer dans la pile.�W : entrée sur 1 bit qui, lorsqu’elle est à 1, indique que l’on veut insérer la valeur présente sur E2E1E0 au prochain

front d’horloge.� R : entrée sur 1 bit qui, lorsqu’elle est à 1, indique de l’on veut extraire, au prochain front d’horloge, le dernier élément

inséré dans la pile. Il possède 3 sorties :

� S2S1S0: valeur d’un élément extrait� P : sortie sur 1 bit qui est à 1 quand la pile est pleine (4 éléments insérés et non extraits)� V : sortie sur 1 bit qui est à 1 quand la pile est vide (tous les éléments insérés par le passé ont été extraits).

Si l’on essaie d’insérer un élément quand la pile est pleine ou d’extraire un élément lorsque la pile est vide, il ne se passe rien. De plus, Si l’on essaie d’insérer un élément quand la pile est pleine ou d’extraire un élément lorsque la pile est vide, il ne se passe rien. De plus, on considère que la combinaison W=R=1 est interdite.Pour réaliser ce circuit, on suppose que l’on dispose des composants suivants (dont on ne demande pas le schéma) :

� De mémoirescontenant 4 mots de 3 bits.o entrée horlogeo entrée E2-0 : valeur de la donnée à mémorisero entrée X2-0 : adresse de la donnée à mémoriser.o sortie S2-0 : valeur contenue dans la mémoire à l’adresse X2-0.o entrée :load : commande de mémorisation si load=1, la valeur en entrée est mémorisée sur un front

montant d’horloge à l’adresse X2-0.� un compteur/décompteur2 bits en binaire naturel.

o entrée horlogeo entrée : c+. Lorsque cette entrée est à 1, la valeur du compteur est incrémentée au prochain front montant

de l’horloge.o entrée : c- . Lorsque cette entrée est à 1, la valeur du compteur est décrémentée au prochain front montant

de l’horloge.o entrée init : cette entrée asynchrone, active à l’état bas, permet d’initialiser la valeur du compteur à

Q1Q0=00.o sorties N1N0: valeur du compteur.

logigramme

P

V

E2-0

W

R

H

H

+Vc

cR0V

Q1

Q0

e+c

c-

&

1

&

1

&

≥1

S2-0

H

X1 X0

Gestion d’une pile

=⋅ −+ QCQC QCQC +

Analyse de machine séquentielle :

K0=J0=

K1=J1=

1 : Bascule T

=⋅ −+ 00 QCQC00 QCQC −+ +K1=J1=

Q1+= 1111 QKQJ + 11 QJ ⊕=

00 QCQC ++= −+

Gestion d’une pile

C+C- Q1 Q0 K1 Q1+

01 0 0

01 0 1

01 1 0

1

0

Q0+

1

01

1 100 01

01

01 1 1

10 0 0

10 0 1

10 1 0

10 1 1

1 0

1

0

1

0

0

1

0

1

0

11 10

01

01/1010

1

1

1

1

Gestion d’une pile

C+C- Q1 Q0 K1 Q1+

01 0 0 1 1

Q0+

1

=⋅ −+ 00 QCQC 00 QCQC −+ +

K0=J0=

K1=J1=

1 : Bascule TPorte ET sur C- en NAND

01 0 0

01 0 1

01 1 0

01 1 1

10 0 0

10 0 1

10 1 0

10 1 1

1

1

1

1

1

1

1

1

1

00

0

0

0

1

0

1

0

1

0

00 01

11 10

10

10

1010 0101

01

01