Salut,
j'ai entrain de programmer un projet en VHDL en utilisant Xilinx ISE 7.1i.
A l'étape de synthèse , j'ai rencontré quelque problèmes.
Voila un bout de code :
A la première erreur:le synthétiseur me dit " Line 170. * can not have such operands in this context." , même si j'ai essayé de modifier le type integer de "COLS" au bit_vectorCode:architecture Behavioral of top is constant COLS: integer:=80; type tabram is array (0 to 4095 ) of std_logic_vector(0 to 7); signal ram : tabram; ----RAM text buffer signal rdata:bit_vector(7 downto 0) := "00000000"; signal vcount:bit_vector(9 downto 0):= "0000000000"; signal hcount:bit_vector(10 downto 0) := "00000000000"; begin process (clk) variable raddr:bit_vector(11 downto 0) := "000000000000"; begin .. .. .. raddr := (vcount sll 4) * COLS +(hcount sll 3);--l'erreur 1 rdata <= ram(raddr);-- l'erreur 2 ... ... ... end process;
(constant COLS: bit_vector(6 downto 0):="1010000" , j'ai obtenu la meme erreur
Au deuxiéme erreur :"Line 171. Wrong index type for ram."
J'ai voulu convertir le type de variable "raddr" en un entier
raddr := (vcount sll 4) * std_logic_vector(UNSIGNED(COLS )) +(hcount sll 3);
mais j'ai obtenu l'erreur "The expression can not be converted to type UNSIGNED"
et je ne sais pas si cette méthode de convertion est fausse ou pas ?????
Svp aidez moi car depuis deux jours j'arrive plus à avancer.
merci d'avance .
-----