You are on page 1of 9

1

Universit Mouloud MAMMERI Master 1 RMSE


Tizi-Ouzou Groupe n1
Dpartement informatique
Du 22/01/2014 au 28/01/2014


TP N1 de VHDL



Binme :
AYACHE Karima
HAFID Salim








2


Le circuit logique tudier

Le rapport se droulera sur ltude dun circuit logique donn. Cette tude se devise en
deux parties :
La partie thorique qui se rsume dans la prsentation de la table de vrit et les quations
logiques de ce circuit.
La partie pratique consiste faire une simulation dans le langage VHDL en traduisant la
table de vrit et les quations logiques en code source VHDL.
Enfin tablir une comparaison pour confirmer ou infirmer les rsultats obtenus dans la
partie thorique.

I ) La partie thorique :
Le circuit logique donn est compos de trois portes logiques :

1) La premire est une porte XOR qui prend deux entres A et B et qui produit en sortie un
signal quen surnomme Y.

2) La deuxime porte est une porte NOR qui prend deux entres Y et C et qui produit R en
sortie.

3) La troisime est une porte NAND qui prend trois entres Y, R et D et produit S en
sortie.

Dfinition de la fonction logique XOR : la fonction XOR (ou exclusif) est un oprateur
logique de lalgbre de Boole. deux oprandes, qui peuvent avoir chacun la valeur 1 ou
0 (vrai ou faux), il produit en sortie un rsultat qui a lui-mme les valeurs 1 ou 0 (vrai ou
faux). Son symbole est un plus dans un cercle .

La table de vrit de la fonction XOR est :
A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 1
3

Dfinition de la fonction logique NOR : la fonction logique NOR (NON-OU) est un
oprateur logique de lalgbre de Boole. deux oprandes, qui peuvent avoir chacun la
valeur 1ou 0 (vrai ou faux), il produit un rsultat qui a lui-mme la valeur 1 ou 0 (vrai ou
faux).

La table de vrit de la fonction NOR est :











Dfinition de la fonction logique NAND : la fonction logique NAND (NON-ET) est une
opration de lalgbre de Boole. deux oprandes, qui peuvent avoir chacun la valeur de
1ou 0 (vrai ou faux), il produit un rsultat qui a lui-mme la valeur de 1ou 0 (vrai ou faux).

La table de vrit de la fonction NAND est :









Les deux lois de De Morgan :

1) La ngation de la conjonction de deux propositions est quivalente la disjonction des
ngations des deux propositions, ce qui signifie non (A et B) est (non A) ou (non B).


2) La ngation de la disjonction de deux propositions est quivalente la conjonction des
ngations des deux propositions, ce qui signifie que non (A ou B) est (non A) et (non B).





A B A NOR B
0 0 1
0 1 0
1 0 0
1 1 0
A B A NAND B
0 0 1
0 1 1
1 0 1
1 1 0
4

1) La table de vrit correspondante au circuit donn :













La table de vrit contient 16 lignes car on a 4 variables, ce qui nous permet dtudier tous
les cas possible que peut prendre les entres A, B, C et D.
2) Les quations logiques de ce circuit sont :
R = (A B) + C = (A B) . C = (A . B + A . B ) . C
le rsultat obtenu est simplifi en utilisant les simplifications suivantes :
a) la 2
me
loi de De morgon qui est A+B = A . B
b) la proprit de XOR A B = (A . B + A . B )

S = ( A B) . (A B) + C . D = (A B) + (A B) + C + D
S = (A B) + (A B) + C + D = 1 + C + D = 1 + D
S=1 le rsultat obtenu est simplifis en utilisant les simplifications algbriques
suivantes :
a) la 1
re
loi de De Morgan A . B = A + B
b) la simplification algbrique que A = A
c) deux proprits de OR A + A = 1 et 1 + A = 1
A B C D R S
0 0 0 0 1 1
0 0 0 1 1 1
0 0 1 0 0 1
0 0 1 1 0 1
0 1 0 0 0 1
0 1 0 1 0 1
0 1 1 0 0 1
0 1 1 1 0 1
1 0 0 0 0 1
1 0 0 1 0 1
1 0 1 0 0 1
1 0 1 1 0 1
1 1 0 0 1 1
1 1 0 1 1 1
1 1 1 0 0 1
1 1 1 1 0 1
5

3) Les signaux rsultants aux sorties R et S sont dduits de la table de vrit et des
quations logiques .Ils sont reprsents dans la figure suivante (hypothse):

Fig.-1) Reprsentation des signaux rsultants aux sorties S et R.
I I ) la partie pratique :
III) 1)
1) Les deux programmes en VHDL :
Le programme VHDL en utilisant lquation logique :
library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity circuit is
port(
A : in STD_LOGIC;
B : in STD_LOGIC;
C : in STD_LOGIC;
D : in STD_LOGIC;
S : out STD_LOGIC;
R : out STD_LOGIC
);
end circuit;

architecture circuitarchi of circuit is
begin
S<= 1;
R <= not( (A xor B) or C);
end circuitarchi;







6

Le programme VHDL en utilisant la table de vrit :
library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity circuit is
port(
A : in STD_LOGIC;
B : in STD_LOGIC;
C : in STD_LOGIC;
D : in STD_LOGIC;
S : out STD_LOGIC;
R : out STD_LOGIC
);
end circuit;

architecture circuitarchi of circuit is
begin
S<= '1';
R<= (not A and not B and not C) or (A and B and not C);

end circuitarchi;

2) Gnration des signaux de sorties S et R du circuit aprs lexcution du programme
avec les signaux dentres (A, B, C, D)

a) : En utilisant lquation logique :



(Fig.-2) le graphe obtenu aprs excution du programme en VHDL en utilisant lquation
logique







7

b) : En utilisant la table de vrit :



(Fig.-3) le graphe obtenu aprs excution du programme en VHDL en utilisant la table de
vrit

Les graphes obtenus aprs lexcution des deux programmes sont identiques. Dans les deux
graphes S vaut 1 quel que soit le signal des entres A, B, C et D. R vaut 1 dans les cas (A=0,
B=0, C=0) et (A=1, B=1, C=0) et vaut 0 pour les autres cas.
On trouve que ces rsultats sont les mmes que ceux qui sont proposs dans la partie
thorique do leurs confirmation.

3) Le programme VHDL o les entres sont le bus 4 fils E(3:0) et les sorties sont le
bus 2 fils S(1:0)
3.1) En utilisant la table de vrit :
Table de vrit :



















E S
0000 11
0001 11
0010 10
0011 10
0100 10
0101 10
0110 10
0111 10
1000 10
1001 10
1010 10
1011 10
1100 11
1101 11
1110 10
1111 10
8

Programme VHDL:

library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity circuit is
port(
E : in STD_LOGIC_VECTOR(0 to 3);
S : out STD_ LOGIC_VECTOR(1 downto 0)
);
end circuit;
architecture circuitarchi of circuit is
begin
S<= 11 when (E=0000 or E=0001 or E=1100 or E=1101) else
10;
end circuitarchi;


(Fig.-3) le graphe obtenu aprs excution du programme en VHDL en utilisant la table
de vrit le bus E(3 :0) comme entre et le bus S(1 :0) comme sortie
3.2) En utilisant la fonction logique
library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity circuit is
port(
E : in STD_LOGIC_VECTOR(0 to 3);
S : out STD_ LOGIC_VECTOR(1 downto 0)
);
end circuit;
architecture circuitarchi of circuit is
begin
S(0)<= not( E(0) xor E(1)) and not E(2);
S(1)<= 1;
end circuitarchi;


(Fig.-4) le graphe obtenu aprs excution du programme en VHDL en utilisant la fonction
logique avec le bus E(3 :0) comme entre et le bus S(1 :0) comme sortie
9


Les graphes obtenus aprs lexcution des deux programmes sont identiques. Dans les deux
graphes S vaut 11 dans les cas (E=0000), (E=0001), (E=1100) et (E=1101) et vaut 10 pour
les autres cas.
On trouve que ces rsultats sont les mmes que ceux qui sont obtenus dans la premire partie
de la partie pratique, do la confirmation de lhypothse de la partie thorique.

Conclusion :
Ce TP nous a permet dtudier le circuit donn en utilisant deux mthodes :
Dans lune les entres et les sorties sont ralises avec un seul fil, par contre dans lautre les
entres sont un bus quatre fils et les sorties sont un bus deux fils.
On a dduit que la deuxime mthode est plus pratique et plus facile que ce soit dans le cot
programmation du circuit ou dans la lecture des graphes.

You might also like