Je debut en VHDL et j'ai deux petites questions de syntaxe aux quelles je n'arrive pas a trouver les reponses sur le net.
Je developpe pour un FPGA xilinx, j'utilise donc xilinx ISE pour le developpement et modelsim.
Premiere question:
Je souhaite effectuer une convolution. Je multiplie donc mon buffer d'entree par une constante. Mais je souhaite pouvoir modifier cette constante au fur et a mesure du developpement. Donc pour faire propre je voulais faire un peu comme en C avec les #define. Declare les constante au debut du code
J'ai donc employe la synthaxe suivante en utilisant des generic:
Code : Tout sélectionner
entity conv is
generic(kernel : std_logic_vector(15 downto 0):="0011100011110000");
port ( buffer1 : in std_logic_vector(7 downto 0);
buffer2 : in std_logic_vector(7 downto 0);
buffer3 : in std_logic_vector(7 downto 0);
buffer4 : in std_logic_vector(7 downto 0);
.....................................
CLK : in std_logic;
buffer_out : out std_logic_vector(7 downto 0));
end conv;
architecture Behavioral of conv is
"declaration des composants"
begin
......
mult1 : mult9by16 port map(A=>kernel,B=>result_sum1,CLK=>CLK,AbyB=>result_mult1);
end Behavioral;
Donc je voulais savoir pourquoi, et si il y a moyen d'utiliser les generics pour declarer se genre de constante.
Et deuxieme question:
J'ai code un simple additionneur 24 bits, et je fait une troncation a la sortie, pour ne recuper que les 8 bits de poids fort.
le code est tres simple
Code : Tout sélectionner
entity add_conv is
Port ( A : in std_logic_vector(24 downto 0);
B : in std_logic_vector(24 downto 0);
C : in std_logic_vector(23 downto 0);
CLK : in std_logic;
result : out std_logic_vector(7 downto 0));
end add_conv;
architecture Behavioral of add_conv is
signal C2 : std_logic_vector(24 downto 0);
signal result_add : std_logic_vector(24 downto 0);
begin
process(A,B,C,CLK)
begin
C2(24)<='0';
C2(23 downto 0)<= C(23 downto 0);
if rising_edge(CLK) then
result_add<= A + B + C2;
end if;
end process;
result<=result_add(24 downto 17);
end Behavioral;
=>"WARNING:Xst:1291 - FF/Latch <result_add_0> is unconnected in block <add_conv>."
Comment eviter ca?
Voila
Je vous remercie pour votre aide
Sebastien