Correction Interrogation N 1 : Logique combinatoire
Transcription
Correction Interrogation N 1 : Logique combinatoire
Électronique Numérique Année académique 2014-2015 Correction Interrogation N◦1 : Logique combinatoire Professeur: Assistants: M.Kraft D.Cerica Q.Massoz T.Schmitz Question 1 : Analyse combinatoire A B B SFA FA CFA A+B+B=A+0=A A K B 1 K X SHA Y CHA HA 1 A S0 0 CHA A AB B A 22 X 21 Y 20 DEC3-8 0 1 2 3 4 5 6 7 B+C C CHA A =OR A(BC+BC) A+BC S1 E0 E1 B+C E2 C Σm(0,1,4,5,6)=X+AY E3 F MUX4-1 F=AX+ABC 0=1 =NAND Figure 1 – Analyse du circuit. La sortie du circuit F correspond à la sortie du MUX 4-1. Commençons par calculer les bits de sélection S0 et S1 de ce multiplexeur. L’analyse du circuit est annotée en rouge sur la figure 1. Calcul de S0 et S1 Les sorties du FA, SF A et CF A , sont données par SF A = A ⊕ B ⊕ B = A ⊕ (B ⊕ B) = A ⊕ 0 = A CF A = AB + B(A ⊕ B) = AB + BAB + BAB = AB + BA = B Le bit de sélection S0 est directement connecté à SF A , donc S0 = A. Afin de trouver S1, analysons d’abord le mini-circuit à 2 étages (encadré en trait bleu sur la figure) composés de 2 portes XOR et d’une porte NXOR. Les portes XOR et NXOR du 1 1er étage ont les mêmes entrées 1 et renvoient donc en sortie 2 respectivement K et K. La porte XOR du 2ème étage possède K et K en entrée et renvoie donc toujours ”1” en sortie. Mathématiquement, cela se traduit par (A ⊕ B) ⊕ (A ⊕ B) = K ⊕ K = 1 En analysant le reste du circuit (1 porte NXOR et 2 portes NAND), le bit de sélection S1 est donné par S1 = (1 ⊕ A).(B.C) = (1 ⊕ A) + BC = A + BC Testons les différentes combinaisons des bits de sélection S0 = A et S1 = A + BC, avec S0 = A et S1 = A(B + C) S1.S0 = 0 S1.S0 = A(B + C) S1.S0 = A S1.S0 = ABC L’entrée E0 est inutile 3 car elle n’intervient pas dans l’expression de la sortie F . Seuls les calculs de E1, E2 et E3 sont utiles. En effet, F est donné par F = S1.S0.E0 + S1.S0.E1 + S1.S0.E2 + S1.S0.E3 = 0.E0 + A(B + C).E1 + A.E2 + ABC.E3 = A(B + C).E1 + A.E2 + ABC.E3 Calcul de E1 Le bit d’entrée E1 correspond à la sortie d’une porte NOR dont les entrées sont A, AB, et (B ⊕ C). Son expression devient E1 = A + AB + (B ⊕ C) = A(1 + B) + (B ⊕ C) = A + (B ⊕ C) = A.(B ⊕ C) = A.(B.C + BC) Calcul de E2 et E3 Les entrées du DEC 3-8 sont A, X et Y , où A est le bit de poids fort et Y le bit de poids faible. Pour rappel, un décodeur est un générateur de mintermes. Ici, les sorties sont complémentées ! Le bit d’entrée E2 peut être exprimé comme une somme de mintermes P E2 = m(0, 1, 4, 5, 6) En effet, plusieurs transformations du circuit (visible en vert sur la figure) permettent d’obtenir une porte OR à 5 entrées (= les 5 sorties/mintermes du DEC 3-8) : 1. SF A = A et CF A = B 2. Pour info, K = A ⊕ B 3. Pour info, E0 = 0 2 — la porte AND et la porte NAND peuvent être combinées en une porte NAND à 5 entrées — cette porte NAND dont les entrées sont complémentées est équivalente à une porte OR car M .N = M + N Ainsi, le circuit (donnant E2) se simplifie en une porte OR prenant en entrée les sorties du décodeurs D0, D1, D4, D5, et D6. L’expression booléenne de E2 est obtenue via une table de Karnaugh (voir figure 2) P E2 = m(0, 1, 4, 5, 6) = X + AY X A 1 1 1 1 1 E2=X+AY Y Figure 2 – Table de Karnaugh du bit d’entrée E2. Le bit d’entrée E3 est trouvé en transformant la porte OR dont les entrées sont complémentées en une porte NAND (visible en mauve sur la figure). Dès lors, nous trouvons que E3 = 1 puisque (1) un produit de mintermes (porte AND) vaut ”0” et (2) que le complément (porte NOT) de ”0” vaut ”1”. Nous pouvons également trouver cette réponse via l’expression algébrique brute E3 = (A.X.Y ) + (A.X.Y ) = (A + X + Y ) + (A + X + Y ) = Y + Y + ... = 1 Sortie du circuit F La sortie du MUX 4-1, F , est donné par F = = = = A(B + C).E1 + A.E2 + ABC.E3 A(B + C).A.(B.C + BC) + A.(X + AY ) + ABC.1 0 + A.X + AAY + ABC A.X + ABC Sa table de vérité est visible à la table 1. 3 A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 X 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 F 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 F 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 mi 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Table 1 – Table de vérité de F et F . Implémentation de F avec un nombre minimum de portes NOR Afin d’implémenter F avec un nombre minimum de portes NOR, F doit être exprimé sous la forme d’un produit de somme optimal. A cette fin, nous utilisons la table de Karnaugh sur F (pour obtenir F = somme de produit optimal) suivi du théorème De Morgan (pour obtenir F = produit de somme optimal). Via la table de Karnaugh (voir figure 3), nous obtenons F = A.B + A.C + A.X L’application du théorème De Morgan permet d’obtenir l’expression de F sous forme d’une produit de somme F = (A + B).(A + C).(A + X) Le double complément de F , F , nous donne directement l’implémentation de F avec un nombre minimum de portes NOR (visible figure 4) F = F = (A + B).(A + C).(A + X) = (A + B) + (A + C) + (A + X) 4 C A 1 1 1 1 1 1 1 1 1 1 B X F=AB+AC+AX Figure 3 – Table de Karnaugh de F . A B A C F A X Figure 4 – Implémentation de F avec un nombre minimum de portes NOR. 5 Question 2 : Synthèse combinatoire La solution présentée ci-dessous n’est qu’une des solutions possibles. Entrées (4 bits) ( e, g, m = ( p = 1 si le bouton (resp. e, g ou m) est pressé 0 sinon 1 si une pièce est détectée 0 sinon Sorties (4 bits) 00 01 V1 V0 = 10 11 aucune vanne n’est ouverte seule la vanne d’eau est ouverte la vanne d’eau et la vanne de sirop grenadine sont ouvertes la vanne d’eau et la vanne de sirop menthe sont ouvertes ( 1 si le message d’erreur ”opération erronnée” s’affiche à l’écran 0 sinon ( 1 si une pièce doit être rendue à l’utilisateur 0 sinon OE = RP = si si si si Remarque : Il est possible de coder les lois de fonctionnement du système sur 3 bits mais dans ce cas, les variables de sorties relatives à la commande des vannes et au message d’erreur ne sont plus distinctes. Vu l’énoncé des sous-questions 4. et 5., on définit donc 4 variables de sorties. 6 Lois de fonctionnement (étape facultative) : Rq : On considère qu’il n’est mécaniquement pas possible d’enfoncer plus de deux boutons poussoirs simultanément ! ⇒ Si p e g m = X 1 1 1 −→ V1 V0 OE RP = XXXX 1) Le système est en mode ”off” (vannes des réservoirs fermées et pas d’action du système) tant qu’aucun bouton poussoir n’a été pressé. Qu’une pièce ait été introduite ou non n’y change rien. ⇒ Si p e g m = X 0 0 0 −→ V1 V0 OE RP = 0 0 0 0 2) L’action de presser un bouton engendre l’ouverture conditionnelle des vannes des réservoirs. Les boutons e, g et m commandent respectivement l’ouverture de la vanne : · d’eau (gratuite), ⇒ Si p e g m = 0 1 0 0 −→ V1 V0 = 0 1 · d’eau et de sirop grenadine (à condition d’introduire une pièce), ⇒ Si p e g m = 1 0 1 0 −→ V1 V0 = 1 0 · d’eau et de sirop menthe (à condition d’introduire une pièce), ⇒ Si p e g m = 1 0 0 1 −→ V1 V0 = 1 1 3) Si l’utilisateur presse l’un des deux boutons correspondant à une boisson payante au sirop (g ou m) sans avoir introduit de pièce dans le distributeur, le message ”opération erronnée” s’affiche sur l’écran et aucune vanne n’est ouverte. ⇒ Si p e g m = 0 0 1 0 ou 0 0 0 1 −→ V1 V0 OE RP = 0 0 1 0 4) A l’inverse, si l’utilisateur demande une eau pure tout en ayant introduit une pièce dans le distributeur, rien ne s’affiche à l’écran et l’utilisateur récupère sa pièce tout en obtenant le verre d’eau demandé. ⇒ Si p e g m = 1 1 0 0 −→ V1 V0 OE RP = 0 1 0 1 5) Si l’utilisateur presse simultanément le bouton de commande d’eau pure (e) et l’un des deux boutons de commande d’eau au sirop (g ou m), l’opération est traitée comme si seul le bouton correspondant à l’eau au sirop avait été pressé. ⇒ Si p e g m = 1 1 1 0 −→ V1 V0 = 1 0 Si p e g m = 1 1 0 1 −→ V1 V0 = 1 1 cf. 2) ⇒ Si p e g m = 0 1 1 0 −→ V1 V0 OE RP = 0 0 1 0 Si p e g m = 0 1 0 1 −→ V1 V0 OE RP = 0 0 1 0 cf. 3) 6) Enfin, si l’utilisateur presse simultanément les boutons g et m, le message ”opération erronnée” s’affiche sur l’écran, aucune boisson n’est servie et la pièce éventuellement introduite est rendue. ⇒ Si p e g m = 0 0 1 1 −→ V1 V0 OE RP = 0 0 1 0 Si p e g m = 1 0 1 1 −→ V1 V0 OE RP = 0 0 1 1 7 Table de vérité p e g m V1 V0 OE RP mi 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 2 0 0 1 1 0 0 1 0 3 0 1 0 0 0 1 0 0 4 0 1 0 1 0 0 1 0 5 0 1 1 0 0 0 1 0 6 0 1 1 1 X X X X 7 1 0 0 0 0 0 0 0 8 1 0 0 1 1 1 0 0 9 1 0 1 0 1 0 0 0 10 1 0 1 1 0 0 1 1 11 1 1 0 0 0 1 0 1 12 1 1 0 1 1 1 0 0 13 1 1 1 0 1 0 0 0 14 1 1 1 1 X X X X 15 Table 2 – Table de vérité relative à la question de synthèse 8 Ei (OE) g+m g+m g.m g.m Equations simplifiées des sorties V1 V0 Par Karnaugh (voir figure 5), on obtient : V1 = pḡm + pg m̄ V0 = eḡ m̄ + pḡm g X 1 X 1 1 1 p g X 1 1 1 X 1 e p m V1= pgm + pgm e m V0= egm + pgm Figure 5 – Tables de Karnaugh pour les sorties V1 et V0 du système (Facultatif) On en déduit que les fonctions de commande des vannes d’eau, de grenadine et de menthe peuvent s’écrire respectivement : · V E = V1 + V0 = eḡ m̄ + pḡm + pg m̄ · V G = V1 · V¯0 = pg m̄ · V M = V1 · V0 = ḡm Implémentation de la sortie OE à l’aide d’un multiplexeur 2-1 Vu la dernière colonne de la table de vérité, on peut implémenter la sortie OE à l’aide d’un multiplexeur 2-1 ayant pour entrée de sélection la variable p. En ordonnant les colonnes de gauche de la table de vérité selon e g m p plutôt que p e g m, on aurait également pu obtenir un multiplexeur 2-1, ayant cette fois pour entrée de sélection la variable g. Ces implémentations sont illustrées à la figure 6. 0p g+m 0 g.m 1 g 1 20 OE Mux 2-1 m.p 0 m+p 1 20 OE Mux 2-1 Figure 6 – Implémentation de la sortie OE à l’aide d’un multiplexeur 9 Question 3 : VHDL Répondez aux questions suivantes : — Qu’est ce qu’une entité, qu’est ce qu’une architecture ? — Une entité décrit les entrées/sorties (contenant) — Une architecture décrit le comportement de l’entité (contenu) — Qu’elle est la différence entre un port de type buffer et un port de type inout ? — Un buffer est une sortie dont on peut relire la valeur. — Inout est un port qui peut être utilisé comme une entrée ou comme une sortie. — Complétez le code ci dessous pour que les 2 architectures soient identiques et représentent la fonction O = A.B+C . e n t i t y Ofunction i s port ( O : out s t d l o g i c ; A : in s t d l o g i c ; B : in s t d l o g i c ; C : in s t d l o g i c ); end O f u n c t i o n ; a r c h i t e c t u r e Ofunction arch 1 of Ofunction i s signal X : std logic ; begin g a t e 0 : and2 p o r t map(A, B,X ) ; g a t e 1 : o r2 p o r t map(X, C,O) ; end a r c h i t e c t u r e O f u n c t i o n a r c h 1 ; a r c h i t e c t u r e Ofunction arch 2 of Ofunction i s begin O <= (A and B) o r C; end a r c h i t e c t u r e O f u n c t i o n a r c h 2 ; 10