Beruflich Dokumente
Kultur Dokumente
Documents/calculatrices interdits
2) Quel est le principe (très rapidement) d’une cellule SRAM ? Donnez ses avantages et ses
inconvénients.
4) Quelle est la différence entre un signal et une variable? Dans quelles parties du programme
sont-ils respectivement déclarés?
5) Quelle est la différence entre les instructions dans un process et celles hors d’un process ?
6) Quelle technique peut-on utiliser en graphique pour stabiliser des signaux de sortie (pour
éviter les "glitchs")? Même question en VHDL.
7) Pourquoi vaut-il mieux utiliser l'entrée enable d'un compteur plutôt que l'entrée horloge
pour une horloge secondaire?
10) Comment réaliser les fonctions de décalage à gauche ou à droite (combinatoire) en VHDL
(sans utiliser de fonction) dans le cas de std_logic_vector? Dans le cas d'integer?
Idem en graphique pour les std_logic_vector.
11) Que fait globalement le programme suivant? (De quel type de machine s'agit-il? Tracez le
graphe d'état. Quel type de reset est utilisé?)
Qu'est-ce qui a été oublié pour une meilleure écriture de ce programme?
12) Que fait le programme suivant? (fonctionnement global, ne pas décrire ligne par ligne)
LIBRARY ieee; tmp <='1';
USE ieee.std_logic_1164.all; else compt <= compt +1;
USE ieee.numeric_std.all; tmp <= tmp;
ENTITY exam IS end if;
PORT ( END PROCESS;
h, sel, vali, prog: IN STD_LOGIC;
data : IN integer range 0 to 255; pc:process (sel, vali, prog, data,ta,tb)
sega, segb : OUT STD_LOGIC_VECTOR begin
(1 to 7); if vali ='1' and prog ='1' then
q: OUT STD_LOGIC); if sel ='0' then
END exam; ta <= data;
tb <= tb;
ARCHITECTURE archi OF exam IS else tb <= data;
component seven_seg is ta <= ta;
port ( end if;
entree : in std_logic_vector (3 downto 0); end if;
sortie : out std_logic_vector (1 to 7)); end process;
end component;
SIGNAL compt,ta,tb, aff: integer range 0 to 255; with selprog select
SIGNAL tmp : std_logic; aff <= ta when "00",
SIGNAL selprog: std_logic_vector (1 downto 0); tb when "10",
data when others;
BEGIN
ps:PROCESS afa: seven_seg PORT MAP
BEGIN (std_logic_vector(to_unsigned(aff,4)) ,sega);
WAIT UNTIL h='1'; afb: seven_seg PORT MAP
if (tmp ='1' and compt >=ta) then (std_logic_vector(to_unsigned(aff/16,4)) ,segb);
compt <= 0;
tmp <='0'; q <= tmp;
elsif (tmp ='0' and compt >= tb) then selprog <= sel & prog;
compt <= 0; END archi;