Erreur de déclaration dans modelsim : Physical unit hidden by...
Fermé
lanonyminconnu
-
21 mars 2014 à 00:58
Alors voila, pour mon université, je dois programmer une entité VHDL permettant d'effectuer une multiplication entre deux nombres binaires (codés en STD_LOGIC_VECTOR). Tout va bien dans le meilleurs des monde jusqu'à ce que j'essaie de simuler son comportement avec modelsim.
Le probleme viens du Testbench, lorsque je lance sa compilation j'obtiens l'erreur suivante :
- Error: Sim_Mult.vhd(40): Physical unit hidden by declaration of 'Xlol' at line 24.
X_Mult est un signal utilisé en entrée dans mon entité VHDL, il est déclaré à la ligne 24 avec une première valeur : "0000", puis sa valeur est modifiée à la ligne 40. Il me donne la même erreur avec la deuxième entrée, de la même manière. Ces erreurs sont, à chaque fois accompagnées des deux erreurs suivante :
- Error: Sim_Mult.vhd(40): No feasible entries for infix operator "<=".
- Error: Sim_Mult.vhd(40): Type error resolving infix expression "<=" as type std.STANDARD.TIME.
Cela est très perturbant, et je ne vois aucune solution... j'ai utiliser pour faire mon testbench les conseil du site suivant : http://cairn.enssat.fr/enseignements/Cao/TutorialModelSim/
j'ai déjà recherché une possible solution, et j'ai rien trouvé, il s'agit là d'un appel au secours!!
Je vous poste ici le code de mon TestBench peut-être y trouverez vous l'erreur :
LIBRARY ieee; USE ieee.std_logic_1164.all; library work; use work.all;
ENTITY bench IS END ENTITY;
ARCHITECTURE test OF bench IS
-- Component to Test -- COMPONENT Mult IS GENERIC(nbits : POSITIVE := 8); PORT ( X, Y: IN STD_LOGIC_VECTOR(nbits-1 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(2*nbits-1 DOWNTO 0) --Overflow : OUT STD_LOGIC ); END COMPONENT;
-- Signal Declaration -- CONSTANT Tclk : TIME := 10 ns; SIGNAL X_Mult : STD_LOGIC_VECTOR(3 DOWNTO 0):= "0000"; -- <-- ligne d'origine de l'erreur SIGNAL Y_Mult : STD_LOGIC_VECTOR(3 DOWNTO 0):= "0000"; SIGNAL S_Mult : STD_LOGIC_VECTOR(7 DOWNTO 0); --SIGNAL TOv : STD_LOGIC;
BEGIN T_MULT : Mult GENERIC MAP(4) PORT MAP(X_Mult, Y_Mult, S_Mult);
Mult_Sim : PROCESS BEGIN X_Mult <= "0000"; Y_Mult <= "0000"; WAIT FOR Tclk*3 Y_Mult <= "0010"; X_Mult <= "0001"; -- <-- Ligne ou survient l'erreur WAIT FOR Tclk*10 X_Mult <= "0010"; WAIT FOR Tclk*10 X_Mult <= "0011"; WAIT FOR Tclk*10 X_Mult <= "0100"; WAIT FOR Tclk*10 X_Mult <= "0101"; WAIT FOR Tclk*10 X_Mult <= "0110"; WAIT FOR Tclk*10 X_Mult <= "0111"; WAIT FOR Tclk*10 X_Mult <= "1000"; WAIT FOR Tclk*10 X_Mult <= "1001"; WAIT FOR Tclk*10 X_Mult <= "1010"; WAIT FOR Tclk*40 wait; END PROCESS; END ARCHITECTURE;
A voir également:
Erreur de déclaration dans modelsim : Physical unit hidden by...