Entraînement circuits combinatoires
Opérateurs
Exercice : table de vérité du AND
A l'aide du circuit suivant, dressez la table de vérité de l'opérateur AND.
Testez toutes les combinaisons possibles d'entrées, il y en a 4 !
\(a\) | \(b\) | \(a \cdot b\) |
---|---|---|
\(0\) | \(0\) | ? |
\(0\) | \(1\) | ? |
\(1\) | \(0\) | ? |
\(1\) | \(1\) | ? |
\(a\) | \(b\) | \(a \cdot b\) |
---|---|---|
\(0\) | \(0\) | \(0\) |
\(0\) | \(1\) | \(0\) |
\(1\) | \(0\) | \(0\) |
\(1\) | \(1\) | \(1\) |
Exercice : table de vérité du OR
A l'aide du circuit suivant, dressez la table de vérité de l'opérateur OR.
Testez toutes les combinaisons possibles d'entrées, il y en a 4 !
\(a\) | \(b\) | \(a + b\) |
---|---|---|
\(0\) | \(0\) | ? |
\(0\) | \(1\) | ? |
\(1\) | \(0\) | ? |
\(1\) | \(1\) | ? |
\(a\) | \(b\) | \(a + b\) |
---|---|---|
\(0\) | \(0\) | \(0\) |
\(0\) | \(1\) | \(1\) |
\(1\) | \(0\) | \(1\) |
\(1\) | \(1\) | \(1\) |
Exercice : table de vérité du NAND
Dressez la table de vérité de l'opérateur NAND.
Utilisez le circuit suivant :
Alternativement, vous pouvez réfléchir à l'aide de la table de vérité du ET.
On pouvait procéder soit en testant le circuit, soit en prenant le NON de la table de vérité de \(a \cdot b\)
\(a\) | \(b\) | \(a \cdot b\) | \(a \uparrow b\) |
---|---|---|---|
\(0\) | \(0\) | \(0\) | \(1\) |
\(0\) | \(1\) | \(0\) | \(1\) |
\(1\) | \(0\) | \(0\) | \(1\) |
\(1\) | \(1\) | \(1\) | \(0\) |
Exercice : table de vérité de NOR
Dressez la table de vérité de l'opérateur NOR.
Utilisez le circuit suivant :
Alternativement, vous pouvez réfléchir à l'aide de la table de vérité du OU.
On pouvait procéder soit en testant le circuit, soit en prenant le NON de la table de vérité de \(a + b\)
\(a\) | \(b\) | \(a + b\) | \(a \downarrow b\) |
---|---|---|---|
\(0\) | \(0\) | \(0\) | \(1\) |
\(0\) | \(1\) | \(1\) | \(0\) |
\(1\) | \(0\) | \(1\) | \(0\) |
\(1\) | \(1\) | \(1\) | \(0\) |
Exercice : table de vérité du XOR
Dressez la table de vérité de l'opérateur XOR.
Utilisez le circuit suivant :
\(a\) | \(b\) | \(a \oplus b\) |
---|---|---|
\(0\) | \(0\) | \(0\) |
\(0\) | \(1\) | \(1\) |
\(1\) | \(0\) | \(1\) |
\(1\) | \(1\) | \(0\) |
La sortie du XOR vaut \(1\) quand ses entrées sont différentes.
De Morgan : Opérateurs avec NAND
Exercice : NOT avec NAND
Version circuit
En utilisant uniquement des NAND (et le pin et la led), créez un circuit qui a la même table de vérité que le circuit suivant :
Version formelle
Trouvez une expression équivalente à \(\overline{a}\) et ne comportant que des \(\uparrow\).
Version circuit
L'idée est de créer un circuit qui prends un booléen en entrée, et produit un booléen de la valeur inverse en sortie, en utilisant uniquement des NAND.
Remarque : on peut diriger le même booléen dans les deux entrées d'une porte.
Version formelle
Regardez l'aide de la version circuit, peut-être qu'elle vous inspirera. Aussi, il n'est pas trop tard pour changer de version !
Version circuit
Version formelle
Exercice : AND avec NAND
Version circuit
En utilisant uniquement des NAND (et les pins et la led), créez un circuit qui a la même table de vérité que le circuit suivant :
Version formelle
Trouvez une expression équivalente à \(a \cdot b\) et ne comportant que des \(\uparrow\).
Utilisez la transformation du NOT en NAND que nous avons fait juste avant. Remarque : \(\overline{\overline{a}} = a\) (non non a vaut a)
Version circuit
On remplace le AND par un NAND, et on inverse sa sortie avec un NAND utilisé comme un NOT.
Version formelle
Exercice : OR avec NAND
Version circuit
En utilisant uniquement des NAND (et les pins et la led), créez un circuit qui a la même table de vérité que le circuit suivant :
Version formelle
Trouvez une expression équivalente à \(a + b\) et ne comportant que des \(\uparrow\).
Utilisez la transformation du NOT en NAND que nous avons fait juste avant.
\(a + b = \overline{\overline{a + b}} = \overline{\overline{a} \cdot \overline{b}}\)
Version circuit
On remplace le OR par un NAND, et on inverse ses entrées sortie avec des NAND utilisés comme des NOT.
Version formelle
Addition base 2
Exercice : addition en base 2
Additionnez \(11_{2}\) et \(10_{2}\) avec une addition en base 2.
\(11_{2} + 10_{2}\)
- \(1_{2} + 0_{2} = 1_{2}\), notre résultat rang \(0\) est \(1_{2}\).
- \(1_{2} + 1_{2} = 10_{2}\), notre résultat rang \(1\) est \(0_{2}\) et on retiens $\(1_{2}\).
- \(0_{2} + 0_{2} = 0_{2}\), auquel on ajoute la retenue : \(0_{2} + 1_{2} = 1\), notre résultat rang \(2\) est \(1_{2}\).
- \(11_{2} + 10_{2} = 101_{2}\)
Dépassement d'entiers
Exercice : dépassements d'entiers
Quelle est la valeur (décimale) maximale que l'on peut représenter en base 2 sur 2 bits ?
C'est la valeur de \(11_{2}\), c'est à dire \(3_{10}\).
Quelle est la valeur (décimale) maximale de l'addition de deux nombres en base 2 sur 2 bits ?
C'est la valeur de \(11_{2} + 11_{2}\), c'est à dire \(3_{10} + 3_{10} = 6_{10}\)
Combien de bit faut-il au minimum pour coder \(6_{10}\) en base 2 ?
Convertissez \(6_{10}\) en base 2 avec un des algorithmes vus précédemment en cours.
La représentation de \(6_{10}\) en base 2 est \(110_{2}\), il faut donc 3 bits.
Tables de vérité d'expressions booléennes
Exercice : tables de vérité d'expressions
Dressez les tables de verités des expressions suivantes. Les expressions sont en notation formelle et en Python. N'hésitez pas à utiliser Python !