Forum: FPGA, VHDL & Co. ERROR:HDLCompiler:1314 Formal port/generic <name> is not declared in <file>


von Incanus (Gast)


Lesenswert?

Hallo Leute, ich erhalte immer folgende 2 Errors :
ERROR:HDLCompiler:1314 - Line 166: Formal port/generic <g_precision> is 
not declared in <alu_op_en>
ERROR:HDLCompiler:854 - Line 88: Unit <behavioral> ignored due to 
previous errors.

Der 2. Fehler ergibt sich logischer Weise aus dem 1.
Mein Quellcode sieht wie folgt aus (die Abschnitte)

File 1 soll eine Instanz von File 2 erstellen.
File 1 :
[...]
ARCHITECTURE Behavioral OF file_1 IS
-- hier kommen konstanten und Signaldeklarationen (jetzt hier nicht 
einzeln aufgeführt)
BEGIN
inst_alu_op_en: alu_op_en
generic map (  g_precision => g_precision
            )
    Port map (
    clk => clk,
    wb_comm => wb_comm
);
[...]

File 2 :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity alu_op_en is
    generic (  g_precision : integer := 32
        );
   Port ( clk : IN std_logic;
    wb_comm : in  STD_LOGIC_VECTOR (4 downto 0);
);
end alu_op_en;
[...]

Ich habe leider keine Ahnung, warum er denkt das mein generic nicht 
deklariert sei, weil das ja offenbar der Fall ist. :(

von Incanus (Gast)


Lesenswert?

Incanus schrieb:
>     wb_comm : in  STD_LOGIC_VECTOR (4 downto 0);


Sry für doppelpost, aber in der Zeile steht am Ende natürlich kein ;

von LogicX (Gast)


Lesenswert?

Hast Du eine Component-Deklaration?

von Incanus (Gast)


Lesenswert?

LogicX schrieb:
> Hast Du eine Component-Deklaration?

Nein, brauche ich zwingend eine ?
Ich habe davor ein anderes File auf dieselbe Weise angesprochen: 
ebenfalls Generic-werte und Ports übergeben und das funktioniert.
Wenn ich eine Component-declaration brauche, brauch ist dann den oben 
geposteten Code noch, oder ersetzt diese Deklaration den Code ?

von Entwickler12345 (Gast)


Lesenswert?

Hallo,

ohne Deklaration muss es so aussehen

inst_alu_op_en: entity work.alu_op_en
generic map (  g_precision => g_precision
            )
    Port map (
    clk => clk,
    wb_comm => wb_comm
);

von Incanus (Gast)


Lesenswert?

Entwickler12345 schrieb:
> Hallo,
>
> ohne Deklaration muss es so aussehen

ERROR:HDLCompiler:104 - Line 64: Cannot find <alu_op_en> in library 
Please ensure that the library was compiled, and that a library and a 
use clause are present in the VHDL file.

Beide Files liegen im selben Ordner.

von Duke Scarring (Gast)


Lesenswert?

Incanus schrieb:
> Beide Files liegen im selben Ordner.
Ist die Datei, wo das Modul alu_op_en drinsteckt auch im Projekt drin?

Duke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.