TD2
Logique combinatoire
I – Additionneur 2 bits
●
somme des deux variables A et B
●
table de vérité du demi-additionneur :
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
I – Additionneur 2 bits
●
additionneur complet : somme des 2 bits Aet B et de la retenue R de l'étage précédent
●
table de vérité
A B R S C
I – Additionneur 2 bits
●
additionneur complet : somme des 2 bits Aet B et de la retenue R de l'étage précédent
●
table de vérité
A B R S C
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
S = A BR + A BR + A BR + A BR
C A BR A BR A BR ABR
I – Additionneur 2 bits
●
simplification de C
C = A B + A R + B R
AB
R 00 01 11 10
0 1
1 1 1 1
I - Additionneur 2 bit
●
Montrer que l'on a C= A .B+ A .R + B. R
C = A.B + A.R +B.R C = A.B + A.R +B.R
= A.B. A.R .B.R
= ( A + B ) . ( A +R ) . ( B + R )
= ( A + A .R + B. A +B.R ) . (B + R )
= A .B + A .R + A .R .B + A .R +B. A + B. A . R +B.R + B.R
= A .B + A .R +B.R + A . B.R
= A .B + A .R +B.R (1+ A )
= A .B + A .R +B.R
I - Additionneur 2 bit
●
Montrer que l'on peut écrire S= A ⊕ B ⊕ R
S = A .B .R + A .B.R + A .B. R + A .B .R
= ( A B + AB) R +( A B + A B) R
= ( A ⊕ B ) R +( A ⊕ B) R
= A ⊕ B ⊕ R
I - Additionneur 2 bit
●
Vérifier que le circuit suivant correspond bien à un tel additionneur
S
2S
1S
2= A.B. + B.R + A.R C= A.B + B.R + A.R
S
1=R. C + B .C + A C+ A.B.R
=( A +B + R ) .C + A.B.R S = ( A + B+ R ) .C + A.B.R
= ( A + B+ R ) . ( A B +B R + A R )+ ABR
= A B R + A BR + A B R + ABR
II - Circuit à logique majoritaire
●
On veut réaliser un circuit à logique majoritaire sur 3
variables A, B et C : la sortie Y du circuit est à 1 si deux ou trois entrées sont à 1. Dans tous les autres cas, elle est à 0.
●
Ecrire la table de vérité correspondante
C B A Y
II - Circuit à logique majoritaire
●
On veut réaliser un circuit à logique majoritaire sur 3
variables A, B et C : la sortie Y du circuit est à 1 si deux ou trois entrées sont à 1. Dans tous les autres cas, elle est à 0.
●
Ecrire la table de vérité correspondante
Y = AB C + A B C + A BC + ABC
C B A Y
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
II - Circuit à logique majoritaire
●
Simplifier Y et donner en un diagramme logique
●
On utilise un tableau de Karnaugh pour simplifier l'expression
Y = A.B+ A.C + B.C
A B C
Y
AB
C 00 01 11 10
0 0 0 1 0
1 0 1 1 1
Circuit à logique majoritaire
●
On veut réaliser un circuit à logique majoritaire sur 4 variables A
3, A
2, A
1et A
0: la sortie Y du circuit est à 1 si
trois ou quatre entrées sont à 1. Dans tous les autres cas,
elle est à 0
Circuit à logique majoritaire
●
Table de vérité A
3
A
2A
1A
0Y
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1
Y = A
3A
2A
1A
0+ A
3A
2A
1A
0+ A
3A
2A
1A
0+ A
3A
2A
1A
0+ A
3A
2A
1A
0Circuit à logique majoritaire
●
implémentation à l'aide d'un multiplexeur
0 1 2 3 4 5 6 78 9 10 11 12 13 14 15
Y
A
3A
2A
1A
0X
7X
11X
13X
14X
150 1
Y = A
3A
2A
1A
0+ A
3A
2A
1A
0+ A
3A
2A
1A
0+ A
3A
2A
1A
0+ A
3A
2A
1A
0Circuit à logique majoritaire
●
comment implémenter la fonction avec un multiplexeur 8 voies ?
= A
2A
1A
0+ ( A
2A
1A
0+ A
2A
1A
0+ A
2A
1A
0) A
30 1 2 3 4 5 6 7
Y
A
2A
1A
0X
7X
3X
5X
6A
30
1
Y = A
3A
2A
1A
0+ A
3A
2A
1A
0+ A
3A
2A
1A
0+ A
3A
2A
1A
0+ A
3A
2A
1A
0Transcodeur pour afficheur
●
Avec 7 segments on peut afficher les 16 chiffres hexadécimaux.
●
On souhaite réaliser un transcodeur permettant d'afficher ces chiffres à partir de leur représentation binaire : 4 bits
b0, b1, b2 et b3 correspondants aux symboles 0 à F
●
Les segments sont repérés de la manière suivante :
●
Par convention, un segment est allumé s'il est dans l'état 0 et éteint s'il est dans l'état 1
a g d c
b f
e
Transcodeur pour afficheur
●
écrire la table de vérité de ce transcodeur
b3 b2 b1 b0 g f e d c b a
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
A 1 0 1 0
B 1 0 1 1
C 1 1 0 0
D 1 1 0 1
E 1 1 1 0
Transcodeur pour afficheur
●
écrire la table de vérité de ce transcodeur
b3 b2 b1 b0 g f e d c b a
0 0 0 0 0 1
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
A 1 0 1 0
B 1 0 1 1
C 1 1 0 0
D 1 1 0 1
a g d c
b f
e
P. Pangaud Département d'Informatique TD Logique combinatoire 19
Transcodeur pour afficheur
●
écrire la table de vérité de ce transcodeur
b3 b2 b1 b0 g f e d c b a
0 0 0 0 0 1
1 0 0 0 1 1 1 1 1 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
A 1 0 1 0
B 1 0 1 1
C 1 1 0 0
D 1 1 0 1
E 1 1 1 0
a g d c
b f
e a g d c
b f
e
Transcodeur pour afficheur
●
écrire la table de vérité de ce transcodeur
b3 b2 b1 b0 g f e d c b a
0 0 0 0 0 1
1 0 0 0 1 1 1 1 1 1
2 0 0 1 0 1 1
3 0 0 1 1 1 1
4 0 1 0 0 1 1 1
5 0 1 0 1 1 1
6 0 1 1 0 1
7 0 1 1 1 1 1 1 1
8 1 0 0 0
9 1 0 0 1 1
A 1 0 1 0 1
B 1 0 1 1 1 1
C 1 1 0 0 1 1 1
D 1 1 0 1 1 1
Transcodeur pour afficheur
●
donner les expressions logiques définissant les 7 sorties à partir des 4 entrées
●
on va écrire les tables de Karnaugh pour chacune des
tables de vérité donnant a, b, c, d, e, f et g
Transcodeur pour afficheur
●
segment a
a = b
3b
2b
1b
0+ b
3b
2b
1b
0+ b
3b
2b
1b
0+ b
3b
2b
1b
0b
3b
2b
1b
000 01 11 10
00 1
01 1 1
11 1
10
Transcodeur pour afficheur
●
segment b
b = b
3b
2b
0+ b
2b
1b
0+ b
3b
1b
0+ b
3b
2b
1b
0b
3b
2b
1b
000 01 11 10
00 1
01 1
11 1 1
10 1 1
Transcodeur pour afficheur
●
segment c
c=b
3b
2b
1+ b
3b
2b
0+ b
3b
2b
1b
0b
3b
2b
1b
000 01 11 10
00 1
01
11 1
10 1 1
Transcodeur pour afficheur
●
segment d
d = b
2b
1b
0+ b
3b
2b
1b
0+ b
3b
2b
1b
0+ b
3b
2b
1b
0b
3b
2b
1b
000 01 11 10
00 1
01 1
11 1 1
10 1
Transcodeur pour afficheur
●
segment e
e=b
3b
0+ b
2b
1b
0+ b
3b
2b
1b
3b
2b
1b
000 01 11 10
00 1
01 1 1 1
11 1 1
10
Transcodeur pour afficheur
●
segment f
f =b
3b
2b
0+ b
3b
2b
1+ b
3b
1b
0+ b
3b
2b
1b
0b
3b
2b
1b
000 01 11 10
00
01 1 1
11 1 1
10 1
Transcodeur pour afficheur
●
segment g
g=b
3b
2b
1+ b
3b
2b
1b
0+ b
3b
3b
1b
0b
3b
2b
1b
000 01 11 10
00 1 1
01 1
11 1
10
b3 b2 b1 b0
● ●
● ●
● ●
● ●
● ● ●
● ●
●
● ● ●
● ●
●
● ●
● ●
● ●
● ●
● ●
●
● ● ●
a
g f
e d c b
● ●
●
● ●
● ●
● ●
● ● ●
●
●
● ●
●
● ● ●
● ●
●
● ● ●
● ● ●
● ●
● ●
● ●
●
● ● ● ●
● ●
● ●
●
●
●
Transcodeur pour afficheur
●
Que se passerait-il si, au lieu de vouloir afficher les 16
chiffres hexadécimaux, on voulait n'afficher que les 10
chiffres décimaux ?
Transcodeur pour afficheur
●
Que se passerait- il si, au lieu de
vouloir afficher les 16 chiffres
hexadécimaux, on voulait n'afficher que les 10 chiffres décimaux ?
b3 b2 b1 b0 g f e d c b a
0 0 0 0 0 1
1 0 0 0 1 1 1 1 1 1
2 0 0 1 0 1 1
3 0 0 1 1 1 1
4 0 1 0 0 1 1 1
5 0 1 0 1 1 1
6 0 1 1 0 1
7 0 1 1 1 1 1 1 1
8 1 0 0 0
9 1 0 0 1 1
A 1 0 1 0 1
B 1 0 1 1 1 1
C 1 1 0 0 1 1 1
D 1 1 0 1 1 1
E 1 1 1 0 1 1
F 1 1 1 1 1 1 1
Transcodeur pour afficheur
●
Que se passerait- il si, au lieu de
vouloir afficher les 16 chiffres
hexadécimaux, on voulait n'afficher que les 10 chiffres décimaux ?
b3 b2 b1 b0 g f e d c b a
0 0 0 0 0 1
1 0 0 0 1 1 1 1 1 1
2 0 0 1 0 1 1
3 0 0 1 1 1 1
4 0 1 0 0 1 1 1
5 0 1 0 1 1 1
6 0 1 1 0 1
7 0 1 1 1 1 1 1 1
8 1 0 0 0
9 1 0 0 1 1
A 1 0 1 0 1
B 1 0 1 1 1 1
C 1 1 0 0 1 1 1
D 1 1 0 1 1 1
E 1 1 1 0 1 1
Transcodeur pour afficheur
●
Que se passerait- il si, au lieu de
vouloir afficher les 16 chiffres
hexadécimaux, on voulait n'afficher que les 10 chiffres décimaux ?
b3 b2 b1 b0 g f e d c b a
0 0 0 0 0 1
1 0 0 0 1 1 1 1 1 1
2 0 0 1 0 1 1
3 0 0 1 1 1 1
4 0 1 0 0 1 1 1
5 0 1 0 1 1 1
6 0 1 1 0 1
7 0 1 1 1 1 1 1 1
8 1 0 0 0
9 1 0 0 1 1
A 1 0 1 0 X X X X X X X
B 1 0 1 1 X X X X X X X
C 1 1 0 0 X X X X X X X
D 1 1 0 1 X X X X X X X
E 1 1 1 0 X X X X X X X
F 1 1 1 1 X X X X X X X
Transcodeur pour afficheur
●
segment a
a = b
3b
2b
1b
0+ b
3b
2b
1b
0+ b
3b
2b
1b
0+ b
3b
2b
1b
0b
3b
2b
1b
000 01 11 10
00 1
01 1 1
11 1
10
Transcodeur pour afficheur
●
segment a
au lieu de
a = b
3b
2b
1b
0+ b
2b
1b
0b
3b
2b
1b
000 01 11 10
00 1 x
01 1 x
11 x x
10 x x
a = b
3b
2b
1b
0+ b
3b
2b
1b
0+b
3b
2b
1b
0+ b
3b
2b
1b
0Transcodeur pour afficheur
●
segment e
au lieu de e = b
0+ b
2b
1b
3b
2b
1b
000 01 11 10
00 1 x
01 1 1 x 1
11 1 1 x x
10 x x
e=b
3b
0+ b
2b
1b
0+ b
3b
2b
1Circuit comparateur
●
but du circuit : comparer des nombres
●
codés sur 4 bits
●
codés sur des multiples de 4 bits
Circuit comparateur
A B A<B A=B A>B
Table de vérité de la comparaison de 2 bits
Circuit comparateur
A B A<B A=B A>B
0 0 0 1 0
0 1 1 0 0
1 0 0 0 1
1 1 0 1 0
( A < B) = A . B
( A =B ) = A . B+ A . B = A ⊕ B = ( A > B)+( A < B ) ( A > B) = A. B
Table de vérité de la comparaison de 2 bits
Circuit comparateur
A
B A>B
A=B
A<B
Circuit comparateur
●
Equations logiques pour comparer deux nombres A et B codés sur 4 bits (a
3, a
2, a
1, a
0) et (b
3, b
2, b
1, b
0)
●
(A=B)
●
(A>B)
●
(A<B)
≡ ( a
3= b
3) . ( a
2=b
2) . ( a
1=b
1) . ( a
0=b
0)
≡ ( a
3> b
3) +(a
3=b
3) . (a
2>b
2)
+(a
3=b
3) . ( a
2=b
2) . (a
1> b
1)
+(a
3=b
3) . ( a
2=b
2) . (a
1=b
1) . ( a
0> b
0)
≡ ( a
3< b
3) +(a
3=b
3) . ( a
2<b
2)
+(a
3=b
3) . ( a
2=b
2) . (a
1< b
1)
+(a
3=b
3) . ( a
2=b
2) . (a
1=b
1) . ( a
0< b
0)
Circuit comparateur
13
12
11
10
23
22
21
20
31
32 33 34 35 36 a
3b
3a
2b
2a
1b
1a
0b
0A
-1< B
-1A
-1= B
-1A
-1> B
-1A<B
A=B
A>B
13
12
11
10
23
22
21
20
31
32 33 34 35 36 a
3b
3a
2b
2a
1b
1a
0b
0A
-1< B
-1A
-1= B
-1A
-1> B
-1A<B A=B A>B
Circuit comparateur
S
1k=a
k+ b
kS
2k=( a
k+b
k) .b
k+(a
k+ b
k) . a
k= a
k⊕ b
k13
12
11
10
23
22
21
20
31
32 33 34 35 36 a
3b
3a
2b
2a
1b
1a
0b
0A
-1< B
-1A
-1= B
-1A
-1> B
-1A<B A=B A>B
Circuit comparateur
S
1k=a
k+ b
kS
2k=( a
k=b
k)
Circuit comparateur
●
S
31●
S
32●
S
33●
S
34●
S
35●
S
36= b
3. ( a
3+b
3)
= (a
3<b
3)
= a
3b
3= b
2. ( a
2+ b
2) . ( a
3=b
3)
= (a
2< b
2) . ( a
3=b
3)
= b
1. ( a
1+ b
1) . ( a
2=b
2) . ( a
3=b
3)
= (a
1< b
1) . ( a
2=b
2) . ( a
3=b
3)
= b
0. ( a
0+ b
0) . ( a
1=b
1) . ( a
2=b
2) . ( a
3=b
3)
= (a
0< b
0) . ( a
1=b
1) . ( a
2=b
2) . ( a
3=b
3)
= ( A
−1< B
−1) . ( a
0=b
0) . ( a
1=b
1) . ( a
2=b
2) . (a
3=b
3)
= ( A
−1=B
−1) . ( a
0=b
0) . ( a
1=b
1) . (a
2=b
2) . ( a
3=b
3)
= ( A =B )
Circuit comparateur
●
S
5de même
●
S
6= S
36= (A=B)
●
S
7= (A<B)
= S
31.S
32. S
33.S
34.S
35.S
36= S
31+ S
32+S
33+S
34+ S
35+ S
36= ( A ≤B )
= ( A > B )
Circuit barillet
●
On souhaite synthétiser un circuit sur 4 bits nommé "Barrel Shifter". Ce circuit possède 4 entrées de données (I[0:3]) et 4 sorties de données (O[0:3]). La fonction de ce circuit est de mettre les 4 entrées en
communication avec les 4 sorties, et ce, en respectant un décalage, lui- même commandé par 2 entrées de commande S[0:1].
S
1S
0O
3O
2O
1O
000 I
3I
2I
1I
001 I
0I
3I
2I
110 I
1I
0I
3I
211 I
2I
1I
0I
3Circuit barillet
S
1S
0O
3O
2O
1O
000 I
3I
2I
1I
001 I
0I
3I
2I
110 I
1I
0I
3I
211 I
2I
1I
0I
3S
1O
3O
2O
1O
00 I
3+I
0I
2+I
3I
1+I
2I
0+I
11 I
1+I
2I
0+I
1I
3+I
0I
2+I
3M
ij= I
i+ I
jS
1O
3O
2O
1O
00 M
30M
23M
12M
011 M
12M
01M
30M
23S
0M
30M
23M
12M
010 I
3I
2I
1I
01 I
0I
3I
2I
1O0
O1
O2
O3 M01
M12
M23
M30 I0
I1
I2
I3
S0 S1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1