Un circuit combinatoire est un circuit ayant plusieurs variables d'entrées et plusieurs fonctions de sortie.
On veut additionner deux nombres binaires X et Y sur n bits :
X = (xnxn-1 --- x2x1)2
Y = (ynyn-1 --- y2y1)2
Pour cela, on va réaliser un circuit combinatoire capable d'additionner xi et yi en prenant en considération la retenue ri-1 obtenue de l'addition de la colonne précédente i-1. On obtient alors l'addition zi et une nouvelle retenue Ri.
On posera A= xi, B=yi et C= ri-1. En sortie, on posera S=zi et R= Ri.
Nous avons réalisé le circuit combinatoire qui permet d'additionner xi et yi de la colonne i.
Pour additionner X et Y sur n bits, nous allons lier n circuits comme celui réalisé ci-dessus, de la façon suivante :
Un décodeur est un circuit combinatoire ayant n variables d'entrée et 2n fonctions de sortie. Pour chaque combinaison d'entrée, une seule fonction de sortie est égale à 1. Les autres sont alors égales à 0.
a | S0 | S1 |
---|---|---|
0 | 1 | 0 |
1 | 0 | 1 |
a | b | S0 | S1 | S2 | S3 |
---|---|---|---|---|---|
0 | 0 | 1 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 0 | 1 |
Une entrée Activation (Act) est toujours ajoutée au décodeur de telle sorte que si Act=1 le décodeur fonctionne normalement (Décodeur Activé), et si Act=0, toutes les sorties du décodeur sont à 0 (Décodeur Désactivé).
Grâce à l'entrée Activation, on peut combiner des décodeurs de degré n pour former des décodeurs de degrés supérieurs.
Réaliser un décodeur 3 x 8 avec 2 Dec 2x4 :
a | b | c | d1 | d2 | d3 | d4 | d5 | d6 | d7 | d8 |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Cette table de vérité peut être écrite comme suit :
a | b | c | d11 | d12 | d13 | d14 | d21 | d22 | d23 | d24 |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 0 | 0 | ||||
0 | 1 | 0 | 1 | 0 | 0 | |||||
1 | 0 | 0 | 0 | 1 | 0 | |||||
1 | 1 | 0 | 0 | 0 | 1 | |||||
1 | 0 | 0 | 1 | 0 | 0 | 0 | ||||
0 | 1 | 0 | 1 | 0 | 0 | |||||
1 | 0 | 0 | 0 | 1 | 0 | |||||
1 | 1 | 0 | 0 | 0 | 1 |
D'où le circuit :
Un multiplexeur est un circuit combinatoire ayant 2n variables d'entrée, n variables de controle et une seule fonction de sortie. Pour chaque combinaison des variables de contrôle, une des entrées est acheminée à la seule fonction de sortie.
a | e0 | e1 | S |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
ou bien
a | S |
---|---|
0 | e0 |
1 | e1 |
C'est à dire que :
_
S = a . e0 + a . e1
a | b | S |
---|---|---|
0 | 0 | e0 |
0 | 1 | e1 |
1 | 0 | e2 |
1 | 1 | e3 |
C'est à dire que :
_ _ _ _
S = a . b . e0 + a . b . e1 + a . b . e2 + a . b . e3
Une entrée Activation (Act) est également ajoutée au multiplexeur de telle sorte que si Act=1 le multiplexeur fonctionne normalement (multiplexeur activé), et si Act=0, la sortie du multiplexeur est à 0 (multiplexeur désactivé).
Grâce à l'entrée Activation, on peut combiner des multiplexeurs de degré n pour former des multiplexeurs de degrés supérieurs.
Réaliser un Mux 8x1 avec 2 Mux 4x1 :
Le circuit est obtenu en respectant les étapes suivantes :
- Appliquer les n variables d'entrée comme des variables de contrôle du Mux n x 1
- Appliquer les valeurs de vérité de la fonction à l'entrée du Mux n x 1
- Mettre l'entrée Activation à 1.
a | b | c | F |
---|---|---|---|
0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 0 |
Un démultiplexeur nx1 est un circuit combinatoire ayant 1 seule variable d'entrée, n variables de controle et 2n fonctions de sortie. Pour chaque combinaison des variables de contrôle, l'entrée est acheminée à une des fonctions de sortie. Remarquer qu'un Démux 1xn fonctionne en opposé à un Mux nx1.
a | S0 | S1 |
---|---|---|
0 | e | 0 |
1 | 0 | e |
_
S0 = a . e
S1 = a . e
a | b | S0 | S1 | S2 | S3 |
---|---|---|---|---|---|
0 | 0 | e | 0 | 0 | 0 |
0 | 1 | 0 | e | 0 | 0 |
1 | 0 | 0 | 0 | e | 0 |
1 | 1 | 0 | 0 | 0 | e |
_ _
S0 = a . b . e
_
S1 = a . b . e
_
S2 = a . b . e
S3 = a . b . e