30

N. Louvet – Circuits logiques séquentiels

Embed Size (px)

Citation preview

Page 1: N. Louvet – Circuits logiques séquentiels

Circuits logiques séquentiels

1 Circuits élémentaires de mémorisation : les bascules

Verrou (latch)

Bascule (�ip-�op)

Registres

2 Automates

Notion d'automate �ni

Automate �ni synchrone

3 Banc de registres et RAM

Banc de registres

Généralités sur la RAM

Mémoire SRAM

4 Conclusion

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 1 / 30

Page 2: N. Louvet – Circuits logiques séquentiels

Introduction

Dans cette partie, nous présentons certains circuits dits séquentiels, dans

lesquels la notion de chronologie des événements joue un rôle central.

Un tel circuit peut se trouver dans un nombre �ni d'états, et les entrées du

circuit provoquent des transitions à des instants précis.

Pour respecter les relations temporelles requises, un circuit séquentiel reçoit un

signal d'horloge :

niveau

temps

un cycle

Ce signal permet de synchroniser des événements, soit sur le front montant, soit

sur le front descendant.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 2 / 30

Page 3: N. Louvet – Circuits logiques séquentiels

Plan

1 Circuits élémentaires de mémorisation : les bascules

Verrou (latch)

Bascule (�ip-�op)

Registres

2 Automates

Notion d'automate �ni

Automate �ni synchrone

3 Banc de registres et RAM

Banc de registres

Généralités sur la RAM

Mémoire SRAM

4 Conclusion

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 3 / 30

Page 4: N. Louvet – Circuits logiques séquentiels

L'idée de base vient du fait que l'on sait concevoir des circuits ressemblant au

circuit suivant (qui n'est pas un circuit combinatoire bien formé) :

Ce circuit présente deux états stables :

0 1

1 0

1

0 1

0

Le tout est de savoir comment passer d'un état à un autre. . .

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 4 / 30

Page 5: N. Louvet – Circuits logiques séquentiels

Bascule RS

Q

QS

R

En résumé :

si S (Set) prend momentanément la valeur 1, la bascule prend l'état Q=1 ;

si R (Reset) passe momentanément à 1, la bascule prend l'état Q=0 ;

La bascule se souvient donc qui de R ou de S a été activé pour la dernière fois :

c'est tout ce dont on a besoin pour mémoriser un bit.

Par contre, il faut éviter d'avoir R = S = . . .

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 5 / 30

Page 6: N. Louvet – Circuits logiques séquentiels

Verrou (latch)

On interdit la possibilité du S = R = 1, et on ajoute un signal de commande C :

Q

QD

C

On obtient un verrou commandé par le signal C :

si D=1 et que la commande C=1, la bascule passe à l'état Q=1,

si D=0 et que la commande C=1, la bascule passe à l'état Q=0,

quand C=0, le verrou ne peut plus changer d'état.

Lorsque C est activé, la valeur D est stockée : mémoire 1 bit.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 6 / 30

Page 7: N. Louvet – Circuits logiques séquentiels

Ce verrou stocke D lorsque C est à son niveau haut. Souvent C est un signal

d'horloge : on dit qu'il s'agit d'un verrou régi par le niveau haut de l'horloge.

signaux

temps

cycle 1 cycle 2 cycle 3 cycle 4 cycle 5

C

Q

D

Il existe aussi des verrous régis par le niveau bas de l'horloge.

D Q

C

D Q

C

niveau haut niveau bas

latch latch

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 7 / 30

Page 8: N. Louvet – Circuits logiques séquentiels

Bascule (�ip-�op)La mémorisation se produit à la �n d'un cycle, et le bit mémorisé est maintenu

sur la sortie de la bascule pendant tout le cycle suivant.

On peut mettre au point deux types de bascules.

Bascule régie par le front descendant de l'horloge :

temps

d2d1d0

cycle 3cycle 2cycle 1cycle 0

d3

cycle 4

d0 d1 d2 d3

signaux

Q

DD Q

C HH

Bascule régie par le front montant de l'horloge :

temps

signaux

Q

DD Q

C

d1

d0 d1

d2 d3

d2

d0

d3

cycle 0 cycle 1 cycle 2 cycle 3 cycle 4

HH

On peut raisonner de la même manière avec les deux types de bascules :

il su�t d'aligner correctement la dé�nition des cycles d'horloge.N. Louvet � Circuits logiques séquentiels. 20 mars 2016 8 / 30

Page 9: N. Louvet – Circuits logiques séquentiels

En plaçant en série un verrou régi par le niveau bas de l'horloge, puis un autre

régi par le niveau haut, on obtient une bascule :

D

C

Q

verrou

D

C

Q

niveau haut

verrou

E SI

H

niveau bas

La bascule mémorise l'entrée E sur le front montant de l'horloge H :

temps

I

S

E d0 d1 d2 d3

d0 d1 d2 d3

d0 d1 d2 d3

cycle 1cycle 0 cycle 2 cycle 3 cycle 4

signaux

H

On travaillera par la suite avec des bascules régies par le front montant.

Rem : Avec en série un verrou régi par le niveau haut, puis un autre régi par le

niveau bas, on a une bascule mémorisant sur le front descendant de l'horloge.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 9 / 30

Page 10: N. Louvet – Circuits logiques séquentiels

Registres

Nos registres sont fabriqués à partir de bascules régies par un front d'horloge.

Cette convention �xe la manière d'utiliser les bascules :

sur un cycle d'horloge on calcule un résultat ri , qui est mémorisé sur

l'entrée D de la bascule à la �n du cycle ;

au cours du cycle suivant :

I le résultat du cycle précédent ri est disponible et constant sur la sortie Q ;

I on calcule un résultat ri+1, mémorisé à la �n du cycle.

Le résultat calculé au cycle i est typiquement la sortie d'un circuit combinatoire.

signaux

temps

cycle 1 cycle 2 cycle 3 cycle 4 cycle 5

C

Q

D

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 10 / 30

Page 11: N. Louvet – Circuits logiques séquentiels

Le registre le plus simple que l'on puisse imaginer consiste simplement à monter

des �ip-�ops en parallèle, en les connectant au même signal d'horloge :

E5 E0E1E2E3E4E6E7

S6 S5S7 S4 S3 S2 S1 S0

C

D Q

C

D Q

C

D Q

C

D Q

C

D Q

C

D Q

C

D Q

C

D Q

C

flip−flop flip−flop flip−flop flip−flop flip−flop flip−flop flip−flop flip−flop

On obtient le type de chronogramme suivant :

data1 data2 data3 data4 data5

data1 data2 data3 data4data0

signaux

temps

cycle 1 cycle 2 cycle 3 cycle 4 cycle 5

E

S

C

A chaque �n de cycle, l'entrée E est stockée et est disponible au cycle suivant.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 11 / 30

Page 12: N. Louvet – Circuits logiques séquentiels

Pour mémoriser une donnée sur plusieurs cycles, on ajoute un signal W :

C

W

E5 E0E1E2E3E4E6E7

S6 S5S7 S4 S3 S2 S1 S0

D Q

C

D Q

C

D Q

C

D Q

C

flip−flop flip−flop flip−flop flip−flop

D Q

C

D Q

C

D Q

C

D Q

C

flip−flop flip−flop flip−flop flip−flop

Voici un exemple de chronogramme :

temps

cycle 1 cycle 2 cycle 3 cycle 4 cycle 5

C

data1

data0

data2 data3 data4

data1 data2 data3

signaux

E

S

W

A chaque �n de cycle,

soit W=1 et l'entrée E est stockée pour être disponible au cycle suivant ;

soit W=0 et la sortie S conserve la même donnée au cycle suivant.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 12 / 30

Page 13: N. Louvet – Circuits logiques séquentiels

Plan

1 Circuits élémentaires de mémorisation : les bascules

Verrou (latch)

Bascule (�ip-�op)

Registres

2 Automates

Notion d'automate �ni

Automate �ni synchrone

3 Banc de registres et RAM

Banc de registres

Généralités sur la RAM

Mémoire SRAM

4 Conclusion

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 13 / 30

Page 14: N. Louvet – Circuits logiques séquentiels

Notion d'automate �ni

Il faut un formalisme prenant en compte le temps dans les circuits séquentiels. . .

Exemples :

Un passage à niveau doit réagir à l'événement � un train approche � en

fermant ses barrières et en faisant passer des feux au rouge. . .

Un processeur passe par les étapes du cycle d'instruction.

Début del’exécution l’exécution

Fin deChargement d’uneinstruction

Exécution del’instrution chargée

Un automate �ni est une abstraction du comportement d'un circuit séquentiel :

c'est le pendant d'une fonction booléenne pour un circuit combinatoire.

Cette abstraction est a priori asynchrone (l'automate réagit à des événements),

mais on s'intéressera rapidement à des automates �nis synchrones, dans lesquels

les événements sont synchronisés par un signal d'horloge.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 14 / 30

Page 15: N. Louvet – Circuits logiques séquentiels

Formellement, un automate �ni est un quadruplet (S ,E ,T , s0) où

S est un ensemble �ni d'états (States) ;

E est un ensemble �ni d'événements (Events) ;

T est une fonction de transition de S × E → S ;

s0 ∈ S est un état spécial appelé état initial.

Graphiquement, on fait des dessins avec

un rond par état, et une �èche pour indiquer l'état initial ;

des �èches d'un état si à un état sj chaque fois qu'il existe une transition de

si à sj . On étiquette la �èche avec l'événement qui déclenche la transition.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 15 / 30

Page 16: N. Louvet – Circuits logiques séquentiels

Exemple : un passage à niveaux a deux capteurs (CG et CD), à 300 m de

chaque côté, qui sont normalement à 0, et sont à 1 lorsqu'un train pèse dessus.

On suppose que les trains peuvent se croiser au passage à niveaux :

états : S = {barrière ouverte, barrière fermée GD, barrière fermée DG} ;

événements : E = {CG 0 à 1,CD 0 à 1} ;

état initial : s0 = barrière ouverte.

barrière

ferméeouverte

CG passe de 0 à 1

CD passe de 0 à 1

GD

barrière

barrière

fermée

DG

CD

pa

sse

de

0 à

1

CG

pa

sse

de

0 à

1

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 16 / 30

Page 17: N. Louvet – Circuits logiques séquentiels

Automate �ni synchrone

Dans les d'automates �nis, on considère qu'un événement peut se produire à

n'importe quel instant : on prend surtout en compte la relation de cause à e�et.

Pour simpli�er, on introduit une horloge, et on suppose que les transitions

ne peuvent intervenir que sur un front montant de l'horloge,

se produisent su�samment rapidement pour qu'on puisse les considérer

comme instantanées.

De plus, on remplace l'ensemble des événements E par un ensemble de valeurs

d'entrées possibles I (Inputs). Un évènement est donc modélisé par le fait que

l'entrée de l'automate a une certaine valeur lors d'un front montant de l'horloge.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 17 / 30

Page 18: N. Louvet – Circuits logiques séquentiels

Un automate �ni synchrone est un quadruplet (S , I ,T , s0) où

S est un ensemble �ni d'états (States) ;

I est un ensemble �ni d'entrées (Inputs) ;

T est une fonction de transition de S × I → S ;

s0 ∈ S est un état spécial appelé état initial ;

une transition se produit à chaque front montant d'une horloge.

Rem : on aurait pu se baser sur le front descendant d'une horloge ; l'important

est qu'une transition se produise à chaque �n de cycle.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 18 / 30

Page 19: N. Louvet – Circuits logiques séquentiels

Exemple : on construit un compteur 2 bits modulo 4, qui s'incrémente si son

entrée e = 1, et qui conserve sa valeur si e = 0.

Notons (q1q0) le registre d'état de l'automate que l'on cherche à construire.

00

01

11

10

e=1 e=1

e=1e=1

e=0

e=0

e=0e=0

q1 q0 e F1(q1, q0, e) F0(q1, q0, e)

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 1 0

1 0 1 1 1

1 1 0 1 1

1 1 1 0 0

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 19 / 30

Page 20: N. Louvet – Circuits logiques séquentiels

q1 q0 e F1(q1, q0, e) F0(q1, q0, e)

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 1 0

1 0 1 1 1

1 1 0 1 1

1 1 1 0 0

On trouve F0(q1, q0, e) = q0 ⊕ e, et F1(q1, q0, e) = q1 ⊕ (q0e). Bref, on sait

construire un petit circuit combinatoire qui calcule F (q1, q0, e).

On pourra donc implanter facilement l'automate demandé :

regis

tre d

’éta

tfonction de

transition

F

C

e

q

q0

0

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 20 / 30

Page 21: N. Louvet – Circuits logiques séquentiels

Un automate �ni synchrone peut être implanté en matériel de la façon suivante.

Un registre à n bits stocke l'état courant de l'automate.

La fonction de transition F est réalisée par un circuit combinatoire, qui

prend en entrée :

I reçoit les n bits du registre d'état, et k signaux codant l'entrée courante ;

I ressort l'état suivant, qui sera stocké par le registre d'état en �n de cycle.

Un tel automate peut être implanté par le circuit suivant :

reg

istr

e d

’éta

t

fonction de

transition

F

n n

kentrée

sortie

n

C

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 21 / 30

Page 22: N. Louvet – Circuits logiques séquentiels

Si on est capable de décrire formellement un automate �ni synchrone, on arrivera

toujours à déduire de cette description un circuit séquentiel pour le réaliser.

Il existe d'autres types d'automates que ceux décrits jusqu'à présent : dans un

automate de Moore, la sortie n'est pas simplement l'état de courant de

l'automate, mais une fonction (combinatoire) de cet état courant.

On pourrait envisager de concevoir la totalité d'une UCT comme un automate :

mais il serait impossible de s'y retrouver parmi tous les états possibles.

Par contre, on peut concevoir l'unité de contrôle de l'UCT comme un automate,

chargé d'activer de façon coordonnée les di�érents circuits de l'UCT.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 22 / 30

Page 23: N. Louvet – Circuits logiques séquentiels

Plan

1 Circuits élémentaires de mémorisation : les bascules

Verrou (latch)

Bascule (�ip-�op)

Registres

2 Automates

Notion d'automate �ni

Automate �ni synchrone

3 Banc de registres et RAM

Banc de registres

Généralités sur la RAM

Mémoire SRAM

4 Conclusion

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 23 / 30

Page 24: N. Louvet – Circuits logiques séquentiels

Banc de registres

Un banc de registre est un circuit qui regroupe un ensemble de registres, chacun

identi�é par un numéro : chacun peut être lu ou écrit.

Pour permettre les lectures,

le banc prend en entrée un certain nombre de numéros de registres #rrX,

un nombre identique de ports de lecture rdataX en sortie.

Le banc de registre maintient en permanence sur son port de lecture rdataX la

donnée contenue dans le registre dont l'indice est spéci�é sur l'entrée #rrX.

Pour les écritures sur le front montant de l'horloge, le banc présente en entrée

un numéro de registre #rw et un port d'écriture wdata,

un signal d'horloge C et un signal d'écriture write.

Si sur un front montant de l'horloge C le signal write est activé, la donnée

présente sur le port d'écriture wdata est placée dans le registre #rw.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 24 / 30

Page 25: N. Louvet – Circuits logiques séquentiels

Voici par exemple un banc de 8 registres 8 bits, avec deux ports de lecture :

rdataA

rdataB

write

wdata

#rw

#rrB

#rrA 3

3

3

8

1

1

8

8

C

8 registres

8 bits

Pour implanter un tel banc de registres, on peut utiliser :

8 registres 8 bits ;

2 multiplexeurs 64 vers 8 pour sélectionner parmi les registres :

I rdataA en fonction de #rrA,

I rdataB en fonction de #rrB.

un décodeur 3 vers 8 pour adresser le registre à écrire d'après #rw.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 25 / 30

Page 26: N. Louvet – Circuits logiques séquentiels

8

8

8

8

8

8

8

8

décodeur

3 vers 8

register 0

register 1

register 2

register 3

register 4

register 5

register 6

register 7

mu

x 6

4 v

ers

8m

ux 6

4 v

ers

8

8

8

3

8

3

3

rdataA

rdataB

wdata

#rw

#rrB

C write

1 1

#rrA

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 26 / 30

Page 27: N. Louvet – Circuits logiques séquentiels

Généralités sur la RAM

Les registres et les bancs de registres fournissent les éléments de base pour la

construction de petites mémoires.

Pour la construction de mémoire plus grandes, comme la mémoire centrale d'un

ordinateur, on doit recourir à d'autres technologies. On distingue essentiellement

deux types de mémoires RAM :

Dans une SRAM (Static RAM), les bits sont stockés par des verrous : les

données stockées se conservent tant que l'ordinateur est sous tension.

Dans une DRAM (Dynamic RAM), les bits sont stockés à l'aide de

condensateurs, dont il faut rafraîchir la charge à intervalles de temps

réguliers : ils ne conservent leur charge que pendant quelques ms.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 27 / 30

Page 28: N. Louvet – Circuits logiques séquentiels

Qu'est-ce qui distingue la SRAM et la DRAM?

A capacité équivalente :

le temps d'accès à une DRAM est 5 à 10 fois plus long qu'avec une SRAM,

une SRAM présente un coût beaucoup plus élevé qu'une DRAM.

La SRAM et la DRAM jouent des rôles di�érents dans la hiérarchie mémoire :

la SRAM est utilisée pour les niveaux de cache du processeur (≈Mio),

la DRAM compose la mémoire centrale (≈Gio).

Certaines mémoires RAM sont asynchrones, ce qui signi�e qu'elles ne sont pas

cadencées par une horloge. Mais il existe aussi des DRAM synchrones :

SDRAM (Synchronous DRAM) : opérations sur un front d'horloge.

DDR SDRAM (Double Data Rate SDRAM) : sur les deux fronts d'horloge.

Dans la suite, on va s'intéresser brièvement à la SRAM.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 28 / 30

Page 29: N. Louvet – Circuits logiques séquentiels

Mémoire SRAM

Une SRAM de 2m mots de k bits de présente typiquement en entrée :

m lignes d'adresse formant add,

k lignes data pour l'écriture ou la lecture d'un mot de k bits en mémoire,

un signal write qui doit être activé pour l'écriture depuis data,

si write est à 0, alors on est en lecture, et la donnée est lue sur data.

SRAM

64 Ki 8 bits

(64 Kio)

add 15

data

write

8

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 29 / 30

Page 30: N. Louvet – Circuits logiques séquentiels

Conclusion

Dans le cours précédent, nous avons fait des rappels sur les circuits logiques

combinatoires, dont les sorties ne dépendent que des entrées. Ces circuits

permettent d'e�ectuer les calculs pour les instructions arithmétiques ou logiques.

Nous avons présenté les circuits séquentiels, dans lesquels les sorties dépendent

de l'état courant et des entrées. Ces circuits permettent de mémoriser des

données, et de gérer l'exécution des instructions dans un processeur.

Les deux types de circuits seront utilisés dans les TP consacrés à la mise au

point d'un processeur implantant l'architecture LC3.

N. Louvet � Circuits logiques séquentiels. 20 mars 2016 30 / 30