Vous êtes sur la page 1sur 31

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
x2 S = x1 ⋅ x2 + x3
S
Δ = 2 nanosecondes
x3
Un circuit combinatoire est
une mise en œuvre matérielle
d'une fonction combinatoire
x1
Un circuit combinatoire a x2
des caractéristiques
temporelles x3
qui dépendent S
de la technologie employée 2 ns
page 3 ELP 304 Cours 2
Définition
Circuits combinatoires versus Circuits séquentiels
‰ Circuits combinatoires : ‰ Circuits séquentiels :
¾ C’est l’absence de mémoire
¾ Les sorties sont fonctions des
qui caractérise les circuits
combinatoires. entrées mais aussi de l’état
interne du système.
¾ Les sorties sont une fonction ¾ A une configuration des
combinatoire des entrées: entrées peut correspondre
S=f(E). plusieurs configurations des
sorties.
¾ A une configuration des
entrées correspond une ¾ L’état interne du système est
configuration unique des une trace du passé du
sorties. système numérique.

page 4 ELP 304 Cours 2


Définition

„ Circuits combinatoires : „ Circuits Séquentiels :

• C’est l’absence de mémoire • Les sorties sont fonctions


qui caractérise les circuits des entrées mais aussi de
combinatoires. l’état interne du système.

• Les sorties sont une • A une configuration des


fonction combinatoire des entrées peut correspondre
entrées: S=f(E). plusieurs configurations des
sorties.
• A une configuration des
entrées correspond une • L’état interne du système
configuration unique des est une trace du passé du
sorties. système numérique.

page 5 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 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 n n1 n2
≤ 2n ≤ 2n

Codeur (encodeur) Décodeur Transcodeur


page 7 ELP 304 Cours 2
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 A0
A1 sorties
entrées codeur A2
A3

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 E0
1 X X X 1 1 A0
E1
0 1 X X 1 0 entrées encodeur sorties
prioritaire A1
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
Les opérateurs de transcodage :
les décodeurs
Les décodeurs: 0
¾ n entrées de données An-1
1
2
¾ N sorties avec N ≤ 2 n 3
¾ Une seule sortie est active à la fois
¾ Quand un nombre est codé en A0
n
binaire pur à l’entrée, c’est la sortie 2 -1
correspondante qui est activée.
Exemple de décodeur binaire "1 parmi 8"
Equations de sortie
s0 s0 = e2 e1 e0
<e2,e1,e0> s1
E . 8 s1 = e2 e1e0
sorties
3 . s2 = e2 e1 e0
s7
etc.
page 10 ELP 304 Cours 2
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 Solution : /s0 /y0


y1 = c3 c2 c1c0 deux décodeurs traitent en E /s1 /y1
⋅⋅⋅ parallèle les bits c2, c1, c0. va . .
y7 = c3c2 c1c0 Le bit c3 sélectionne les vb . .
y8 = c3 c2 c1 c0 sorties de celui qui doit /s7 /y7
y9 = c3 c2 c1c0 être actif
⋅⋅⋅ /s0 /y8
y15 = c3c2 c1c0 <c2,c1,c0>
E /s1 /y9
Schéma de
principe va . .
c3
vb . .
/s7 /y15
Va = entrée de validation
page 11 Vb
ELP 304 = S2 0 + S1 + …. + S7
Cours
Les opérateurs de transcodage :
les transcodeurs
Exemple: le transcodeur BCD/7 segments

S0
01 A S1
01 B S2
S3
0 C S4
S5
10 D 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 7 segments
Code BCD
de S6 S5 S4 S3 S2 S1 S0
vérité 0 0 0 0 1 0 1 1 1 1 1
0 0 0 1 1 0 1 0 0 0 0
S0 0 0 1 0 1 1 0 1 1 0 1
0 0 1 1 1 1 1 1 0 0 1
S1 S6 0 1 0 0 1 1 1 0 0 1 0
S5 0 1 0 1 0 1 1 1 0 1 1
0 1 1 0 0 1 1 1 1 1 1
S2 S4 0 1 1 1 1 0 1 0 0 0 1
1 0 0 0 1 1 1 1 1 1 1
S3 1 0 0 1 1 1 1 1 0 1 1
page 13 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
Multiplexeur Démultiplexeur

2 n 2n
sortie entrée
entrées sorties

n n
adresse adresse

rôle : aiguiller un signal d’entrée rôle : aiguiller un signal d’entrée


parmi 2n vers une sortie à l’aide vers une des 2n sorties en
de n bits d’adresse fonction de l’état des bits
d’adresse
page 15 ELP 304 Cours 2
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 F

0 1 0 E2

1 0 1 E3
VDD
1 1 1
A B
page 16 ELP 304 Cours 2
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 Q0 = E si (S1S0)2=0
Q0
•N =2n sorties 0 sinon
Q1
E
Q2 Q1 = E si (S1S0)2=1
1 parmi 22
Q3 0 sinon

S1 S0
Applications: conversion d’une
information de type série en une
information de type parallèle.

page 17 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 18 ELP 304 Cours 2
Les opérateurs de comparaison : définition

Comparateur élémentaire : A B E S I
opérateur capable de détecter (A=B) (A>B) (A<B)
l’égalité et de comparer deux 0 0 1 0 0
nombres.
0 1 0 0 1
1 0 0 1 0
Table de vérité
1 1 1 0 0

A S = 1 si (AA>> BB) = AB
E = 1 si(A A== B) = A ⊕ B
B
( 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 comparateur
x x 85
A3
Réalisation possible à partir de 4 A A2
A1
comparateurs de 2 bits ou utilisation A0
d’un comparateur modulaire B3 A > B out
B2 A = B o ut sorties
B
B1 A < B out
Les entrées (Ain > Bin), (Ain=Bin) et (Ain<Bin) B0
permettent de cascader les comparateurs A > B in
A = B in
page 20 ELP 304 Cours 2 A < B in
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
Ak Bk Ck Sk
0 0 0 0
0 1 0 1 & =1
1 0 0 1
1 1 1 0
Ck Sk

Ck = Ak .Bk S k = Ak ⊕ Bk
page 22 ELP 304 Cours 2
Les opérateurs arithmétiques :
les additionneurs
L’additionneur complet permet de prendre en
compte une retenue entrante Ck −1 Équations logiques de
retenue retenue l’additionneur complet:
somme
entrante sortante
S k = Ak ⊕ Bk ⊕ Ck −1
Ak Bk Ck-1 Ck Sk Ck = Ak .Bk + ( Ak ⊕ Bk )Ck −1
0 0 0 0 0
0 0 1 0 1 Bk Ak Ck-1

0 1 0 0 1
1/2 add.
0 1 1 1 0
1 0 0 0 1 Ak.Bk Ak ⊕ Bk

1 0 1 1 0 >=1 1/2 add.

1 1 0 1 0 Ck
(Ak ⊕ Bk ).Ck-1
1 1 1 1 1
Sk=Ak⊕Bk ⊕Ck-1
page 23 ELP 304 Cours 2
Les opérateurs arithmétiques : les
additionneurs
Additionneurs à retenue propagée (ripple-carry adder)
Ak A Ck
S k = Ak ⊕ Bk ⊕ Ck −1 Bk B
Cout
S
Ck = Ak Bk + ( Ak ⊕ Bk ) Ck −1 Ck-1 Cin
Sk
A2 A
Cout
B2 B
S S2
Cin
A1 A
Cout
B1 B
S S1

1/2 add.
Cin
A0 A
Cout

1/2 add.
B0 B
S S0
'0' Cin

>=1
Problème : les tps de propagation s’ajoutent
page 24 ELP 304 Cours 2
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 A3 A2 A1 A0

B3 B2 B1 B0
Porte AND
A3B0 A2B0 A1B0 A0B0

Additionneur + A3b1 A2B1 A1B1 A0B1

+ A3B2 A2B2 A1B2 A0B2

+ A3B3 A2B3 A1B3 A0B3

P7 P6 P5 P4 P3 P2 P1 P0
page 27 ELP 304 Cours 2
Les opérateurs arithmétiques :
les multiplieurs
B0
A3 A2 A1 A0

Solution combinatoire
B1
A3 A2 A1 A0

b3 a3 b2 a2 b 1 a1 b0 a0
Additionneur 4 bits
r3 r-1 0
Réseau de portes ET B2
s3 s2 s1 s0

A3 A2 A1 A0
et
d’additionneurs binaires
b3 a3 b2 a2 b1 a1 b0 a0
Additionneur 4 bits
r3 r-1 0
s3 s2 s1 s0
B3
A3 A2 A1 A0

b3 a3 b2 a2 b1 a1 b0 a0
Additionneur 4 bits
r3 r-1 0
s3 s2 s1 s0

page 28 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 opérande Les n entrées de
sélection ou de
commande
code permettent de
opérateur UAL sélectionner une
opération parmi 2n.
résultat
page 29 ELP 304 Cours 2
Les opérateurs arithmétiques :
les Unités Arithmétiques et Logiques (UALs)
Exemple : le circuit xx382
S2 S1S0
•Les entrées de commande S2 S1 S0
permettent de sélectionner une opération
parmi 8. Cn
‹Opérations arithmétiques: A plus B, A
A3... A0
moins B, B moins A ALU F3 …F0
‹Opérations logiques: XOR(A,B), A ou 382
B, A et B
OVR
‹Mise à 0 (Clear), Mise à 1 (Preset)
Cn+4
•Opérandes: A et B sur 4 bits.
•Cn : retenue entrante; Cn+4 : retenue B3... B0
sortante
•OVR (Overflow): indicateur de
dépassement de capacité.

page 30 ELP 304 Cours 2