TD1 : Synthèse VHDL
Exercice 1
Proposer les codes VHDL des circuits suivants :
Exercice 2
Proposer les circuits logiques équivalents des codes VHDL suivants :
Code Code
LIBRARY IEEE; LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_1164.ALL;
Entity exe2 is Entity exe1 is
Port ( a : in std_logic vector (1 downto 0) ; Port ( a : in std_logic vector (1 downto0) ;
c : in std_logic ; b, c, d,e : in std_logic ;
s : out std_logic ); f, g,h : out std_logic );
End exe2 ; End exe1 ;
Architecture Arch of exe2 is Architecture Arch of exe1 is
Begin Begin
s <= a(0) when c = ‘0’ Process ( a, b, c, d, e)
else a(1); Begin
end Arch; Case a is
When “00” => h <= b ; f <= b;
When “01” => h <= c ; f <= c ; g <= b;
When “10” => h <= d ;
When “11” => h <= e ;
When others => null,
End case ;
End process;
End Arch;
1
Exercice 3
Proposer une description du circuit Multiplexeur 2 vers 1 de la figure 2 avec des instructions
en mode concurrent et séquentiel.
Figure 2. Multiplexeur 2 vers 1
Exercice 4
Proposer un code VHDL du circuit multiplexeur 4 vers 1 de la figure 1 et ayant une entrée de
validation « ENB ». Le multiplexeur fonctionne si l’entrée de validation « ENB » vaut ‘1’
sinon la sortie D vaut ‘0’.
Figure 1. Multiplexeur 4 vers 1
Exercice 5
Soit le circuit « codeur des donnée » présentée dans la figure 3, ayant le fonctionnement
suivant :
Pour i = 0 S0 = A0
Pour i > 0 Si = Ai * Ai-1 + Ai * Ai-1
Figure 3. Codeur des données
Proposer un code en VHDL qui permet de décrire le fonctionnement de ce circuit en utilisant
la boucle For … Loop, sachant que A et S sont de type std_logic.