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
Introduction
Buts
Circuits combinatoires
Circuit : fonction sur des entiers
Circuit séquentiels
Buts du chapitre (1)
Savoir réaliser n’importe quel circuit combinatoire
Etant donné la représentation d’une fonction (table de
vérité ou expressions booléennes), savoir construire le
circuit réalisant la fonction uniquement à l’aide de portes
logiques.
0
1
1
0
0
0
e 0 f 0 f(e)
1
1
0
1
1
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Buts
Circuits combinatoires
Circuit : fonction sur des entiers
Circuit séquentiels
Buts du chapitre (2)
Savoir réaliser des circuits séquentiels
Etant donné un calcul récursif à effectuer, construire le
circuit 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
Introduction
Buts
Circuits combinatoires
Circuit : fonction sur des entiers
Circuit séquentiels
Circuit : fonction sur des entiers
Contexte
On souhaite réaliser un circuit qui donne le résultat d’une
fonction 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 → N1
Ex : 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
Introduction
Buts
Circuits combinatoires
Circuit : fonction sur des entiers
Circuit séquentiels
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 b
0 0 1
0 1 0
1 0 0
1 1 1
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Buts
Circuits combinatoires
Circuit : fonction sur des entiers
Circuit séquentiels
Autre exemple : f (x) = x 2
x1 et x0 codent un nombre binaire 0 ≤ x ≤ 3.
y3 , y2 , y1 et y0 codent x 2 .
x x1 x0 y3 y2 y1 y0 x 2
0 0 0 0 0 0 0 0
1 0 1 0 0 0 1 1
2 1 0 0 1 0 0 4
3 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
Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
Rappels : portes logiques
Un circuit électronique d’ordinateur est constitué
d’un certain nombre d’entrées et de sorties binaires
pouvant être à l’état 0 ou 1.
N’importe lequel de ces composants peut être
construit grâce à un assemblage de circuits à 1 ou 2
entrées et une sortie qu’on appelle portes logiques.
A A
A NON A A ET B A OU B
B B
A A
A A NON−OU B
A X−OU B A NON−ET B
B
B B
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
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 la
négation sur les variables dont la valeur est 0.
x y z majorité
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1 x.y .z
1 0 0 0
1 0 1 1 x.y .z
1 1 0 1 x.y .z
1 1 1 1 x.y .z
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
Table de vérité → fonction booléenne
2 Expression complète de f : on fait la somme des
produits déterminés précédemment.
Ex : pour la fonction majorité, on obtient
f (x, y , z) = xyz ∨ xy z ∨ xy z ∨ 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
Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
Fonctions booléennes → circuits
A partir d’une fonction booléenne sous forme normale
disjonctive, on réalise ainsi le circuit correspondant :
A chaque variable correspond une entrée du circuit.
A toutes les variables qui apparaissent négativement
on ajoute le circuit de la négation à l’entrée
correspondante.
On ajoute les circuits ET correspondant aux produits
de l’expression booléenne.
Enfin, chaque sortie des circuits OU sert d’entrée à
une unique porte OU dont la sortie est celle du
circuit logique entier.
Nicolas Prcovic,
[email protected] Circuits combinatoires et circuits séquentiels
Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
Fonctions booléennes → circuits
Circuit correspondant à la formule
f (A, B, C ) = ABC ∨ ABC ∨ AB.
A
A ° ABC
B ABC
B ° ABCv ABCv AB
°
C
AB
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
Les circuits logiques de base
Un certain nombre de circuits logiques sont très utilisés
dans la conception d’une machine :
Le décodeur
Le multiplexeur
Les additionneurs : demi-additionneur 1 bit,
additionneur 1 bit, additionneur n bits
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
Le décodeur
Un 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.
S0
E0
° ° S1
° S2
E1
° °
S3
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
Le multiplexeur
Un 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 nombre
binaire i
le groupe d’information composé de 2n entrées dont
chacune 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
°°°°
S
I2
I3
N1 N0
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
Le multiplexeur comme circuit général paramétrable
Un multiplexeur à 2n + n entrées peut coder n’importe quelle fonction à n
variables 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).
e e2 e1 e0
e2 e1 e0 s
0 0 0 0
0 0 1 0
M 0 1 0 0 M
0 1 1 1
f U f(e) 1 0 0 0 U s
X
1
1
0
1
1 1
0 1
X
1 1 1 1
ddddCircuits combinatoires et circuits séquentiels
Nicolas Prcovic,
[email protected] Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
Le demi-additionneur
Demi-additionneur (1 bit) : consiste à additionner 2
bits a et b et à récupérer le bit de somme s et le bit
de retenue r .
Table de vérité :
a b r s
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
Pas assez complet pour être utilisé pour faire des
additions à plusieurs bits.
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
L’additionneur 1 bit
L’additionneur 1 bit = demi-additionneur avec une
entrée supplémentaire : la retenue re de l’addition
précédente.
Table de vérité :
re a b r s
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Réalisation à partir de portes logiques
Circuits combinatoires
Réalisation à partir d’autres composants
Circuit séquentiels
L’additionneur n bits
Additionneur n bits : un circuit à 2n entrées pour 2
entiers de n bits et n + 1 sorties pour la somme des 2
entiers plus la retenue.
Pour faire des additions sur n bits, il suffit
d’assembler n additionneurs 1 bit :
A7 B7 A6B6 A5B5 A4B4 A3B3 A2B2 A1B1 A0B0
ADD ADD ADD ADD ADD ADD ADD ADD
1 bit 1 bit 1 bit 1 bit 1 bit 1 bit 1 bit 1 bit 0
R S7 S6 S5 S4 S3 S2 S1 S0
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit séquentiels
Réalisation des mémoires
Jusqu’à présent nous avons montré des circuits dont
les états internes sont uniquement fonctions des
valeurs actuelles de leurs entrées.
Les circuits mémoires possèdent des états internes
qui dépendent aussi des anciennes valeurs qu’ils
avaient en entrée.
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit séquentiels
Bascule RS
Une bascule RS (RS pour Reset/Set) est le circuit de
base permettant de constituer une mémoire d’un bit.
S
Q
°
Q
R °
On note les 2 sorties Q et Q’ (on note cette dernière
aussi Q car sa valeur est souvent l’opposée de Q).
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit séquentiels
Bascule RS
S
Q
°
Q
R °
Q = R ∨ Q 0 et Q 0 = S ∨ Q
donc Q = R ∨ S ∨ Q = R.(S ∨ Q)
et Q 0 = S ∨ R ∨ Q 0 = S.(R ∨ Q 0 )
"Table de vérité" :
R S Q Q’
0 0 "Q" "Q’"
0 1 1 0
1 0 0 1
1 1 0 0
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit séquentiels
Bascule RS : quand R = S = 0
Les relations Q = R.(S ∨ Q) et Q 0 = S.(R ∨ Q 0 )
deviennent Q = Q et Q 0 = Q 0 .
Les sorties conservent la valeur qu’elles avaient
précédemment.
Les valeurs de Q et de Q’ peuvent être égales à 0 ou
à 1 mais on a toujours Q = Q 0 .
S
Q
1->0 °
0
Q
R °
1
0
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit séquentiels
Bascule RS : cas problématique
Si on passe directement de R = S = 1 (qui fait que
Q = Q 0 = 0) à R = S = 0, les valeurs des sorties peuvent
osciller avant de se fixer. On ne peut déterminer à l’avance
quelles vont être les valeurs de Q et Q 0 .
S
1->0 Q
°
0->1->0->...
0->1->0->...
Q
R °
1->0
Il faut donc compléter ce circuit afin qu’il ne puisse y avoir
R = 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
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit séquentiels
Bascule D
D
°
Q
°
CK
°
Q
°
Si CK = 0 alors quelle que soit la valeur de D on a
R = S = 0 et donc les états Q et Q gardent leurs
valeurs.
Si CK = 1 alors Q = D.
On peut donc dire que cette bascule mémorise
l’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
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit séquentiels
L’horloge interne
Habituellement, CK est relié à la sortie d’un dispositif
spécial appelé horloge interne.
Une horloge émet à intervalle régulier des tensions
correspondant à l’état 1 pendant un court moment
avant de revenir à une tension correspondant à l’état
0.
Toutes les entrées CK sont reliées à l’horloge interne de
l’UC.
A chaque cycle d’horloge, l’état global du système
constitué 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
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit séquentiels
Succession d’états d’un ordinateur
Un ordinateur en train de fonctionner peut être vu
comme passant périodiquement d’un état global de
ses circuits à un autre.
La fréquence de changement est celle de l’horloge
interne du micro-processeur (actuellement env 3Ghz).
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit séquentiels
Différence circuit combinatoire/séquentiel
Soient les vecteurs d’entrées Et =(e1,t , ...en,t ) et de
sorties 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 de
St−1 grâce aux résultats mémorisés :
St = F (Et , St−1 )
Et
F St
St-1
M
E
M
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit 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
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit séquentiels
Compteur à 3 bits : initialisation
0 0 0 0
0
0 1
0
0
1
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
Introduction
Les mémoires
Circuits combinatoires
Réalisation des circuits séquentiels
Circuit séquentiels
Compteur à 3 bits : exécution
1 001 000
110
010 011
101
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 cycle
d’horloge.
A chaque nouveau cycle, on a un nouveau successeur en sortie du circuit.
Nicolas Prcovic, [email protected] Circuits combinatoires et circuits séquentiels