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

Contenu supprimé Contenu ajouté
Ligne 425 :
Comme on l'a vu, la méthode précédente donne une équation logique qui décrit un circuit. Mais quelle équation : on se retrouve avec un gros paquet de ET et de OU ! heureusement, il est possible de simplifier cette équation. Pour donner un exemple, sachez que cette équation : <math>(\overline{e_2} . \overline{e_1} . e_0) + (\overline{e_2} . e_1 . \overline{e_0}) + (e_2 . \overline{e_1} . \overline{e_0}) + (e_2 . e_1 . e_0)</math> ; peut se simplifier en : <math>e_2 \oplus e_1 \oplus e_0</math> avec les règles de simplifications que nous allons voir. Dans cet exemple, on passe donc de 17 portes logiques à seulement 3 ! Bien sûr, on peut simplifier cette équation juste pour se simplifier la vie lors de la traduction de cette équation en circuit, mais cela sert aussi à autre chose : cela permet d'obtenir un circuit plus rapide et/ou utilisant moins de portes logiques. Autant vous dire qu'apprendre à simplifier ces équations est quelque chose de crucial, particulièrement si vous voulez concevoir des circuits un tant soit peu rapides.
 
===AlgèbreL'algèbre de Boole===
 
Pour simplifier une équation logique, on peut utiliser certaines propriétés mathématiques simples pour factoriser ou développer comme on le ferait avec une équation mathématique normale. Ces propriétés forment ce qu'on appelle l’'''algèbre de Boole'''. En utilisant ces règles algébriques, on peut factoriser ou développer certaines expressions, comme on le ferait avec une équation normale, ce qui permet de simplifier une équation logique assez intuitivement. Le tout est de bien faire ces simplifications en appliquant correctement ces règles, ce qui peut demander un peu de réflexion.
Ligne 478 :
<math>a.\overline{a}=0</math>
|}
 
Ces relations peuvent s'utiliser pour simplifier des équations logiques, mais peuvent avoir des conséquences plus importantes. Par exemple, prenons le cas où on XOR un bit avec lui-même : le tableau plus haut nous dit que le résultat est toujours zéro. Et cela s'applique aussi à des nombres : si on XOR un nombre avec lui-même, chacun de ses bits sera donc XORé avec lui-même, et sera donc mis à zéro. Conséquence : un nombre XOR lui-même donnera toujours zéro. Cette propriété est utilisé en assembleur pour mettre à zéro un registre, dans certaines situations. Elle est aussi utilisée pour le calcul des bits de parité, ou pour échanger une valeur entre deux registres.
 
Parmi ces règles, les loi de de Morgan sont de loin les plus importantes à retenir, les autres ressemblant beaucoup aux règles de l'arithmétique usuelle.
 
{|class="wikitable"
Ligne 489 ⟶ 493 :
|}
 
====La formule équivalente de la porte XOR et de la porte NXOR====
Ces relations peuvent s'utiliser pour simplifier des équations logiques, mais peuvent avoir des conséquences plus importantes. Par exemple, prenons le cas où on XOR un bit avec lui-même : le tableau plus haut nous dit que le résultat est toujours zéro. Et cela s'applique aussi à des nombres : si on XOR un nombre avec lui-même, chacun de ses bits sera donc XORé avec lui-même, et sera donc mis à zéro. Conséquence : un nombre XOR lui-même donnera toujours zéro. Cette propriété est utilisé en assembleur pour mettre à zéro un registre, dans certaines situations. Elle est aussi utilisée pour le calcul des bits de parité, ou pour échanger une valeur entre deux registres.
 
Après avoir vu les règles précédentes, il est possible de démontrer que les portes XOR et NXOR peuvent se construire avec uniquement des portes ET/OU/NON. Nous l'avions vu dans le chapitre précédent, et montré quelques exemples de circuits équivalents.
A ces règles, on peut aussi ajouter la définition du XOR, qui est la suivante :
 
En utilisant la méthode des minterms, on arrive à l'expression suivante pour la porte XOR :
 
: <math>a \oplus b = ( \overline{a} . b ) + ( a . \overline{b} )</math>
 
[[File:XOR3.png|centre|vignette|upright=3.0|Illustration de la définition du XOR. On voit que le XOR peut se construire, en appliquant sa définition, àpartirà partir de quelques portes ET, ou et NON.]]
 
Pour obtenir l'équation de la porte NXOR, on pourrait recourir encore une fois à un minterm, mais on peut aussi utiliser l’algèbre de Boole sur la formule précédente. Partons de l’équation précédente :
 
: <math>a \oplus b = ( \overline{a} . b ) + ( a . \overline{b} )</math>
 
Une porte NXOR est, par définition, l'inverse d'une porte XOR. En appliquant un NON sur l'équation précédente, on trouve donc :
 
: <math>\overline{a \oplus b} = \overline{ ( \overline{a} . b ) + ( a . \overline{b} ) }</math>
 
On applique la loi de de Morgan pour le OU entre les parenthèses :
 
: <math>\overline{a \oplus b} = \overline{( \overline{a} . b )} . \overline{ (a . \overline{b}) }</math>
 
On applique la loi de de Morgan, mais cette fois-ci à l'intérieur des parenthèses :
 
: <math>\overline{a \oplus b} = (\overline{\overline{a}} + \overline{b}) . (\overline{a} . \overline{\overline{b}})</math>
 
On simplifie les inversions :
 
: <math>\overline{a \oplus b} = (a + \overline{b}) . (\overline{a} + b)</math>
 
La formule est similaire à celle d'un XOR, la seule différence étant qu'il faut inverser de place les ET et les OU : le ET est dans les parenthèses pour le XOR et entre pour le NXOR, et inversement pour le OU.
 
====Exemples complets====
Ligne 505 ⟶ 533 :
 
En guise de second exemple, nous allons simplifier <math>(\overline{e2}.e1.e0)+(e2.\overline{e1}.e0)</math>. Cela se fait en suivant les étapes suivantes :
* Factoriser e0, ce qui donne : <math>(e0 . [(\overline{e2}.e1)+(e2.\overline{e1})]</math>;
* Utiliser la règle du XOR qui dit que <math>a \oplus b = b( \oplusoverline{a} . b ) + ( a . \overline{b} )</math>, ce qui donne <math>(e2 \oplus e1).e0</math>.
 
===TableauxLes tableaux de Karnaugh===
 
Il existe d'autres méthodes pour simplifier nos circuits. Les plus connues étant les '''tableaux de Karnaugh''' et l''''algorithme de Quine Mc Cluskey'''. On ne parlera pas de la dernière méthode, trop complexe pour ce cours. Ces deux méthodes possèdent quelques défauts qui nous empêchent de créer de très gros circuits avec. Pour le dire franchement, elles sont trop longues à utiliser quand le nombre d'entrée du circuit dépasse 5 ou 6. Nous allons cependant aborder la méthode du tableau de Karnaugh, qui peut être assez utile pour des circuits simples. La simplification des équations avec un tableau de Karnaugh demande plusieurs étapes, que nous allons maintenant décrire.