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 :
Code:
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;
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_vector
(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 .