Vous voyez, j'ai déjà fini de décrire un ALU sur vhdl avec modelsim, mais le test ne semble pas mettre à jour la solution, quand je vois la simulation, la réponse du circuit 32 bits dit toujours "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU"
Je ne sais pas ce que j'ai écrit mal sur le banc d'essai aussi il y a un avertissement sur le compilateur de la réponse du circuit qui ditVHDL testbench ne change pas de sortie ALU 32bit
** Attention: (vsim-8683) UNINITIALIZED port de sortie/alu_tb/ALU_test/res (32 downto 0) n'a pas de pilote. Ce port apportera de la valeur (UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU) au réseau de signaux.
et voici le code testbench:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity ALU_tb is
end ALU_tb;
architecture bhv_ALU_tb of ALU_tb is
component ALU
port(
a, b: in std_logic_vector(31 downto 0);
c: in std_logic;
s: in std_logic_vector(3 downto 0);
res: out std_logic_vector(32 downto 0));
end component;
signal a, b: std_logic_vector(31 downto 0);
signal c: std_logic;
signal s: std_logic_vector(3 downto 0);
signal re: std_logic_vector(32 downto 0);
begin
ALU_test: ALU port map (a => a, b => b, c => c, s => s, res => re);
process begin
b <= "00000000000010100111010100011110";
a <= "00000000011010000100110011101110";
c <= '0';
s <= "1111";
wait for 2 ns;
b <= "00000000000010100111010100011110";
a <= "00000000011010000100110011101110";
c <= '0';
s <= "0100";
wait for 2 ns;
s <= "0000";
wait for 2 ns;
s <= "0001";
wait for 2 ns;
s <= "0010";
wait for 2 ns;
s <= "0011";
wait for 2 ns;
s <= "0100";
wait for 2 ns;
s <= "0101";
wait for 2 ns;
s <= "0110";
wait for 2 ns;
s <= "0111";
wait for 2 ns;
s <= "1000";
wait for 2 ns;
s <= "1001";
wait for 2 ns;
s <= "1010";
wait for 2 ns;
s <= "1011";
wait for 2 ns;
s <= "1100";
wait for 2 ns;
s <= "1101";
wait for 2 ns;
s <= "1110";
wait for 2 ns;
s <= "1111";
wait for 2 ns;
end process;
end bhv_ALU_tb;
je sais que l'erreur semble trivial « res est non initialisé » mais je suis parti de façon VHDL trop longtemps et honnêtement ne sais pas comment arrête ça, des idées?
La réponse à cette question est à l'intérieur de votre composant - 'res' est en valeur, donc si elle est connectée à rien à l'intérieur, il n'est pas entraîné à l'intérieur du module. – Staszek