Logique (sciences de l'ingénieur)/Exercices/TD2
Assemblage des fonctions élémentaires
modifierÀ 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
modifierVé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
modifierPour é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
modifierUne 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
modifierTrouver 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
modifierPour 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.