mercredi 5 août 2015

VHDL - Instruction sur plusieurs cycles d'horloges

Salut tout le monde !

Je travaille sur un projet où je produis un timestamp à travers un compteur qui est incrémenté de 1 à chaque cycle d'horloge.
Or à chaque fois que je charge la valeur d'horodatage dans ma mémoire tampon, la valeur n'est pas incrémentée de 1 en 1, mais par la taille de mon timestamp qui est de 8 bits.
Donc, je vais avoir ma première valeur à 0, puis la seconde valeur à 7 le troisième à 15 et ainsi de suite ....

Je dois incrémenter mon compteur non pas chaque cycle d'horloge, mais toutes les 8 cycles d'horloge, afin de résoudre le problème.
Donc, je voudrais savoir si une telle chose est possible, et si oui, comment pourrais-je le faire?
J'ai essayé de le faire avec une boucle ou avec une déclaration d'attente, mais jusqu'à présent, rien n'a fonctionné.

Voici le code de mon compteur:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY counter IS
PORT(
clk_i : in std_logic;
count : out std_logic_vector(7 DOWNTO 0)
) ;
end counter;

ARCHITECTURE rtl OF counter IS

SIGNAL s_count : STD_LOGIC_VECTOR(7 DOWNTO 0);

begin
process (clk_i)
begin
if clk_i'event AND clk_i = '1' then
s_count <= s_count + 1;
end if;

end process;
count <= s_count;
end;

Merci d'avance.

Cordialement,
David.
VHDL - Instruction sur plusieurs cycles d'horloges

Aucun commentaire:

Enregistrer un commentaire