Application 1 · Simplifier pas à pas
Simplifier :
Voir le corrigéMasquer le corrigé
Pour , les deux identités utilisées sont et . La sortie simplifiée est la fonction majorité de trois bits.
Chapitre 2 sur 2. Construire les formes canoniques, simplifier avec Karnaugh et réaliser des circuits utiles à l’ordinateur.
Ce deuxième cours suppose connus les portes, les propriétés et De Morgan. L’objectif est de transformer une spécification en circuit plus simple, puis de vérifier que la transformation conserve la fonction.
Énoncé → variables et convention 0/1 → table de vérité → forme canonique → simplification → logigramme → vérification.
Un littéral est une variable ou son complément. Un minterme est un produit contenant une fois chacune des variables, complémentée ou non. Il vaut 1 sur une unique ligne de la table.
Sur la ligne 101, avec l’ordre a,b,c, on obtient abc. Une entrée à 1 donne la variable directe ; une entrée à 0 donne son complément.
La forme canonique disjonctive est la somme des mintermes des lignes où la sortie vaut 1. À ordre de variables fixé, cet ensemble de mintermes est unique ; l’ordre d’écriture des termes est libre.
Un maxterme est une somme contenant chaque variable une fois. Il vaut 0 sur une unique ligne. La règle s’inverse : une entrée à 0 donne la variable directe ; une entrée à 1 donne son complément.
La forme canonique conjonctive est le produit des maxtermes des lignes où la sortie vaut 0 :
f=a+bc est une somme de produits, mais pas une forme canonique sur a,b,c : chaque produit ne contient pas les trois variables. Une forme canonique décrit directement la table ; une forme simplifiée réduit le circuit.
La fonction vaut donc 1 aux indices 2 et 6, soit 010 et 110. Elle ne dépend pas réellement de a, même si sa table est écrite avec trois variables.
Cas particuliers : la somme sans minterme vaut 0 ; le produit sans maxterme vaut 1. Il existe 22n fonctions booléennes à n variables, car chacune des 2n sorties de la table se choisit indépendamment.
Reprenons la table suivante. On fixe l’ordre a,b,c, avec a bit de poids fort.
| Indice | a | b | c | F |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 |
| 2 | 0 | 1 | 0 | 1 |
| 3 | 0 | 1 | 1 | 0 |
| 4 | 1 | 0 | 0 | 1 |
| 5 | 1 | 0 | 1 | 1 |
| 6 | 1 | 1 | 0 | 1 |
| 7 | 1 | 1 | 1 | 0 |
À l’indice 3, soit 011, le maxterme est a+b+c : chacun de ses littéraux vaut 0 sur cette ligne. La forme conjonctive est parfois plus courte à construire lorsqu’il y a moins de 0 que de 1.
Regroupons les indices (1,5), (2,6) et (4,5). Le minterme d’indice 5 est utilisé deux fois, ce qui est autorisé par x+x=x.
Chaque paire élimine la variable qui change. On peut maintenant réaliser la fonction avec des portes à deux entrées.
Une carte de Karnaugh réorganise les lignes d’une table pour rendre les simplifications visibles. Les colonnes suivent le code de Gray : 00, 01, 11, 10. Entre deux cases voisines, une seule variable change.
Les cellules portent la sortie et, en petit, leur indice. Les encadrements indiquent les trois paires retenues.
Les indices 1, 2 et 4 ne peuvent être couverts que par ces paires dans cette carte. Les trois termes sont donc nécessaires pour une couverture minimale en somme de produits :
Pour G=∑m(0,2,8,10), lignes ab et colonnes cd sont toutes deux dans l’ordre Gray. Les quatre coins forment un seul groupe, grâce à l’adjacence des bords.
| ab \ cd | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | 1 | 0 | 0 | 1 |
| 01 | 0 | 0 | 0 | 0 |
| 11 | 0 | 0 | 0 | 0 |
| 10 | 1 | 0 | 0 | 1 |
Dans ces quatre cases, a et c changent, tandis que b=0 et d=0. Ainsi G=bd.
La même méthode fonctionne avec les 0. Pour chaque groupe de 0, écrire une somme qui s’annule sur le groupe : variable directe si elle est constamment à 0 ; complémentée si elle est constamment à 1. Multiplier ensuite les sommes obtenues.
Un état noté X n’est ni un 0 imposé, ni un 1 imposé. On peut l’utiliser comme 0 ou 1 pour agrandir les groupes. Exemple : H=∑m(1,3), avec d={5,7}, sur trois variables. Les quatre indices impairs donnent le groupe c=1, donc H=c respecte tous les états imposés.
On ne déclare pas une ligne indifférente pour simplifier un calcul. Si une combinaison peut réellement survenir et que sa sortie est exigée, sa valeur doit être respectée.
Un ensemble de portes est fonctionnellement complet s’il permet de réaliser toute fonction booléenne. ET, OU et NON suffisent. NAND seule ou NOR seule suffisent aussi, car elles permettent de reconstruire ces trois opérations.
On note a↑b=ab.
Pour la dernière ligne : ab=a+b, par De Morgan. Une porte NAND dont les deux entrées sont reliées ensemble joue le rôle d’un inverseur.
On note a↓b=a+b.
Pour une somme de produits S=p+q, une double négation puis De Morgan donnent :
Si p=ab et q=cd, deux NAND calculent ab et cd, puis une troisième NAND produit S=ab+cd. Le principe dual NOR–NOR réalise naturellement un produit de sommes.
On ne peut pas remplacer une porte NAND à trois entrées par une cascade arbitraire de deux NAND : abc=abc. Pour a=b=c=1, le premier membre vaut 0 et le second vaut 1.
Le circuit suivant réalise une porte XOR à partir de quatre NAND. Les quatre portes sont des NAND à deux entrées ; les fils marqués d’un point sont connectés.
Exemple 01 : n = 1, p = 1 et q = 0 ; la dernière NAND fournit 1. Exemple 11 : n = 0, puis p = q = 1 ; la sortie finale vaut 0. Les entrées différentes donnent donc 1, les entrées égales donnent 0.
Les points pleins à gauche partagent a ou b entre deux portes. Le point au centre partage le même signal n : il ne crée pas deux variables différentes. Les lettres intermédiaires servent à vérifier le circuit porte par porte.
| a | b | n | p | q | S |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 1 | 0 |
| 0 | 1 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 1 | 0 |
Ce circuit utilise quatre portes et trois niveaux sur le plus long chemin. Le nombre de portes et le nombre de niveaux sont deux critères distincts : réduire une expression ne suffit pas à estimer son délai réel.
La somme arithmétique de deux bits produit un bit de somme s et une retenue r.
| a | b | Somme s | Retenue r | Résultat rs |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 00 |
| 0 | 1 | 1 | 0 | 01 |
| 1 | 0 | 1 | 0 | 01 |
| 1 | 1 | 0 | 1 | 10 |
Les deux portes reçoivent les mêmes entrées, grâce aux dérivations indiquées par des points pleins. Le XOR du haut fournit le bit de poids faible s ; le ET du bas fournit la retenue r, qui occupe le poids suivant.
Pour a = b = 1, le XOR donne s = 0 et le ET donne r = 1. La lecture du résultat se fait dans l’ordre r puis s : on obtient 10 en binaire, soit 2. Pour 01 ou 10, on obtient r = 0 et s = 1, soit 01.
Rappel sur les fils : un point plein relie les branches. Dans ce dessin, un croisement sans point ne relie pas les deux signaux ; a et b restent indépendants. Le demi-additionneur ne possède pas d’entrée de retenue, d’où son nom.
Pour additionner a,b et une retenue d’entrée cin, on relie deux demi-additionneurs :
La retenue vaut aussi ab+acin+bcin : elle vaut 1 si au moins deux des trois entrées valent 1. Plusieurs additionneurs complets en chaîne permettent l’addition de mots binaires. Le délai de propagation de la retenue limite la vitesse d’une chaîne simple.
Avec les entrées de données d0,d1 et la sélection s :
Si s=0, le premier produit transmet d0 et le second est nul. Si s=1, on obtient d1. Des multiplexeurs choisissent, par exemple, la donnée envoyée à une entrée d’une unité arithmétique et logique.
Pour a=1, seul le premier terme reste. Pour a=0, seul le second reste. Cette décomposition montre qu’une fonction peut être réalisée par un multiplexeur commandé par a, dont les données sont les deux fonctions obtenues en fixant a.
Simplifier :
Pour S3, les deux identités utilisées sont b+ba=a+b et c+cb=c+b. La sortie simplifiée est la fonction majorité de trois bits.
Pour H=ab+bc+abc, établir la table, les deux formes canoniques, puis simplifier.
| a | b | c | H |
|---|---|---|---|
| 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 0 |
La sortie vaut 1 aux indices 0, 2, 3, 4 et 6 ; elle vaut 0 aux indices 1, 5 et 7.
Les indices 0, 2, 4 et 6 forment le groupe c. Les indices 2 et 3 forment le groupe ab. On obtient :
Une forme canonique conjonctive est toujours un produit de maxtermes. Remplacer un des produits par une somme modifie la fonction.
Exprimer NON, OU et ET uniquement avec NOR. Justifier chaque construction.
Notons N(x,y)=x+y.
NON utilise une NOR, OU en utilise deux et ET en utilise trois. Comme toute fonction peut s’écrire avec ET, OU et NON, NOR seule est fonctionnellement complète.
Appliquer trois fois (x+y)(x+z)=x+yz :
Les produits sont absorbés : a+ab=a, a+ac=a, b+bc=b. La sortie ne vaut 0 que si les trois entrées valent 0.
Une lampe doit s’allumer si le mode automatique est actif, s’il fait sombre et si une personne est présente. On note a=1 pour le mode automatique, l=1 pour une forte luminosité et p=1 pour une présence. Écrire son équation et l’indice de son minterme.
La seule combinaison favorable, dans l’ordre a,l,p, est 101. Donc L=∑m(5). La forte luminosité doit être inversée ; le mode automatique et la présence restent directs. Le circuit utilise un inverseur sur l, puis un ET à trois entrées, ou deux ET à deux entrées en cascade.
Deux expressions sont équivalentes si elles ont la même sortie pour toutes les combinaisons d’entrées. Pour trois variables, on compare les huit lignes ; pour quatre, les seize lignes.
Une somme de produits minimale n’est pas nécessairement le meilleur circuit pour une bibliothèque donnée. Comptez les portes, les entrées par porte et les niveaux successifs. Une porte XOR peut réduire le dessin, mais son coût réel dépend de la technologie. Les délais et les transitions physiques ne sont pas représentés par une table de vérité statique.
La table définit la fonction. La forme canonique traduit la table. Les propriétés et Karnaugh réduisent l’expression. Le logigramme réalise l’expression. La vérification exhaustive garantit leur accord sur les états spécifiés.