TD 4 « VHDL »
Description de circuits simples en VHDL
Exercice 1 :
1- On donne le programme VHDL suivant :
entity EXERCICE1 is port (
X : in bit ;
Y : out bit) ;
end EXERCICE1 ;
architecture A_EXERCICE1 of EXERCICE1 is
signal S : bit ;
begin
process (X)
begin
S <= X ;
Y<= S ;
end process ;
end A_EXERCICE1 ;
a. On suppose que X évolue comme le montre la figure ci-dessous. Donner alors sur la
même figure de S et de Y, sachant qu’au début S=1 et Y=0.
b. Exprimer alors Y en fonction de X.
Exercice 2 :
Soit l’extrait suivant d’un code VHDL
1. …….
2. Process (X)
3. ….. (Déclaration)
4. begin
5. A <= 1 ;
6. B := A+2
7. C <= A + B ;
8. D := B+C ;
9. E<= C+D ;
10. end process ; …..
a. Quelle(s) affectation(s) sera (seront) faite(s) après la ligne 4. Et avant la ligne 10 ?
b. Quand l’instruction de la ligne 2 sera-t-elle exécutée ?
c. Quand l’instruction des lignes 5. , 6. , 7. , 8. , 9. , 10. Seront-t-elles exécutées ?
d. Quand on exécute les instructions du processus pour la première fois après la remise à
0 de tous les signaux.
i. Quelles sont les valeurs de A, B et C lorsqu’on arrive à la ligne 8. ?
ii. Quelles sont dans ce cas les valeurs qu’auront tous les signaux présents
dans cet extrait à la fin du processus ?
e. Quelles sont les valeurs d’auront les signaux présents dans cet extrait, quand on
exécute les instructions du processus pour la deuxième fois ?
Exercice 3 :
Soit le programme VHDL suivant :
entity EX is port (
A,B : in bit ;
C : out bit ) ;
end EX ;
architecture A_EX of EX is
signal S : bit ;
begin
S <= ‘0’ ;
process (B)
begin
if (B’ event and B=’1’) then S <= A ; e
end if,
end process ;
C <= S when D = ‘1’ else not S ;
end A_EX ;
Ce programme VHDL contient une erreur majeure (non syntaxique). Il s’agit de la trouver et
de l’expliquer.
Exercice 4 :
On considère le code VHDL suivant :
entity CR is port (A,B,C,D,CLK : in bit ; Y :out bit) ;
end CR ;
architecture A_CR of CR is
signal I,J : bit ;
begin
Y <= E or J ;
J <= A and B ;
process (CLK) begin
if (CLK’ event and CLK=’1’) then E<= E and I ;
end if ;
end process ;
I <= C when D=’0’ else not (C);
end A_CR ;
Tracer le circuit logique (à base de portes logiques et bascules) décrit par ce code VHDL.
Exercice 5 :
Décrire en VHDL le transceiver suivant :
Exercice 6 :
Décrire en VHDL le transceiver à bascules suivant :
Exercice 7 :
Décrire en VHDL un multiplexeur 8-vers7 à 3 états chacune des 8 entrées a 8 bits.