Électronique numérique : logique/Tables de vérité généralisées (SI-ALORS)

De testwiki
Aller à la navigation Aller à la recherche

Modèle:Sommaire

Caractéristiques des tables de vérité

Reprenons une table de vérité simple :

Table de vérité
Entrées Sorties
a b y z
0 0 0 1
0 1 1 0
1 0 1 1
1 1 1 0

Quelles sont ses caractéristiques ?

  • elle a deux parties, une à gauche (Entrées) que l'on appellera SI, une à droite (Sorties) que l'on appellera ALORS,
  • la partie SI décrit toutes les possibilités sur les entrées : c'est toujours le cas, ainsi si vous comptez n entrées, vous savez automatiquement que votre table de vérité aura 2**n (deux puissance n) lignes.
  • la partie ALORS ne contient que des 1 et des 0.

Modèle:Définition Exemple : si nous reprenons l'exemple de notre table de vérité de départ, on peut la réécrire avec ces définitions :

Table de vérité
SI ALORS
Entrées Sorties
a b y z
0 0 0 1
0 1 1 0
1 0 1 1
1 1 1 0

Pour le moment, la partie ALORS de nos tables de vérité n'a toujours contenu que des 1 et des 0. C'est ce que l'on va changer maintenant.

Tables de vérité généralisées

Commençons par définir ce nouveau concept.

Qu'est-ce qu'une table de vérité généralisée ?

Modèle:Définition

Un exemple sera plus parlant.

Table vérité généralisée et schéma fonctionnel

Exemple :

Cette figure montre qu'une entrée de sélection se retrouve dans la partie SI de la table de vérité généralisée (correspondance en rouge dans la figure). Par contre une entrée normale peut se retrouver dans une équation de la partie ALORS de la table (comme le montre la correspondance en vert dans la figure).

On ne peut éviter de se poser la question : OK, j'ai une table de vérité généralisée, mais comment j'obtiens l'équation algébrique correspondante ?

Recherche de l'équation algébrique correspondante

En fait, quel que soit le type de table de vérité, on procède de la même manière :

Pour trouver une équation à partir d'une table SI-ALORS on fait comme avec une table de vérité : on multiplie la partie alors par la partie SI pour chacune des lignes.

Ici, par exemple, on obtient facilement :

s=0.e1.e0+1.e1.e0+e2.e1.e0+(e2+e3).e1.e0

soit :

s=e1.e0+e2.e1.e0+e2.e1.e0+e3.e1.e0


Remarque : une table de vérité pour ce circuit contiendrait 16 lignes. C'est un des grands intérêts de la table SI-ALORS : de donner une information identique à une table de vérité mais de manière plus compacte (avec moins de ligne). L'autre intérêt est de permettre de voir les fonctions, même simples, avec un autre point de vue, comme le montre l'exercice 1 ci-dessous.

Exercice 1

Faire une table si alors (ou table de vérité généralisée) du ou exclusif. Modèle:Boîte déroulante

Exercice 2 (Le multiplexeur)

Multiplexeur 4 vers 1

C'est un interrupteur programmable qui est décrit ici : Multiplexeur. MUX sera parfois utilisé en lieu et place de multiplexeur. Pour la suite de l'exercice on s'intéressera au multiplexeur 4/1 (qui n'existe pas dans la série 7400) Ses entrées (normales) sont appelées e0, e1, e2 et e3 tandis que les entrées de sélection sont c0 et c1 (c0 poids faible). La sortie est s.

  1. Combien d'entrées et donc combien de lignes comporterait une table de vérité normale décrivant ce composant ?
  2. Établir la table SI-ALORS de cette fonction. (Combien de lignes ?)
  3. En déduire l'équation logique de ce multiplexeur.

Modèle:Boîte déroulante

Retour sur VHDL

Il est important de garder en tête le fait qu'une table de vérité ou une table généralisée doit être réalisée avec une structure with-select-when (même s'il reste possible de faire autrement). Voici un exemple avec la table de vérité du tout début de ce TD.

Table de vérité et sa programmation VHDL
Entrées Sorties VHDL
a b y z
-- exemple de table de vérité
ENTITY ex IS PORT (
  -- a, b
  e : IN bit_vector(1 downto 0);
  -- y, z
  s : OUT bit_vector(1 downto 0));
END ex;
ARCHITECTURE aex OF ex IS
BEGIN
  WITH e SELECT
    s <= "01" WHEN "00",
         "10" WHEN "01",
         "11" WHEN "10",
         "10" WHEN OTHERS;    
END aex;
0 0 0 1
0 1 1 0
1 0 1 1
1 1 1 0


Soit la table de vérité généralisée de s donnée en exemple précédemment et rappelée maintenant

Table de vérité généralisée
SI ALORS
Entrées Sorties
e1 e0 s
0 0 0
0 1 1
1 0 e2
1 1 e2+e3

Elle peut s'écrire en VHDL :

-- exemple de table de vérité généralisée

ENTITY fct IS PORT (
  e3,e2 : IN bit;
  e : IN bit_vector(1 DOWNTO 0);
  s : OUT bit);
END fct;
ARCHITECTURE archfct OF fct IS
BEGIN
  WITH e SELECT
    s <= '0' WHEN "00",
         '1' WHEN "01",
         e2 WHEN "10",
         e2 OR e3 WHEN OTHERS;    
END archfct;

Exercice 3

Écrire un programme VHDL pour le multiplexeur de l'exercice 2. Modèle:Boîte déroulante

Générateur de fonction logique combinatoire

Un multiplexeur utilisé comme ci-dessus permet de réaliser des fonctions combinatoires.


La notation chapeautant des lettres signifie que A est poids faible pour la figure de gauche et donc que B est poids faible pour la figure de droite. À gauche la fonction obtenue est :

S=C¯.B¯.A¯+C.B¯.A+x.C¯.B.A+y.C.B¯.A¯+C.B.A¯

Exercice 4

Quelle est la fonction réalisée par le schéma de droite de la figure ci-dessus ? Modèle:Boîte déroulante

Exercice 5

Une société est composée de 4 actionnaires ayant les nombres suivants d'actions A=60, B=100, C=160 et D=180.

Nous désirons construire une machine à voter automatiquement, tenant compte dans le résultat du poids en actions de chaque personne. La machine dispose de 4 boutons poussoirs A, B, C, D et le résultat sera un voyant V qui s'allumera si la majorité pondérée appuie sur les boutons.

Chercher les équations et implanter un circuit avec un MUX 8/1, puis un MUX 4/1 et enfin un MUX 2/1. Modèle:Boîte déroulante Modèle:Sommaire