automates et circuits : circuits combinatoires et circuits...

30
Introduction Circuits combinatoires Circuit séquentiels Automates et circuits : Circuits combinatoires et circuits séquentiels Nicolas Prcovic Courriel : nicolas.prcovic@univ-amufr Aix-marseille Université Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

Upload: others

Post on 02-Jan-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

IntroductionCircuits combinatoires

Circuit séquentiels

Automates et circuits :Circuits combinatoires et circuits

séquentiels

Nicolas PrcovicCourriel : nicolas.prcovic@univ-amufr

Aix-marseille Université

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

ButsCircuit : fonction sur des entiers

Buts du chapitre (1)

Savoir réaliser n’importe quel circuit combinatoireEtant donné la représentation d’une fonction (table devérité ou expressions booléennes), savoir construire lecircuit réalisant la fonction uniquement à l’aide de porteslogiques.

10

00

0

0001

1

1

11

e f f(e)

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

ButsCircuit : fonction sur des entiers

Buts du chapitre (2)

Savoir réaliser des circuits séquentielsEtant donné un calcul récursif à effectuer, construire lecircuit séquentiel réalisant le calcul par étapes.

Nous aurons besoin de définir les mémoires, qui servent àstocker les résultats intermédiaires du calcul.

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

ButsCircuit : fonction sur des entiers

Circuit : fonction sur des entiersContexteOn souhaite réaliser un circuit qui donne le résultat d’unefonction f : A → B.

Ex : A = {♠, ♥, ♦, ♣}, B = {rouge, noir}.1 On code A et B sous forme d’entiers : on trouve des

bijections fA : A → N3 et fB : B → N1Ex : fA(♠) = 0, fA(♥) = 1, fA(♦) = 2, fA(♣) = 3,fB(rouge) = 0, fB(noir) = 1.

2 Mais on représente les entiers en base 2.Ex : fA(♠) = 00, fA(♥) = 01, fA(♦) = 10,fA(♣) = 11, fB(rouge) = 0, fB(noir) = 1.

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

ButsCircuit : fonction sur des entiers

Table de vérités

A fA(A) fB(B) B♠ 00 1 noir♥ 01 0 rouge♦ 10 0 rouge♣ 11 1 noir

On obtient une fonction booléenne b = f(a1, a0) :

a1 a0 b0 0 10 1 01 0 01 1 1

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

ButsCircuit : fonction sur des entiers

Autre exemple : f (x) = x2

x1 et x0 codent un nombre binaire 0 ≤ x ≤ 3.y3, y2, y1 et y0 codent x2.

x x1 x0 y3 y2 y1 y0 x2

0 0 0 0 0 0 0 01 0 1 0 0 0 1 12 1 0 0 1 0 0 43 1 1 1 0 0 1 9

Quatre fonctions booléennes : y3 = f3(x1, x0),y2 = f2(x1, x0), y1 = f1(x1, x0) et y0 = f0(x1, x0).

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

Rappels : portes logiques

Un circuit électronique d’ordinateur est constituéd’un certain nombre d’entrées et de sorties binairespouvant être à l’état 0 ou 1.N’importe lequel de ces composants peut êtreconstruit grâce à un assemblage de circuits à 1 ou 2entrées et une sortie qu’on appelle portes logiques.

A

B

A

B

A

B

A NON A A ET B

A X−OU B A NON−ET B A NON−OU B

A

B

A

B

A OU B

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

Rappels : table de vérité → fonction booléenne

1 A chaque combinaison de valeurs qui rend la fonction égale à1, on associe le produit des variables en ajoutant la barre de lanégation sur les variables dont la valeur est 0.

x y z majorité0 0 0 00 0 1 00 1 0 00 1 1 1 x .y .z1 0 0 01 0 1 1 x .y .z1 1 0 1 x .y .z1 1 1 1 x .y .z

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

Table de vérité → fonction booléenne

2 Expression complète de f : on fait la somme desproduits déterminés précédemment.Ex : pour la fonction majorité, on obtientf (x , y , z) = xyz ∨ xyz ∨ xyz ∨ xyz .

3 Quand c’est possible, on simplifie la formule(méthode des consensus, ...).Ex : f (x , y , z) = yz ∨ xz ∨ xy .

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

Fonctions booléennes → circuitsA partir d’une fonction booléenne sous forme normaledisjonctive, on réalise ainsi le circuit correspondant :

A chaque variable correspond une entrée du circuit.A toutes les variables qui apparaissent négativementon ajoute le circuit de la négation à l’entréecorrespondante.On ajoute les circuits ET correspondant aux produitsde l’expression booléenne.Enfin, chaque sortie des circuits OU sert d’entrée àune unique porte OU dont la sortie est celle ducircuit logique entier.

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

Fonctions booléennes → circuitsCircuit correspondant à la formulef (A,B ,C ) = ABC ∨ ABC ∨ AB .

A

C

B

°

°

°

°

A

B

ABC

ABC

AB

ABCv ABCv AB

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

Les circuits logiques de base

Un certain nombre de circuits logiques sont très utilisésdans la conception d’une machine :

Le décodeurLe multiplexeurLes additionneurs : demi-additionneur 1 bit,additionneur 1 bit, additionneur n bits

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

Le décodeurUn décodeur est un circuit a n entrées et 2n sorties :

Les n entrées code un nombre i (de n bits).Toutes les sorties sont à 0 sauf la i eme qui est à 1.

Utilité : chaque sortie d’un décodeur est potentiellement relié àun autre circuit. Sert donc à sélectionner un circuit àdéclencher à partir de son numéro.

°

°°

°

°

E0

E1

S0

S1

S2

S3

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

Le multiplexeurUn multiplexeur a 2n + n entrées et 1 sortie :

Les entrées sont réparties en 2 groupes :le groupe de sélection qui a n entrées qui codent un nombrebinaire ile groupe d’information composé de 2n entrées dontchacune code une information sur 1 bit.

En sortie : valeur du i e bit du groupe d’information.

Utilité : sélectionne le circuit dont on recueille l’info.

°°°°

I0

I1

I2

I3

N1 N0

S

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

Le multiplexeur comme circuit général paramétrable

Un multiplexeur à 2n + n entrées peut coder n’importe quelle fonction à nvariables avec :

une combinaison e de n valeurs d’entrées pour le groupe de sélection.

une fonction caractéristique f pour le groupe d’information (2n entrées)

en sortie : f(e).

MUX

f(e)f

e

dddd

e2 e1 e0 s 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1

MUX

e2 e1 e0

s

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

Le demi-additionneur

Demi-additionneur (1 bit) : consiste à additionner 2bits a et b et à récupérer le bit de somme s et le bitde retenue r .Table de vérité :

a b r s0 0 0 00 1 0 11 0 0 11 1 1 0

Pas assez complet pour être utilisé pour faire desadditions à plusieurs bits.

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

L’additionneur 1 bit

L’additionneur 1 bit = demi-additionneur avec uneentrée supplémentaire : la retenue re de l’additionprécédente.Table de vérité :

re a b r s0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Réalisation à partir de portes logiquesRéalisation à partir d’autres composants

L’additionneur n bitsAdditionneur n bits : un circuit à 2n entrées pour 2entiers de n bits et n + 1 sorties pour la somme des 2entiers plus la retenue.Pour faire des additions sur n bits, il suffitd’assembler n additionneurs 1 bit :

S7 S6 S5 S4 S3 S2 S1 S0

A7 B7 A6B6 A5B5 A4B4 A3B3 A2B2 A1B1 A0B0

ADD1 bit

ADD1 bit

ADD1 bit

ADD1 bit

ADD1 bit

ADD1 bit

ADD1 bit

ADD1 bit 0

R

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

Réalisation des mémoires

Jusqu’à présent nous avons montré des circuits dontles états internes sont uniquement fonctions desvaleurs actuelles de leurs entrées.Les circuits mémoires possèdent des états internesqui dépendent aussi des anciennes valeurs qu’ilsavaient en entrée.

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

Bascule RS

Une bascule RS (RS pour Reset/Set) est le circuit debase permettant de constituer une mémoire d’un bit.

Q

Q

S

°

°R

On note les 2 sorties Q et Q’ (on note cette dernièreaussi Q car sa valeur est souvent l’opposée de Q).

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

Bascule RSQ

Q

S

°

°R

Q = R ∨ Q ′ et Q ′ = S ∨ Qdonc Q = R ∨ S ∨ Q = R .(S ∨ Q)

et Q ′ = S ∨ R ∨ Q ′ = S .(R ∨ Q ′)

"Table de vérité" :R S Q Q’0 0 "Q" "Q’"0 1 1 01 0 0 11 1 0 0

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

Bascule RS : quand R = S = 0Les relations Q = R .(S ∨ Q) et Q ′ = S .(R ∨ Q ′)deviennent Q = Q et Q ′ = Q ′.Les sorties conservent la valeur qu’elles avaientprécédemment.Les valeurs de Q et de Q’ peuvent être égales à 0 ouà 1 mais on a toujours Q = Q ′.

Q

Q

S

°

°R

1->0

01

0

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

Bascule RS : cas problématiqueSi on passe directement de R = S = 1 (qui fait queQ = Q ′ = 0) à R = S = 0, les valeurs des sorties peuventosciller avant de se fixer. On ne peut déterminer à l’avancequelles vont être les valeurs de Q et Q ′.

Q

Q

S

°

°R

1->0

1->0

0->1->0->...

0->1->0->...

Il faut donc compléter ce circuit afin qu’il ne puisse y avoirR = S = 1 en entrée. C’est ce que va réaliser une bascule D.

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

Bascule D

Q

D

CK

Q

°

°

°

°

Si CK = 0 alors quelle que soit la valeur de D on aR = S = 0 et donc les états Q et Q gardent leursvaleurs.Si CK = 1 alors Q = D.On peut donc dire que cette bascule mémorisel’ancienne valeur de D tant que CK = 0.(Dès que CK passe à 1, Q prend la valeur de D.)

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

L’horloge interne

Habituellement, CK est relié à la sortie d’un dispositifspécial appelé horloge interne.Une horloge émet à intervalle régulier des tensionscorrespondant à l’état 1 pendant un court momentavant de revenir à une tension correspondant à l’état0.

Toutes les entrées CK sont reliées à l’horloge interne del’UC.A chaque cycle d’horloge, l’état global du systèmeconstitué par l’ensemble des circuits change :chaque entrée D de bascule est recopiée sur sa sortie Q.

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

Succession d’états d’un ordinateur

Un ordinateur en train de fonctionner peut être vucomme passant périodiquement d’un état global deses circuits à un autre.La fréquence de changement est celle de l’horlogeinterne du micro-processeur (actuellement env 3Ghz).

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

Différence circuit combinatoire/séquentiel

Soient les vecteurs d’entrées Et =(e1,t , ...en,t) et desorties St =(s1,t , ...sm,t) à un temps t donné.Un circuit combinatoire réalise une fonction F :

St = F (Et)La fonction F d’un circuit séquentiel dépend aussi deSt−1 grâce aux résultats mémorisés :

St = F (Et , St−1)

EtStF

MEM

St-1

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

Exemple : compteur à 3 bits

Circuit énumérant cycliquement les entiers de 000 à 111.INC3 réalise l’incrémentation sur 3 bits.

Les 3 bascules D mémorisent l’entier sur 3 bits.Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

Compteur à 3 bits : initialisation

0 0

0

0

0

0

1

001

CLR à 0 permet d’initialiser le circuit (et de bloquer les sortiesà 001).

Dès qu’on passe CLR à 1, le compteur démarre.

Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels

IntroductionCircuits combinatoires

Circuit séquentiels

Les mémoiresRéalisation des circuits séquentiels

Compteur à 3 bits : exécution1 0

0

1

010

011

0

1

0

100

0

1

1

Cycle : 1, 2, 3, ...

Cycle 1 :

001 (sorties Q) passe les portes ET, arrive en entrée de INC3.

010 sort de INC3 et reste bloqué sur les entrées D jusque’à la fin du cycled’horloge.

A chaque nouveau cycle, on a un nouveau successeur en sortie du circuit.Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels