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