2. Demi Additionneur

Transcription

2. Demi Additionneur
1. Les Circuits combinatoires
Chapitre 4 : Les circuits combinatoires
• Un circuit combinatoire est un circuit numérique dont les
sorties dépendent uniquement des entrées.
• Si=F(Ei)
• Si=F(E1,E2,….,En)
Objectifs
• Apprendre la structure de quelques circuits
combinatoires souvent utilisés ( demi additionneur ,
additionneur complet,……..).
S1
E1
S2
Circuit
combinatoire
E2
..
..
Sm
En
• Apprendre comment utiliser des circuits combinatoires
pour concevoir d’autres circuits plus complexes.
Schéma Bloc
• C’est possible d’utiliser des circuits combinatoires pour
réaliser d’autres circuits plus complexes.
1
2
Exemple de Circuits combinatoires
1.
2.
3.
4.
5.
6.
7.
2. Demi Additionneur
•
Demi Additionneur
Additionneur complet
Comparateur
Multiplexeur
Demultiplexeur
Encodeur
Décodeur
•
Le demi additionneur est un circuit combinatoire qui permet de
réaliser la somme arithmétique de deux nombres A et B chacun sur
un bit.
A la sotie on va avoir la somme S et la retenu R ( Carry).
A
B
DA
S
R
Pour trouver la structure ( le schéma ) de ce circuit on doit en
premier dresser sa table de vérité
3
4
R = A.B
S = A⊕ B
• En binaire l’addition sur un
seul bit se fait de la manière
suivante:
•La table de vérité associée :
De la table de vérité on trouve :
A B
R S
0
0
0
0
R = A.B
0
1
0
1
1
0
0
1
S = A.B + A.B = A ⊕ B
1
1
1
0
5
6
1
3.1 Additionneur complet 1 bit
3. L’additionneur complet
• L’additionneur complet un bit possède 3 entrées :
– ai : le premier nombre sur un bit.
– bi : le deuxième nombre sur un bit.
– ri-1 : le retenue entrante sur un bit.
• Il possède deux sorties :
– Si : la somme
– Ri la retenue sortante
• En binaire lorsque on fait une addition il faut
tenir en compte de la retenue entrante.
r4
+
r4
r3
a4
b4
s4
r2
a3
b3
r1
a2
b2
s3
s2
r0 = 0
a1
b1
ri-1
ai
bi
+
s1
ai
Si
Additionneur
complet
bi
ri-1
Ri
r i si
7
Table de vérité d’un additionneur
complet sur 1 bit
8
Si on veut simplifier les équations on obtient :
ai
bi
ri-1
ri
si
0
0
0
0
0
S i = A i . B i . R i −1 + A i . B i . R i −1 + A i . B i . R i −1 + A i . B i . R i −1
0
0
1
0
1
0
1
0
0
1
S i = A i .( B i . R i − 1 + B i . R i − 1 ) + A i .( B i . R i − 1 + B i . R i − 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
S i = A i ( B i ⊕ R i − 1 ) + A i .( B i ⊕ R i − 1 )
S i = A i ⊕ B i ⊕ R i −1
R i = A i B i R i −1 + A i B i R i −1 + A i B i R i −1 + A i B i R i −1
R i = R i − 1 .( A i . B i + A i . B i ) + A i B i ( R i − 1 + i R i − 1 )
S i = Ai .Bi .Ri −1 + Ai .Bi .R i −1 + Ai .B i .R i −1 + Ai .Bi .Ri −1
R i = R i − 1 .( A i ⊕ B i ) + A i B i
Ri = Ai Bi Ri −1 + Ai B i Ri −1 + Ai Bi R i −1 + Ai Bi Ri −1
9
3.3 Schéma d’un additionneur complet
R
i
= A i .B i + R
i −1
Si = A i ⊕ Bi ⊕ R
.(B
i
10
3.4 En utilisant des Demi Additionneurs
R i = A i .B i + R i − 1 .(B i ⊕ A i )
⊕ A i)
S i = A i ⊕ B i ⊕ R i −1
i −1
Si on pose
X = A i ⊕ B i et Y = A i B i
On obtient :
R i = Y + R i −1 .X
S i = X ⊕ R i −1
et si on pose Z = X ⊕ R i − 1 et T = R i − 1 .X
On obtient :
Ri = Y +T
Si = Z
11
•On remarque que X et Y sont les sorties d’un demi additionneur
ayant comme entrées A et B
•On remarque que Z et T sont les sorties d’un demi additionneur
ayant comme entrées X et Ri-1
12
2
X = A i ⊕ Bi
3.4 Additionneur sur 4 bits
Y = A iB i
Z = X ⊕ R i −1
•
T = R i − 1 .X
Ri = Y +T
En plus il tient en compte de la retenu entrante
Si = Z
AI
Demi Add
RI-1
SI
En sortie on va avoir le résultat sur 4 bits ainsi que la retenu ( 5 bits
en sortie )
•
Donc au total le circuit possède 9 entrées et 5 sorties.
•
Avec 9 entrées on a 29=512 combinaisons !!!!!! Comment faire pour
représenter la table de vérité ?????
•
Il faut trouver une solution plus facile et plus efficace pour concevoir
ce circuit ?
13
14
•Lorsque on fait l’addition en binaire , on additionne bit par bit en
commençant à partir du poids fiable et à chaque fois on propage la
retenue sortante au bit du rang supérieur.
L’addition sur un bit peut se faire par un additionneur complet sur 1 bits.
r3
a4
b4
•
RI
Demi Add
BI
+
Un additionneur sur 4 bits est un circuit qui permet de faire l’addition
de deux nombres A et B de 4 bits chacun
– A(a3a2a1a0)
– B(b3b2b1b0)
r2
a3
b3
r1
a2
b2
3.4.1 Additionneur 4 bits ( schéma )
r0 = 0
a1
b1
r 4 s4 r 3 s3 r 2 s2 r 1 s1
r4
s4
s3
s2
s1
Résultat final
15
16
Exercice
4. Le Comparateur
• Soit une information binaire sur 5 bits ( i4i3i2i1i0). Donner
le circuit qui permet de calculer le nombre de 1 dans
l’information en entrée en utilisant uniquement des
additionneurs complets sur 1 bit ?
• Exemple :
Si on a en entrée l’information ( i4i3i2i1i0) =( 10110) alors en
sortie on obtient la valeur 3 en binaire ( 011) puisque il
existe 3 bits qui sont à 1 dans l’information en entrée .
17
•
•
•
C’est un circuit combinatoire qui permet de
comparer entre deux nombres binaire A et B.
Il possède 2 entrées :
– A : sur un bit
– B : sur un bit
Il possède 3 sorties
– fe : égalité ( A=B)
– fi : inférieur ( A < B)
– fs : supérieur (A > B)
fi
A
B
Comparateur
1 bit
fe
fs
18
3
Schéma d’un comparateur dur un bit
4.1 Comparateur sur un bit
fs = A.B
fi = AB
A B
fs fe fi
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
fe = fs + fi
fs = A.B
fi = AB
fe = AB + AB = A ⊕ B = fs + fi
19
4.2 Comparateur 2 bits
20
A2
A1
B2
B1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
3. A<B si
1
0
1
1
0
0
1
A2 < B2 ou (A2=B2 et A1<B1)
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
022
1. A=B si
A2=B2 et A1=B1
• Il permet de faire la comparaison entre deux nombres A
(a2a1) et B(b2b1) chacun sur deux bits.
fe = ( A2 ⊕ B 2).( A1 ⊕ B1)
2. A>B si
A2 > B2 ou (A2=B2 et A1>B1)
fs = A2.B 2 + ( A2 ⊕ B 2).( A1.B1)
A1
A2
B1
fi
Comparateur
2 bits
fe
fs
B2
21
4.2.2 comparateur 2 bits avec des comparateurs 1 bit
fi = A2.B 2 + ( A2 ⊕ B 2).( A1.B1)
fs fe fi
1. A=B si
A2=B2 et A1=B1
•C’est possible de réaliser un comparateur 2 bits en utilisant des
comparateurs 1 bit et des portes logiques.
fe = ( A2 ⊕ B2 ).( A1 ⊕ B1 ) = fe2.fe1
•Il faut utiliser un comparateur pour comparer les bits du poids faible
et un autre pour comparer les bits du poids fort.
2. A>B si
•Il faut combiner entre les sorties des deux comparateurs utilisés
pour réaliser les sorties du comparateur final.
a2 b2
a1
A2 > B2 ou (A2=B2 et A1>B1)
fs = A2. B2 + ( A2 ⊕ B2 ).(A1. B1 ) = fs2 + fe2.fs1
b1
3. A<B si
Comparateur 1 bit
fs2 fe2 fi2
A2 < B2 ou (A2=B2 et A1<B1)
Comparateur 1 bit
fs1 fe1 fi1
fi = A2.B2 + ( A2 ⊕ B2).( A1.B1) = fi2 + fe2.fi1
23
24
4
4.2.3 Comparateur avec des entrées de
mise en cascade
• On remarque que :
– Si A2 >B2 alors A > B
– Si A2<B2 alors A < B
• Par contre si A2=B2 alors il faut tenir en compte du
résultat de la comparaison des bits du poids faible.
• Pour cela on rajoute au comparateur des entrées qui
nous indiquent le résultat de la comparaison précédente.
• Ces entrées sont appelées des entrées de mise en
cascade.
25
A2
B2 Es Eg Ei
fs fe fs
A2>B2
X
X
X
1
0
0
A2<B2
X
X
X
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
A2
B2
Comp
A2=B1
fs
26
fe
fi
Es ( >)
Eg ( =)
Ei ( <)
fs= (A2>B2) ou (A2=B2).Es
fi= ( A2<B2) ou (A2=B2).Ei
fe=(A2=B2).Eg
27
28
5. Le Multiplexeur
Exercice
• Réaliser un comparateur 4 bits en utilisant
des comparateurs 2 bits avec des entrées
de mise en cascade?
• Un multiplexeur est un circuit combinatoire qui permet de
sélectionner une information (1 bit) parmi 2n valeurs en
entrée.
• Il possède :
– 2n entrées d’information
– Une seule sortie
– N entrées de sélection ( commandes)
Em
C0
C1
Cn-1
.........
Mux
2n
E3 E1 E0
1
V
S
29
30
5
5.1 Multiplexeur 2 1
V
C0
S
0
X
0
5.2 Multiplexeur 4 1
C1
C0
S
0
0
E0
0
1
E1
1
0
E2
1
1
E3
E3
C0
C1
E1 E0
1
0
C0
E0
Mux 2 1
1
1
V
E1
E2
E1 E0
Mux 4 1
S
S
S = C 1.C 0.( E 0 ) + C 1.C 0 .( E 1) + C 1 .C 0.( E 2 ) + C 1 .C 0 .( E 3)
S = V.(C0 .E0 + C0 .E1)
31
Exemple : Réalisation d’un additionneur complet
avec des multiplexeurs 8
1
5.3 Multiplexeur 8
1
C2
C1
C0
S
0
0
0
E0
0
0
1
E1
0
1
0
E2
0
1
1
E3
1
1
1
1
0
0
1
1
0
1
0
1
E4
32
•Nous avons besoin d’utiliser deux multiplexeurs :Le premier pour
réaliser la fonction de la somme et l’autres pour donner la retenue.
E7 E6 E5 E4 E3
C0
C1
E2
E1 E0
ai
Mux 8 1
C2
E5
E6
E7
S = C 2.C1.C 0.( E 0) + C 2.C1.C 0( E1) + C 2.C1.C 0( E 2) + C 2.C1.C 0( E 3) +
C 2.C1.C 0( E 4) + C 2.C1.C 0( E 5) + C 2.C1.C 0( E 6) + C 2.C1.C 0( E 7)
33
bi
ri-1
ri
ai
bi
ri-1
Si
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
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
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
34
Réalisation de la fonction de la retenue
Réalisation de la fonction de la somme
Si = Ai .Bi .R i −1 (0) + Ai .Bi .Ri−1 (1) + Ai .Bi .Ri −1 (1) + Ai .Bi .Ri −1 (0) + Ai .B i .Ri −1 (1) + Ai .Bi .Ri −1 (0)
Ri = Ai Bi Ri−1.(0) + Ai Bi Ri−1.(0) + Ai Bi Ri−1.(0) + Ai Bi Ri−1.(1) + Ai Bi Ri−1.(0) + Ai Bi Ri−1.(1)
+ Ai .Bi .R i−1 (0) + Ai .Bi .Ri −1 (1)
+ Ai Bi Ri−1.(1) + Ai Bi Ri−1.(1)
S = C 2.C1.C 0.( E 0 ) + C 2.C1.C 0 ( E1) + C 2.C1 .C 0 ( E 2 ) + C 2.C1 .C 0 ( E 3) +
S = C 2.C 1.C 0.( E 0 ) + C 2.C 1.C 0 ( E 1) + C 2.C 1 .C 0 ( E 2 ) + C 2.C 1 .C 0 ( E 3) +
C 2 .C1.C 0 ( E 4 ) + C 2 .C1.C 0 ( E 5) + C 2 .C1 .C 0 ( E 6 ) + C 2 .C1 .C 0 ( E 7 )
C 2 .C 1.C 0 ( E 4 ) + C 2 .C 1.C 0 ( E 5 ) + C 2 .C 1 .C 0 ( E 6 ) + C 2 .C 1 .C 0 ( E 7 )
On pose :
C2=Ai
C1=Bi
C0=Ri-1
E0=0, E1=1, E2=1, E3=0, E4=1, E5=0, E6=0, E7=1
On pose :
C2=Ai
C1=Bi
C0=Ri-1
E0=0, E1=0, E2=0, E3=1, E4=0, E5=1, E6=1, E7=1
35
36
6
Exercice
Réalisation d’un additionneur complet avec des
multiplexeurs 8
1
‘1’
‘1’
‘0’
ri-1
‘0’
E7 E6 E5 E4 E3
bi
C0
C1
ai
C2
E2
E1 E0
E7 E6 E5 E4 E3
ri-1
Mux 8 1
bi
C0
C1
ai
C2
E2
• Réaliser le circuit qui permet de trouver le
maximum entre deux nombres A et B sur un Bit
en utilisant le minimum de portes logiques et de
circuits combinatoires?
E1 E0
Mux 8 1
Ri
Si
37
38
6. Demultiplexeurs
6.1 Demultiplexeur 14
• Il joue le rôle inverse d’un multiplexeurs, il permet de
faire passer une information dans l’une des sorties selon
les valeurs des entrées de commandes.
• Il possède :
– une seule entrée
– 2n sorties
– N entrées de sélection ( commandes)
C1
C0
S3 S2
S1
S0
0
0
0
0
0
i
0
1
0
0
i
0
1
0
0
i
0
0
1
1
i
0
0
0
S 0 = C 1.C 0.( I )
S 1 = C 1.C 0 .( I )
S 2 = C 1 .C 0.( I )
S 3 = C 1 .C 0 .( I )
I
I
C0
C1
C0
C1
DeMux 1 4
S3
S2
S1
DeMux 1 4
S3
S0
S2
39
• C’est un circuit combinatoire qui est constitué de :
– N : entrées de données
– 2n sorties
– Pour chaque combinaison en entrée une seule sortie
est active à la fois
S0
S1
S2
S3
S4
S5
S6
S7
C
Un décodeur 3
8
V
S0
40
Décodeur 24
7. Le décodeur binaire
A
B
S1
41
V
A
B
S0 S1
S2
S3
0
X
X
0
0
0
0
1
0
0
1
0
0
0
S0
A
S1
B
S2
S3
V
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
S 0 = ( A.B ).V
S 1 = ( A. B ).V
S 2 = ( A. B ).V
S 3 = ( A.B ).V
42
7
Décodeur 3
8
S0
S1
S2
S3
S4
S5
S6
S7
A
B
C
Réalisation d’un additionneur complet
avec des décodeurs binaire 3
8
S i = A i .B i .R i −1 + A i .B i .R i −1 + Ai .B i . R i −1 + Ai .B i .R i −1
A
B
C
S0
S1
S2
S3
S4
S5
S6
S7
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
S
0
= A . B .C
0
1
0
0
0
1
0
0
0
0
0
S
1
= A . B .C
On pose A=Ai , B =Bi , C=Ri-1
0
1
1
0
0
0
1
0
0
0
0
S
2
= A . B .C
S 0 = A.B.C , S 1 = A.B.C , S 2 = A.B.C , S 3 = A.B.C ,
1
0
0
0
0
0
0
1
0
0
0
S
3
= A . B .C
0
1
0
0
0
0
0
1
0
0
S
4
= A . B .C
S 4 = A.B.C , S 5 = A.B.C , S 6 = A.B.C , S 7 = A.B.C
1
1
1
0
0
0
0
0
0
0
1
0
S
5
= A . B .C
1
1
1
0
0
0
0
0
0
0
1
S
6
= A . B .C
S
7
= A . B .C
0 0
1
0
1
0
1 0
0
1
1
1
R i = A i B i R i −1 + A i B i R i −1 + A i B i R i −1 . + A i B i R i −1
V
0 1
1
1
0 1
1 1
0
1
1
1
Ri = S 3 + S 5 + S 6 + S 7
43
S i = S1 + S 2 + S 4 + S 7
44
L’encodeur binaire ( 4
2)
8. L’encodeur binaire
• Il joue le rôle inverse d’un décodeur
– Il possède 2n entrées
– N sortie
– Pour chaque combinaison en entrée on va avoir sont
numéro ( en binaire) à la sortie.
I0
I1
I2
I3
x
y
0
0
0
0
0
0
1
x
x
x
0
0
0
1
x
x
0
1
0
0
1
x
1
0
0
0
0
1
1
1
I0
I1
I2
x
y
I3
I0
Encodeur 4
2
I1
I2
x
X = I 0.I1.( I 2 + I 3)
y
I3
Y = I 0.( I1 + .I 2.I 3)
45
46
Exemple : Transcodeur BCD/EXESS3
9. Le transcodeur
• C’est un circuit combinatoire qui permet de transformer
un code X ( sur n bits) en entrée en un code Y ( sur m
bits) en sortie.
A
B
C
D
X
Y
Z
T
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
E1
S1
1
0
0
0
1
0
1
1
E2
S2
1
0
0
1
1
1
0
0
1
0
1
0
x
x
x
x
1
0
1
1
x
x
x
x
1
1
0
0
x
x
x
x
1
1
0
1
x
x
x
x
1
1
1
0
x
x
x
x
1
1
1
1
x
x
x
x
..
En
transcodeur
..
Sm
47
48
8