automates et circuits : circuits combinatoires et circuits...
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