Vous êtes sur la page 1sur 5

Corrigé du TEST 2

«ELC1810-PLD ET PROGRAMMATION VHDL»


Filière Génie Electrique Année 2018-2019
Niveau 4éme Année Session hiver 2018
Enseignant :

Nom de l’étudiant(e) : ……………………………………………………………………

Niveau :………………………………………

Groupe : ……………………………………..

N° de Place : ………………………………

Directives :

 Documentation non permise


 Vous avez 01h30 pour effectuer le test
 L’examen comprend en tout 06 pages (Celle-ci incluse)

 Note : Vérifiez si vous avez en main le texte complet avant de commencer


à répondre aux questions.

BONNE CHANCE

Réservé à l’administration :

Note ………… / ………


………………………………………………………………………..
…………………………………………………………………………
Observations du …………………………………………………………………………
…………………………………………………………………………
surveillant …………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
Question de cours :

1- Dans un PROCESS, quelle est la différence entre une affectation à une variable et à un
signal.

Dans un PROCESS, l’affectation d’un état logique à une variable est immédiate.
Pour un signal, l’affectation sa se fait après le déroulement du PROCESS.

2- Expliquer l’utilité de l’instruction ASSERT

L’instruction ASSERT est une Instruction de débogage. Elle est très utile pour
vérifier les violations du timing à l’aide de l’option SEVERITY qui permet de
définir le niveau d'importance de l'alerte.

Exercice :

1- Donner la description VHDL d’une bascule D avec les entrées D, H et les sortie Q et
Qb (complément de Q). Ce tableau présente le fonctionnement de cette bascule :

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity d_bascule1 is
port(
clk: in std_logic;
D: in std_logic;
Q: out std_logic;
Qb: out std_logic);
end entity;

architecture bev of d_bascule1 is


signal S: std_logic;

Session : hiver 2018 Page 2


begin
process (clk)
begin
if (rising_edge (clk)) then
S <=D;
end if;
end process;
Q<=S;
Qb<= not S;
end bev;

2- Soit une simple bascule D dont la sortie inverseuse est envoyée sur son entrée D. Ainsi,
à chaque front montant de l'entrée d'horloge, la donnée transférée sur la sortie est
complémentée. La fréquence du signal est donc divisée par deux :

Donner la description VHDL d’un diviseur de fréquence basée sur le fonctionnement


du circuit là-dessus avec deux entrées CLK, RESET et une sortie S.
 RESET permet l’initialisation de la sortie S par un niveau logique haut.

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity d_bascule is
port(
clk: in std_logic;
s: out std_logic;

Session : hiver 2018 Page 3


reset: in std_logic);
end entity;

architecture bev of d_bascule is


begin
process (clk)
variable d, q: std_logic;
begin
if (reset ='1') then
s<='1';
elsif (rising_edge (clk)) then
q:=d;
s<=q;
d:=not q;
end if;
end process;
end bev;

3- Soit ce circuit numérique basé sur 3 bascules D

Compléter le chronogramme suivant :

4- Déduire le fonctionnement de ce circuit.

Ce circuit représente un décompteur modulo 8.

Session : hiver 2018 Page 4


5- En se basant sur une description structurelle, Donner la description VHDL de ce
circuit avec les entrées CLK, RESET et la sortie Q (2 downto 0):
 Utiliser le composant dont la description est présentée dans la question 2

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity CM8 is
port (clk: in std_logic;
q: out std_logic_vector (2 downto 0);
reset: in std_logic);
end;

architecture bev of CM8 is


component d_bascule
port(clk: in std_logic;
s: out std_logic;
reset: in std_logic);
end component;
signal d: std_logic_vector (2 downto 0);
begin
u1: d_bascule port map (clk, d(0),reset);
u2: d_bascule port map (d(0), d(1),reset);
u3: d_bascule port map (d(1), d(2),reset);
q<=d;
end bev;

Session : hiver 2018 Page 5

Vous aimerez peut-être aussi