Vous êtes sur la page 1sur 2

Module : FPGA & VHDL Spécialité : M1 SYSTEMES EMBARQUES

NOTE :
Ce type d’exercices a été donné dans les examens finaux des deux spécialités :
a
Instrumentation Biomédicale et Réseaux et Télécommunications. Entrainez-vous bien.
Tmp z
Exercice 1: (EXAMEN M2 IBIO) c
+ FD
e
Modéliser en VHDL le circuit de droite en considérant
les conditions suivantes : b
1. en premier, une instruction concurrente conditionnelle
2. en second, Un process asynchrone. clk
3. en final, un seul signal intermédiaire va être utilisé
(montré sur le schéma) pas plus.
Remarques :
 Les signaux d’entrée sont donnés sur 2 bits.
 Ils sont de type STD_LOGIC.
 Il faudra insérer les bibliothèques concernées
seulement.

Exercice 2 : (EXAMEN M2 IBIO)


Compléter le chronogramme du circuit donné par le code VHDL montré ci-dessous:
Library IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
entity tst is
port (a,b,c: in std_logic;
z: out std_logic_vector(1 downto 0));
end tst;
architecture bhv of tst is
begin
process (a,b,c)
begin
z <= a & c;
if b = '1' then
z <= "01";
end if;
end process;
end bhv;

UNIVERSITE DE BOUMERDES/FACULTE DE TECHNOLOGIE/DISE/2022-2023 Page 1


Module : FPGA & VHDL Spécialité : M1 SYSTEMES EMBARQUES

Exercice 3: ( EXAMEN M1 RT)

En supposant que les composants U1 et U2, sont correctement déclarés, compléter


l’architecture du circuit donné en accord au schéma bloc donné.

Il est nécessaire d’ajouter le code


VHDL du MUX 2:1 proprement
Sans l’aide du process.
Conditions :
 Utilisation de 2 signaux
intermédiaires seulement.
 Utilisation de 2 styles :
structurel et flot de données
seulement.
entity exo3 is
port (
clk : in STD_LOGIC;
B, S: in STD_LOGIC;
A : in STD_LOGIC_VECTOR(7 downto 0);
X : out STD_LOGIC_VECTOR(3 downto 0);
Y : out STD_LOGIC);
end exo2;
architecture FLOT of exo3 is

Exercice 4 : (EXAMEN M1 RT)

 Est-ce que ces fragments de code VHDL sont compilables ? Synthétisables ? S'agit-il d'un
circuit combinatoire ou séquentiel (dans le cas où le circuit est séquentiel, donner le nom
utilisé par ISE de XILINX)?
Fragment 1: Fragment 2: Fragment 3:
process (a, b, c) process (q, r, s) begin process (a, b)
begin if (q = ’1’) then begin
if a = ’1’ then t <= ’0’; case a is
x <= b and c; elsif rising_edge(r) then when "0100" =>
y <= b or c; t <= s; c <= b;
else elsif falling_edge(r) then when "1010" =>
y <= not b; t <= not s; c <= "0110";
end if; end if; end case;
end process; end process; end process;
end process;

UNIVERSITE DE BOUMERDES/FACULTE DE TECHNOLOGIE/DISE/2022-2023 Page 2

Vous aimerez peut-être aussi