« Fonctionnement d'un ordinateur/Les circuits combinatoires » : différence entre les versions

Contenu supprimé Contenu ajouté
mAucun résumé des modifications
Aucun résumé des modifications
Ligne 150 :
|}
 
Il est aussi intéressant de parler des liens entre tables de vérité et équation logique. Il faut savoir qu'il est possible de trouver l'équation d'un circuit à partir de sa table de vérité, et réciproquement. C'est d'ailleurs ce que font les méthodes de conception de circuit que nous allons voir plus bas : elles traduisent la table de vérité d'un circuit en équation logique. On commence par établir la table de vérité, ce qui est assez simple, avant d'établir une équation logique et de la traduire en circuit. On pourrait croire qu'à chaque table de vérité correspond une seule équation logique, mais ce n'est pas le cas. En réalité, il existe plusieurs équations logiques différentes pour chaque table de vérité. La raison à cela est que des équations différentes peuvent donner des circuits qui se comportent de la même manière. Après tout, on peut concevoir un circuit de différente manières et des circuits câblés différemment peuvent parfaitement faire la même chose. Des équations logiques qui décrivent la même table de vérité sont dites équivalentes. Par équivalente, on veut dire qu'elles décrivent des circuits différents, mais qui ont la même table de vérité - ils font la même chose. AÀ ce propos, il faut savoir qu'il est possible de convertir une équation logique en une autre équation équivalente., chose que nous apprendrons à faire dans la suite de ce chapitre.
 
==Concevoir un circuit combinatoire avec la méthode des ''minterms''==
 
Comme dit plus haut, créer un circuit demande d'établir sa table de vérité, avant de la traduire en équation logique, puis en circuit. Nous allons maintenant voir la première étape, celle de la conversion entre table de vérité et équation. Il existe deux grandes méthodes de ce type, pour concevoir un circuit intégré, qui portent les noms de '''méthode des ''minterms''''' et de '''méthode des ''maxterms'''''. La différence entre les deux est que la première donne une forme normale disjonctive, alors que la seconde donne une forme normale conjonctive. Dans cette section, nous allons voir la méthode des ''minterms'', avant de voir la méthode des ''maxterms''. Pour chaque méthode, nous allons commencer par montrer comment appliquer ces méthodes sans rentrer dans le formalisme, avant de montrer le formalisme en question. Précisons cependant que ces deux méthodes font la même chose : elles traduisent une table de vérité en équation logique. La première étape de ces deux méthodes est donc d'établir la table de vérité. Voyons un peu de quoi il retourne.
 
===La méthode des ''minterms'', expliquée sans formalisme===
 
La méthode des ''minterms'' est de loin la plus simple à comprendre. Ses principes sont en effet assez intuitifs et elle est assez facile à appliquer, pour qui connaitconnaît ses principes sous-jacents. Pour l'expliquer, nous allons commencer par voir un circuit, qui compare son entrée avec une constante, dépendante du circuit. Par la suite, nous allons voir comment combiner ce circuit avec des portes logiques pour obtenir le circuit désiré.
 
====Les ''minterms'' (comparateurs avec une constante)====
 
Pour commencer, nous allons voir un circuit très simple, qui est utilisé dans la conception des sous-circuits. Ce circuit est appelé le '''comparateur avec une constante'''. C'est un circuit qui possède plusieurs entrées et une seule sortie : on lui envoie un nombre codé sur plusieurs bits en entrée, et le circuit vérifie que ce nombre est égal à une certaine constante (2, 3, 5, 8, ou tout autre nombre) qui dépend du circuit. La sortie est alors mise à 1 si le nombre en entrée est égal à cette constante, alors que la sortie est mise à 0 sinon. Ainsi, on peut créer un circuit qui mettra sa sortie à 1 uniquement si on envoie le nombre 5 sur ses entrées. Ou comme autre exemple, créer un circuit qui met sa sortie à 1 uniquement quand l'entrée correspond au nombre 126. Et ainsi de suite : tout nombre peut servir de constante à vérifier.
Ligne 178 :
====Combiner les comparateurs avec une constante====
 
On peut créer n'importe quel circuit à une seule sortie avec ces comparateurs, en les couplant avec une porte OU à plusieurs entrées. Pour comprendre pourquoi, rappelons que les entrées du circuit peuvent prendre plusieurs valeurs : pour une entrée de <math>n</math> bits, on peut placer <math>2^n</math> valeurs différentes sur l'entrée. Mais seules certaines valeurs doivent mettre la sortie à 1, les autres la laissant à 0. Les valeurs d'entrée qui mettent la sortie 1 sont aussi appelées des '''''minterms'''''. Ainsi, pour savoir s’il faut mettre un 1 en sortie, il suffit de vérifier que l'entrée est égale à un ''minterm''. Pour savoir si l'entrée est égale à un ''minterm'', on doit utiliser un comparateur avec une constante pour chaque ''minterm''. Par exemple, pour un circuit dont la sortie est à 1 si son entrée vaut 0000, 0010, 0111 ou 1111, il suffit d'utiliser :
* un comparateur qui vérifie si l'entrée vaut 0000 ;
* un comparateur qui vérifie si l'entrée vaut 0010 ;
Ligne 184 :
* et un comparateur qui vérifie si l'entrée vaut 1111.
 
Reste à combiner les sorties de ces comparateurs pour obtenir une seule sortie, ce qui est fait en utilisant un circuit relativement simple. On peut remarquer que la sortie du circuit est à 1 si un seul comparateur a sa sortie à 1. Or, on connaitconnaît un circuit qui fonctionne comme cela : la porte OU à plusieurs entrées. En clair, on peut créer tout circuit avec seulement des comparateurs et une porte OU à plusieurs entrées.
 
[[File:Conception d'un circuit à partir de minterms.jpg|centre|vignette|upright=2.5|Conception d'un circuit à partir de ''minterms'']]
 
===Méthode des ''minterms'', version formalisée===
 
On peut formaliser la méthode précédente, ce qui donne la '''méthode des ''minterms'''''. Celle-ci permet d'obtenir un circuit à partir d'une description basique du circuit. Mais le circuit n'est pas vraiment optimisé et peut être fortement simplifié. Nous verrons plus tard comment simplifier des circuits obtenus avec la méthode que nous allons exposer.
 
====Lister les entrées de la table de vérité qui valident l'entrée====
 
La première étape demande d'établir la table de vérité du circuit, afin de déterminer ce que fait le circuit voulu. Maintenant que l'on a la table de vérité, il faut lister les valeurs en entrée pour lesquelles la sortie vaut 1. On rappelle que ces valeurs sont appelées des ''minterms''. Il faudra utiliser un comparateur avec une constante pour chaque ''minterm'' afin d'obtenir le circuit final. Pour l'exemple, nous allons reprendre le circuit de calcul d'inverseur commandable, vu plus haut.
 
{|class="wikitable"
Ligne 228 :
====Établir l'équation du circuit====
 
Les deux étapes précédentes sont les seules réellement nécessaires : quelqu'un qui sait créer un comparateur avec une constante (ce qu'on a vu plus haut), devrait pouvoir s'en sortir. Reste à savoir comment transformer une table de vérité en équations logiques, et enfin en circuit. Pour cela, il n'y a pas trente-six solutions : on va écrire une équation logique qui permettra de calculer la valeur (0 ou 1) d'une sortie en fonction de toutes les entrées du circuit. Et on fera cela pour toutes les sorties du circuit que l'on veut concevoir. Pour ce faire, on peut utiliser ce qu'on appelle la méthode des ''minterms'', qui est strictement équivalente à la méthode vue au-dessus. Elle permet de créer un circuit en quelques étapes simples :
* lister les lignes de la table de vérité pour lesquelles la sortie vaut 1 (comme avant) ;
* écrire l'équation logique pour chacune de ces lignes (qui est celle d'un comparateur) ;
Ligne 292 :
Enfin, il est temps de traduire l'équation obtenue en circuit, en remplaçant chaque terme de l'équation par le circuit équivalent. Notons que les parenthèses donnent une idée de comment doit être faite cette substitution.
 
==Concevoir un circuit avec la méthode des ''maxterms''==
 
La méthode des ''minterms'', vue précédemment, n'est pas la seule qui permet de traduire une table de vérité en équation logique. Elle est secondée par une méthode assez similaire : la '''méthode des ''maxterms'''''. Les deux donnent des équations logiques, et donc des circuits, différents. Les deux commencent par une couche de portes NON, suivie par deux couches de portes ET et OU, mais l'ordre des portes ET et OU est inversé. Dit autrement, la méthode des ''minterms'' donne une forme normale disjonctive, alors que celle des ''maxterms'' donnera une forme normale conjonctive.
 
===La méthode des ''maxterms'' : formalisme===
 
La méthode des ''maxterms'' fonctionne sur un principe assez tordu, mais qui fonctionne cependant. Avec celle-ci, on effectue trois étapes, chacune correspondant à l'exact inverse de l'étape équivalente avec les ''minterms''. Les 0 sont remplacés par des 1 et les portes ET par des portes OU.
* Premièrement on doit lister les lignes de la table de vérité qui mettent la sortie à 0, ce qui est l'exact inverse de l'étape équivalente avec les ''minterms''.
* Ensuite, on traduit chaque ligne en équation logique. La traduction de chaque ligne en équation logique est aussi inversée par rapport à la méthode des ''minterms'' : on doit inverser les bits à 1 avec une porte NON et faire un OU entre chaque bit.
* Et enfin, on doit faire un ET entre tous les résultats précédents.