Aller au contenu

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.

logisim and led

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.

logisim and led

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 : pin nand led

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 : pin nor led

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 : pin nand led

\(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 : pin not led

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

not avec nand

Version formelle

\[ \overline{a} = a \uparrow a \]

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 : pin and led

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.

and avec nand

Version formelle

\[ \begin{align} a \cdot b &= \overline{\overline{a \cdot b }}\\ &= \overline{a\uparrowb}\\ &= (a \uparrow b) \uparrow (a \uparrow b) \end{align} \]

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 : pin or led

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.

or avec nand

Version formelle

\[ \begin{align} a + b &= \overline{\overline{a + b}} \\ &= \overline{\overline{a}\cdot\overline{b}} \\ &= \overline{a} \uparrow \overline{b} \\ &= (a \uparrow a) \uparrow (b \uparrow b) \end{align} \]

Addition base 2

Exercice : addition en base 2

Additionnez \(11_{2}\) et \(10_{2}\) avec une addition en base 2.

\[1_{2} + 0_{2} = 1_{2}\]
\[1_{2} + 1_{2} = 10_{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 !

\[a \cdot b \cdot c\]
a and b and c
a b c a and b and c
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
\[a \cdot b + c\]
a and b or c
a b c a and b or c
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
\[ \overline{a + b + c} \]
not (a or b or c)
a b c a and b or c
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0

Remarque :

\[ \overline{a + b + c} = \overline{a} \cdot \overline{b} \cdot \overline{c} \]