Changes

Jump to: navigation, search

Talk:Langage VHDL

1,686 bytes added, 22:06, 24 August 2016
=> avancement projet : en cours
=> Date de modification : 0924/08/2016
=> problème rencontré :
attention, comme le langage VHDL est typé, la constante qui sera comparée par exemple à une variable, celle-ci devra être de la même taille sinon ceci provoquera des erreurs.
 
2) Réalisation d'un compteur avec gestion d'un nouveau signal d'horloge, mais lors de la simulation, j'ai des glitches qui sont là de manière périodique et j'ai écrit de différente manières le compteur toujours le meme résultats
 
[[File:Glitch_Compteur.jpg Glitch]]
 
code 1:
CMPT_2Hz: process (CLK_1_8MHZ)
begin
-- détection d'évenement sur flanc montant --
if(CLK_1_8MHZ'event and CLK_1_8MHZ = '1') then
-- remise à zéro du compteur si atteint la valeur max ou plus grand --
if (compteur_num >= VAL_MAX_COMPTEUR_2HZ) then
compteur_num <= (others => '0');
else
compteur_num <= compteur_num + 1;
end if;
end if;
end process;
-----------------------------------------
-- Horloge 2Hz rapport cyclique de 50% --
-----------------------------------------
clk_2Hz <= '0' when compteur_num <= VAL_MAX_CMPT_DIV_2 else
'1';
clk_2Hz_SIM <= clk_2Hz;
 
code 2:
CMPT_ETAT_FUTUR_2HZ : process(compteur_num_p)
begin
if (compteur_num_p >= VAL_MAX_COMPTEUR_2HZ) then
compteur_num_f <= (others => '0');
else
compteur_num_f <= compteur_num_p + 1;
end if;
end process;
CMPT_ETAT_PRESENT_2HZ : process(CLK_1_8MHZ)
begin
if((CLK_1_8MHZ'event) and (CLK_1_8MHZ = '1')) then
compteur_num_p <= compteur_num_f;
end if;
end process;
-----------------------------------------
-- Horloge 2Hz rapport cyclique de 50% --
-----------------------------------------
CLK_2HZ_50P : process (compteur_num_p)
begin
if (compteur_num_p <= VAL_MAX_CMPT_DIV_2) then
clk_2Hz <= '0';
else
clk_2Hz <= '1';
end if;
end process;
clk_2Hz_SIM <= clk_2Hz;
952
edits