ELP 304 : Cours 2 Circuits combinatoires

Transcription

ELP 304 : Cours 2 Circuits combinatoires
ELP 304 : Cours 2
Circuits combinatoires
Michel Jézéquel
Département Électronique
Support réalisé avec la participation de Christophe Jégo
Les circuits combinatoires
„ Définition
„ Les
opérateurs de transcodage
• les codeurs
• les décodeurs
• les transcodeurs
„ Les opérateurs d’aiguillage
• les multiplexeurs
• les démultiplexeurs
„ Les opérateurs de comparaison
„ Les opérateurs arithmétiques
• les additionneurs
• les multiplieurs
• les unités arithmétiques et logiques
page 1
ELP 304 Cours 2
Les circuits combinatoires
„ Définition
„ Les
opérateurs de transcodage
• les codeurs
• les décodeurs
• les transcodeurs
„ Les opérateurs d’aiguillage
• les multiplexeurs
• les démultiplexeurs
„ Les opérateurs de comparaison
„ Les opérateurs arithmétiques
• les additionneurs
• les multiplieurs
• les unités arithmétiques et logiques
page 2
ELP 304 Cours 2
Définition
Exemple de modélisation d'un circuit combinatoire
x1
S = x1 ⋅ x2 + x3
x2
Δ = 2 nanosecondes
x3
Un circuit combinatoire est
une mise en œuvre matérielle
d'une fonction combinatoire
Un circuit combinatoire a
des caractéristiques
temporelles
qui dépendent
de la technologie employée
page 3
ELP 304 Cours 2
x1
x2
x3
S
2 ns
S
Définition
Circuits combinatoires versus Circuits séquentiels
‰
Circuits combinatoires :
¾ C’est l’absence de mémoire
qui caractérise les circuits
combinatoires.
¾ Les sorties sont une fonction
combinatoire des entrées:
S=f(E).
¾ A une configuration des
entrées correspond une
configuration unique des
sorties.
page 4
ELP 304 Cours 2
‰ Circuits séquentiels :
¾ Les sorties sont fonctions des
entrées mais aussi de l’état
interne du système.
¾ A une configuration des
entrées peut correspondre
plusieurs configurations des
sorties.
¾ L’état interne du système est
une trace du passé du
système numérique.
Définition
„
Circuits combinatoires :
Circuits Séquentiels :
• C’est l’absence de mémoire
qui caractérise les circuits
combinatoires.
• Les sorties sont fonctions
des entrées mais aussi de
l’état interne du système.
• Les sorties sont une
fonction combinatoire des
entrées: S=f(E).
• A une configuration des
entrées peut correspondre
plusieurs configurations des
sorties.
• A une configuration des
entrées correspond une
configuration unique des
sorties.
page 5
„
ELP 304 Cours 2
• L’état interne du système
est une trace du passé du
système numérique.
Les circuits combinatoires
„ Définition
„ Les
opérateurs de transcodage
• les codeurs
• les décodeurs
• les transcodeurs
„ Les opérateurs d’aiguillage
• les multiplexeurs
• les démultiplexeurs
„ Les opérateurs de comparaison
„ Les opérateurs arithmétiques
• les additionneurs
• les multiplieurs
• les unités arithmétiques et logiques
page 6
ELP 304 Cours 2
Les opérateurs de transcodage : définition
Un opérateur de transcodage est un circuit transformant une
information présente en entrée sous une forme donnée (code 1) en la
même information en sortie mais sous une autre forme (code 2)
Les trois types de transcodeurs
n
n1
n
≤ 2n
n2
≤ 2n
Codeur (encodeur)
page 7
ELP 304 Cours 2
Décodeur
Transcodeur
Les opérateurs de transcodage :
les codeurs
Classiquement pour un codeur, lorsqu'une entrée (sur les N) est
activée, les sorties affichent le numéro de l’entrée active dans le
code binaire choisi (sur n bits), tel que:
2 n −1 < N ≤ 2 n
Exemple: codeur décimal vers binaire (10 entrées vers 4 sorties)
E0
E1
E2
entrées
codeur
A0
A1
A2
A3
sorties
E9
Ex: si E5=1 et Ei=0 pour toutes les autres entrées, alors les sorties
affichent (A3,A2,A1,A0)=(0,1,0,1).
page 8
ELP 304 Cours 2
Les opérateurs de transcodage :
les codeurs prioritaires
Ce type de codeur fixe un ordre de priorité entre les entrées.
Pour un codage en binaire pur, le codeur prioritaire donne en
principe la priorité à l’entrée de poids le plus élevé.
Exemple: codeur prioritaire (4 entrées vers 2 sorties)
E3
E2
E1
E0
A1
A0
1
X
X
X
1
1
0
1
X
X
1
0
0
0
1
X
0
1
E2
0
0
0
1
0
0
E3
Équations de sortie :
A0 = E3 + E2.E1 A1 = E3 + E2
page 9
ELP 304 Cours 2
E0
A0
E1
entrées
encodeur
prioritaire
A1
sorties
Les opérateurs de transcodage :
les décodeurs
Les décodeurs:
¾
¾
¾
¾
n entrées de données
N sorties avec N ≤ 2 n
Une seule sortie est active à la fois
Quand un nombre est codé en
binaire pur à l’entrée, c’est la sortie
correspondante qui est activée.
An-1
0
1
2
3
A0
n
2 -1
Exemple de décodeur binaire "1 parmi 8"
Equations de sortie
s0
<e2,e1,e0>
s1
E .
3
.
s7
page 10
ELP 304 Cours 2
8
sorties
s0 = e2 e1 e0
s1 = e2 e1e0
s2 = e2 e1 e0
etc.
Les opérateurs de transcodage :
les décodeurs
Accroissement de capacité par association de circuits
Réaliser un décodeur "1 parmi 16" à l'aide de décodeurs "1 parmi 8"
y0 = c3 c2 c1 c0
y1 = c3 c2 c1c0
⋅⋅⋅
y7 = c3c2 c1c0
y8 = c3 c2 c1 c0
y9 = c3 c2 c1c0
⋅⋅⋅
y15 = c3c2 c1c0
page 11
Solution :
deux décodeurs traitent en
parallèle les bits c2, c1, c0.
Le bit c3 sélectionne les
sorties de celui qui doit
être actif
Schéma de
principe
<c2,c1,c0>
Va = entrée de validation
ELP 304
Cours
Vb
= S2 0 + S1 + …. + S7
c3
/s0
E /s1
va .
vb .
/s7
/y0
/y1
.
.
/y7
/s0
E /s1
va .
vb .
/s7
/y8
/y9
.
.
/y15
Les opérateurs de transcodage :
les transcodeurs
Exemple: le transcodeur BCD/7 segments
01
01
0
10
A
B
C
D
S0
S1
S2
S3
S4
S5
S6
Transcodeur
BCD / 7 segments
Il est souvent nécessaire de visualiser une information codée en binaire sur des
afficheurs (7 segments) => convertisseur BCD (Binary-Coded Decimal) / 7 segments
=> convertisseur binaire pur / 7 segments
page 12
ELP 304 Cours 2
Les opérateurs de transcodage :
les transcodeurs
Exemple: le transcodeur BCD/7 segments
Table
de
vérité
Code BCD
S0
S1
S6
S5
S2
S4
S3
page 13
7 segments
S6 S5 S4 S3 S2 S1 S0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
ELP 304 Cours 2
Les circuits combinatoires
„ Définition
„ Les
opérateurs de transcodage
• les codeurs
• les décodeurs
• les transcodeurs
„ Les opérateurs d’aiguillage
• les multiplexeurs
• les démultiplexeurs
„ Les opérateurs de comparaison
„ Les opérateurs arithmétiques
• les additionneurs
• les multiplieurs
• les unités arithmétiques et logiques
page 14
ELP 304 Cours 2
Les opérateurs d'aiguillage : définition
Démultiplexeur
Multiplexeur
n
2
entrées
sortie
n
adresse
rôle : aiguiller un signal d’entrée
parmi 2n vers une sortie à l’aide
de n bits d’adresse
page 15
ELP 304 Cours 2
2n
sorties
entrée
n
adresse
rôle : aiguiller un signal d’entrée
vers une des 2n sorties en
fonction de l’état des bits
d’adresse
Les opérateurs d'aiguillage :
multiplexeurs
Applications des multiplexeurs
„
„
Conversion parallèle/série : aiguiller les informations
présentes en parallèle à l’entrée du MUX en des informations
de type série en sortie ; toutes les combinaisons d’adresses
sont énumérées une par une sur les entrées de sélection.
Réalisation de fonctions logiques : toute fonction logique de
N variables est réalisable avec un multiplexeur de 2N vers 1
VDD
A B F(A,B)
E0
0 0
1
E1
0 1
0
E2
1 0
1
E3
1 1
1
F
VDD
A
page 16
ELP 304 Cours 2
B
Les opérateurs d'aiguillage :
démultiplexeurs
Les démultiplexeurs réalisent la fonction inverse du multiplexeur :
• 1 entrée de données
• n entrées de sélection
•N
=2n
sorties
E
1 parmi 22
S1 S0
Applications: conversion d’une
information de type série en une
information de type parallèle.
page 17
ELP 304 Cours 2
Q0
Q1
Q2
Q3
Q0 = E si (S1S0)2=0
0 sinon
Q1 = E si (S1S0)2=1
0 sinon
Les circuits combinatoires
„ Définition
„ Les
opérateurs de transcodage
• les codeurs
• les décodeurs
• les transcodeurs
„ Les opérateurs d’aiguillage
• les multiplexeurs
• les démultiplexeurs
„ Les opérateurs de comparaison
„ Les opérateurs arithmétiques
• les additionneurs
• les multiplieurs
• les unités arithmétiques et logiques
page 18
ELP 304 Cours 2
Les opérateurs de comparaison : définition
Comparateur élémentaire :
opérateur capable de détecter
l’égalité et de comparer deux
nombres.
Table de vérité
A
B
E
(A=B)
S
(A>B)
I
(A<B)
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
A
S = 1 si (AA>> BB) = AB
B
A=
= B) = A ⊕ B
E = 1 si(A
( A<<BB) = AB
I = 1 si A
page 19
ELP 304 Cours 2
Les opérateurs de comparaison :
comparateur complet
Exemple : comparer 2 mots de n=4 bits
9 E : A=B si A3=B3 et A2=B2 et A1=B1 et A0=B0 (égalité)
9 S : A>B si A3>B3 ou (A3=B3 et A2>B2) ou (A3=B3 et A2=B2 et
A1>B1) ou (A3=B3 et A2=B2 et A1=B1 et A0>B0)
9 I : A<B si I = E + S
Réalisation possible à partir de 4
comparateurs de 2 bits ou utilisation
d’un comparateur modulaire
A
B
Les entrées (Ain > Bin), (Ain=Bin) et (Ain<Bin)
permettent de cascader les comparateurs
page 20
ELP 304 Cours 2
A3
A2
A1
A0
comparateur
x x 85
B3
B2
B1
B0
A > B in
A = B in
A < B in
A > B out
A = B o ut
A < B out
sorties
Les circuits combinatoires
„ Définition
„ Les
opérateurs de transcodage
• les codeurs
• les décodeurs
• les transcodeurs
„ Les opérateurs d’aiguillage
• les multiplexeurs
• les démultiplexeurs
„ Les opérateurs de comparaison
„ Les opérateurs arithmétiques
• les additionneurs
• les multiplieurs
• les unités arithmétiques et logiques
page 21
ELP 304 Cours 2
Les opérateurs arithmétiques :
les additionneurs
Le demi additionneur prend en entrée 2 bits Ak et Bk
et délivre en sortie leur somme Sk et la retenue (ou carry) Ck
Bk
Ak
Bk
Ck
Sk
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
&
Ck
Ck = Ak .Bk
page 22
ELP 304 Cours 2
Ak
=1
Sk
S k = Ak ⊕ Bk
Les opérateurs arithmétiques :
les additionneurs
L’additionneur complet permet de prendre en
Équations logiques de
compte une retenue entrante Ck −1
retenue
entrante
retenue
sortante
somme
Ak
Bk
Ck-1
Ck
Sk
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
page 23
ELP 304 Cours 2
l’additionneur complet:
S k = Ak ⊕ Bk ⊕ Ck −1
Ck = Ak .Bk + ( Ak ⊕ Bk )Ck −1
Bk
Ak
Ck-1
1/2 add.
Ak.Bk
>=1
Ck
Ak ⊕ Bk
1/2 add.
(Ak ⊕ Bk ).Ck-1
Sk=Ak⊕Bk ⊕Ck-1
Les opérateurs arithmétiques : les
additionneurs
Additionneurs à retenue propagée (ripple-carry adder)
Ak
Bk
S k = Ak ⊕ Bk ⊕ Ck −1
Ck = Ak Bk + ( Ak ⊕ Bk ) Ck −1
Ck-1
'0'
S0
Problème : les tps de propagation s’ajoutent
page 24
ELP 304 Cours 2
1/2 add.
A
Cout
B
S
Cin
S1
1/2 add.
A0
B0
A
Cout
B
S
Cin
S2
>=1
A
Cout
B
S
Cin
A2
B2
A1
B1
A
Cout
B
S
Cin
Ck
Sk
Les opérateurs arithmétiques :
les additionneurs
Additionneurs à retenue anticipée (carry look-ahead adder)
Principe : le calcul des retenues est fait directement à partir des entrées
avantage : calculs en parallèle Î gain en rapidité
inconvénient : plus de portes logiques Î coût en complexité matérielle
Ck = Ak Bk + ( Ak ⊕ Bk )Ck −1
Calcul de la retenue anticipée :
Ck = Gk + Pk Ck −1 (1)
avec
Gk = Ak Bk : terme de génération
Pk = Ak ⊕ Bk : terme de propagation
Puis, développement de (1) par récurrence
page 25
ELP 304 Cours 2
Les opérateurs arithmétiques :
les additionneurs
Additionneurs à retenue anticipée (carry look-ahead adder)
C4
C0
C3
C2
C1
C4 = G3 + P3(G2 + P2(G1 + P1(G0 + C0P0)))
page 26
ELP 304 Cours 2
Les opérateurs arithmétiques :
les multiplieurs
Multiplication binaire
Porte AND
+
Additionneur
+
P7
page 27
+
A3
A2
A1
A0
B3
B2
B1
B0
A3B0 A2B0 A1B0 A0B0
A3b1 A2B1 A1B1 A0B1
A3B2 A2B2 A1B2 A0B2
A3B3 A2B3 A1B3 A0B3
P6
P5
ELP 304 Cours 2
P4
P3
P2
P1
P0
Les opérateurs arithmétiques :
les multiplieurs
B0
A3
A2
A1
A0
Solution combinatoire
B1
A3
A2
A1
A0
0
b3
Réseau de portes ET
et
d’additionneurs binaires
a3
r3
s3
B2
A3
b3
s3
B3
A3
b3
r3
page 28
A2
a3
r3
b2
a2
b 1 a1
Additionneur 4 bits
s2
s1
s0
s3
a0
r-1
A1
0
A0
b2
a2
b1
a1
Additionneur 4 bits
s2
s1
s0
A2
a3
b0
b0
a0
r-1
A1
0
A0
b2
a2
b1
a1
Additionneur 4 bits
s2
s1
s0
b0
a0
r-1
0
ELP 304 Cours 2
P7
P6
P5
P4
P3
P2 P1 P0
Les opérateurs arithmétiques :
les Unités Arithmétiques et Logiques (UALs)
composants capables d’effectuer un ensemble d’opérations
arithmétiques. Nous pouvons distinguer 4 types de fonction
¾ opérations logiques de base
¾ comparaison et décalage
¾ addition et soustraction
¾ multiplication et division
opérande
code
opérateur
opérande
UAL
résultat
page 29
ELP 304 Cours 2
Les n entrées de
sélection ou de
commande
permettent de
sélectionner une
opération parmi 2n.
Les opérateurs arithmétiques :
les Unités Arithmétiques et Logiques (UALs)
Exemple : le circuit xx382
•Les entrées de commande S2 S1 S0
permettent de sélectionner une opération
parmi 8.
S2 S1S0
Cn
‹Opérations
arithmétiques: A plus B, A
A3... A0
moins B, B moins A
‹Opérations
logiques: XOR(A,B), A ou
B, A et B
‹Mise
Cn+4
•Opérandes: A et B sur 4 bits.
•OVR (Overflow): indicateur de
dépassement de capacité.
page 30
ELP 304 Cours 2
F3 …F0
OVR
à 0 (Clear), Mise à 1 (Preset)
•Cn : retenue entrante; Cn+4 : retenue
sortante
ALU
382
B3... B0