Académique Documents
Professionnel Documents
Culture Documents
Licence professionnelle
Semestre 6
Module : Conception des
Systèmes Embarqués
Série II
2
Corrigé de l’exercice 1 :
-- Déclaration des bibliothèques utilisées
library IEEE;
use IEEE.std_logic_1164.all;
4
Corrigé de l’exercice 2 :
5
Exercice 3 :
Ecrire un programme en VHDL pour un multiplexeur 4-1 avec un « WHEN » avec deux entrées de sélection.
SEL0 SEL1 S
0 0 E0
0 1 E1
1 0 E2
1 1 E3
6
Corrigé de l’exercice 3 :
port (E0, E1, E2, E3, SEL0, SEL1: in std_logic; E2 when (SEL0='1' and SEL1='0') else
7
Exercice 4 :
Ecrire un programme en VHDL pour un multiplexeur comportemental 4 vers 1 et une entrée de sélection d’un
2 bits avec CASE.
8
Corrigé de l’exercice 4 :
architecture CMP of MUX is
begin
process (E0, E1, E2, E3, SEL)
library ieee;
begin
use ieee.std_logic_1164.all;
case SEL is
when "00" => S <= E0;
entity MUX is
when "01" => S <= E1;
port (E0, E1, E2, E3: in std_logic;
when "10" => S <= E2;
SEL: in std_logic_vector(1 downto 0);
when "11" => S <= E3;
S: out std_logic);
end case;
end MUX;
end process;
end CMP;
9
Exercice 5 :
Description : Il s’agit de créer un circuit qui compte de 0 à 9. L’évènement qui incrémente le compteur est le
front montant d’horloge. Quand le compteur vaut 9 et que survient un nouveau front montant, il doit être remis
à 0.
10
architecture behav of compteur is
signal count : integer range 0 to 9; -- signal interne
begin
Corrigé de l’exercice 5 :
process ( clock ) -- Process sensible à l’horloge
begin
if rising_edge ( clock ) then -- if (CLK’ event and CLK=1) then -- au
library ieee ; -- On inclus la librairie IEEE front montant
use ieee.std_logic_1164.all ; if count < 9 then -- Si le compteur a une valeur inférieure à 9
use ieee.std_logic_arith.all ; count <= count + 1; -- On met le compteur à la valeur prochaine
entity compteur is -- Définition des entrées/sorties else
port (clock : in std_logic ; count <= 0; -- Sinon on met le compteur à 0
digit : out integer range 0 to 9); end if;
end compteur; end if;
end process ;
digit <= count ;
11
end behav;
Exercice 6 :
S1
S3
S2
12
Corrigé de l’exercice 6 :
process (SEL)
begin
if SEL='0’ then
library ieee ;
S3<=S1;
use ieee.std_logic_1164.all ;
else
entity exercice is
S3<=S2;
port (A, B, SEL,CLK : in std_logic;
end if;
Out: out std_logic);
end process;
end exercice;
process (CLK,S3)
architecture desc of exercice is
begin
signal S1,S2,S3 : std_logic;
if (CLK' event and CLK=1) then
begin
Out<=S3;
Sl<=A xor B;
end if;
S2<= A and B;
end process;
end desc;
13
Exercice 7 :
𝐴𝑁𝐷1
𝐼𝑁𝑇1
𝐴_𝐼𝑁 𝐴𝑁𝐷1
𝑂𝑅1
𝐼𝑁𝑇2
𝐵_𝐼𝑁 𝑍_𝑂𝑈𝑇
𝐶_𝐼𝑁
𝐴𝑁𝐷1
𝐼𝑁𝑇3
14
entity MAJORITY is
Corrigé de l’exercice 7 :
port (A_IN, B_IN, C_IN: in BIT;
end AND1_OP ; ----Déclarer des signaux pour interconnecter les opérateurs logiques