Il est souvent utile de pouvoir construire un circuit logique à partir d'une table de vérité donnée, dans cet exercice, nous allons voir une méthode pour résoudre ce problème.
Soit la table de vérité suivante :
A | B | C | out -------------- 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
Nous commençons par regarder les entrées de la table qui produise 1,
A | B | C | out -------------- 0 | 0 | 0 | 0 0 | 0 | 1 | 0 0 | 1 | 0 | 0 0 | 1 | 1 | 1 => ici 1 | 0 | 0 | 0 1 | 0 | 1 | 1 => ici 1 | 1 | 0 | 1 => ici 1 | 1 | 1 | 1 => ici
Prenons l'exemple de la ligne 4, nous avons A = 0, B = 1, C = 1 qui produit out = 1, autrement dit, nous avons AND(AND(NOT(A), B),C) == 1. Nous effectuons un AND entre les 3 entrées, en remplaçant les entrées valant 0 par leur inverse. Dans un souci d'alléger l'écriture, nous allons introduire de nouvelles notations :
\(OR(A,B) = A + B\)
\(AND(A,B) = A * B = AB\)
\(NOT(A) = \bar{A}\)
Les lignes 4,6,7,8 nous informe que les expressions suivantes produisent un output vrai :
\(\bar{A}BC\)
\(A\bar{B}C\)
\(AB\bar{C}\)
\(ABC\)
Puisqu'une seule de ses expressions valant 1 garanties que la ligne correspondant dans la table de vérité produit un output vrai, l'expression finale de la table de vérité est donnée par :
\(\bar{A}BC + A\bar{B}C + AB\bar{C}+ABC\)
Il faut noter que cette méthode ne produit pas nécessairement des solutions optimales : il peut exister des solutions utilisant un nombre de portes plus faible.