Logique (sciences de l'ingénieur)/Exercices/TD2

Leçons de niveau 11
Une page de Wikiversité, la communauté pédagogique libre.
Travaux dirigés n°2
Image logo représentative de la faculté
Exercices no2
Leçon : Logique (sciences de l'ingénieur)

Exercices de niveau 11.

Exo préc. :Travaux dirigés n°1
Exo suiv. :Travaux dirigés n°3
En raison de limitations techniques, la typographie souhaitable du titre, « Exercice : Travaux dirigés n°2
Logique (sciences de l'ingénieur)/Exercices/TD2
 », n'a pu être restituée correctement ci-dessus.




Assemblage des fonctions élémentaires[modifier | modifier le wikicode]

À partir des fonctions élémentaires présentées au TD 1, il est possible d’en construire de plus complexes, ayant par exemple 3 variables d'entrées… Une question vient alors à l'esprit : comment trouver la table de vérité correspondante ?


En calculant d’abord d, puis y, on trouve la table de vérité complète :

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

À partir d’un schéma il est donc très simple de trouver une table de vérité ou une équation. Cette équation possédera plusieurs parenthèses si elle est établie directement à partir du schéma. On peut supprimer ces parenthèses en utilisant la distributivité (elle sera utilisée plus tard). Un moyen de ne pas avoir de parenthèses est d’établir les équations à partir de la table de vérité.

Il est facile de montrer que plusieurs schémas différents peuvent donner une même table de vérité. On peut donc avoir plusieurs équations logiques pour une même fonction. Le but de la logique est en général de trier un peu ces équations et de trouver quelles sont celles qui ont un intérêt.

Exercice 1[modifier | modifier le wikicode]

Vérifier si les deux circuits combinatoires ci-dessous ont la même table de vérité, écrire ensuite la ou les équations booléennes correspondantes.


Retour sur VHDL[modifier | modifier le wikicode]

Pour écrire un programme VHDL qui décrit un schéma, on commence par décrire les portes élémentaires. Un programme VHDL comporte une partie entité et une partie architecture (VHDL).

-- Commentaire VHDL
ENTITY et IS
PORT(a,b : IN BIT;
	y : OUT BIT);
END et;
--VHDL
ARCHITECTURE truc OF et IS
BEGIN
  y<=a AND b;
END truc;

On suppose que les portes élémentaires du TD1 s'appellent oui, inverseur, et, et_non, ou, ou_non, ouex. À partir de ces fonctions élémentaires on peut décrire un schéma (description structurelle) de la façon suivante :


-- Commentaire VHDL
ENTITY Fct IS
PORT(e0,e1,e2 : IN BIT;
	s : OUT BIT);
END Fct;

ARCHITECTURE truc OF Fct IS
SIGNAL e0e1,e2bar : BIT;
BEGIN
  i1:et PORT MAP(e0,e1,e0e1);
  i2:inverseur PORT MAP(e2,e2bar);
  i3:ou PORT MAP(e0e1,e2bar,s);
END truc;

Remarque : l'écriture du programme précédent n’est pas tout à fait complète, il manque le "package" mais nous n'évoquons pas ce problème pour le moment.

Les tableaux de Karnaugh[modifier | modifier le wikicode]

Une représentation plus synthétique existe pour les fonctions à plusieurs variables, c’est le tableau de Karnaugh : ( Table de Karnaugh)

On rappelle leur structure maintenant pour deux, trois et quatre variables :


Exercice 2[modifier | modifier le wikicode]

Trouver les tables de vérités et les tableaux de Karnaugh pour S1 et S2 donnés par les schémas ci-dessous. Écrire les programmes VHDL correspondants.


Exercice 3[modifier | modifier le wikicode]

Pour une des relations de De Morgan du TD précédent, faire deux schémas (à partir des sept fonctions élémentaires) et écrire les programmes VHDL (descriptions structurelles) correspondants.