Bonjour à tous,
Je reviens sur de la programmation VHDL pour un problème de vecteur.
J'aimerai pouvoir lire un élément d'un vecteur. Je m'explique : j'ai vecteur de 68 cases, et j'aimerai à chaque coup de clock pouvoir lire un autre élément ; pour faire simple j'aimerai lire tout mon vecteur mais bit à bit.
voici le début de ma réflexion :
Remarque : j'aimerai aussi éviter d'utiliser des variables de type "integer" à cause de la synthétisation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 -- code VHDL signal bit_recup : std_logic; signal cpt_68 : std_logic_vector(6 downto 0) signal vecteur_68_case : std_logic_vector(67 downto 0); -- dans un process je vais l'instruction suivante bit_recup <= vecteur_68_case(cpt_68)
voici le code complet de mon process :
je vous met encore l'erreur qui m'est affiché à la compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 -- code VHDL Compteur_68E : process(Clock_Bit_out, cpt_68, Trame_No_Manch, Init_Code_Manchester) begin if Init_Code_Manchester = '1' then -- à chaque coup de clock, on incrémente une valeur et on donne essaie de lire le vecteur if Rising_edge(Clock_Bit_out) then lecture_bit <= Trame_No_Manch(cpt_68); cpt_68 <= cpt_68+1; elsif (cpt_68 > "1000011") then cpt_68 <= "0000000"; end if; else cpt_68 <= "0000000"; end if; end process Compteur_68E;
Je vous remercie déjà de m'avoir lu, et aussi pour toutes vos suggestions, exemples, docs, etc...
Au plaisir de vous relire.
Amicalement Philou
Partager