Pour une classe, il m'a été demandé d'écrire une procédure VHDL qui prend deux entrées entières A et B et remplace A par A + B et B par A-B. J'ai écrit le programme suivant et testbench. Il termine l'implémentation et la vérification de la syntaxe comportementale mais ne simule pas. Bien que je n'obtiens aucune erreur, j'obtiens quelques avertissements indiquant que A et B sont dans des boucles de rétroaction combinatoires. Quelqu'un peut-il faire la lumière sur ce que le problème peut être?Procédures VHDL
Module:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Problem2 is
Port (A : inout integer;
B : inout integer);
end Problem2;
architecture Behavioral of Problem2 is
procedure AB (signal A,B: inout integer) is
begin
A<=A+B after 20 ns;
B<=A-B after 30 ns;
end AB;
begin
AB(A=>A, B=>B);
end Behavioral;
testbench:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY Problem2_test IS
END Problem2_test;
ARCHITECTURE behavior OF Problem2_test IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT Problem2
PORT(
A : INOUT integer;
B : INOUT integer
);
END COMPONENT;
--BiDirs
signal A : integer;
signal B : integer;
-- No clocks detected in port list. Replace <clock> below with
-- appropriate port name
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: Problem2 PORT MAP (
A => A,
B => B
);
ABproc: process is
begin
A<=25;
B<=22;
wait;
end process;
END;
Cela n'a pas eu de sens ... – ferdepe