В моем проекте Quartus я создал два файла пакета. Я создаю файл, который хочет использовать оба из них. Но когда я пытаюсь скомпилировать файл, он говорит, что некоторые компоненты используются, но НЕ определены. Когда я проверяю посылку, чтобы увидеть, есть ли они там, я нахожу их. Но компилятор выдает мне это сообщение. Почему это?
Я пробовал следующее. C / P файл, который содержит компонент, который не найден в новом файле, переименовал новый файл и добавил его в пакет.
Как-то это работает. Но я не понимаю, почему.
Снимок экрана 1: Объявление элемента в пакете ДВАЖДЫ с разными именами.
https://imgur.com/a/n4xM7FX
Снимок экрана 2. Библиотеки в начале файла, вызывающего проблему
https://imgur.com/a/gD2ei5a
Снимок экрана 3: строка кода, вызывающая проблему
https://imgur.com/a/tfByyFI
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
PACKAGE PIPELINE IS
---------------------------------------------------------------------------------
component I_F IS
PORT(
GLB_CLK: IN STD_LOGIC;
STALL : IN STD_LOGIC;
PC : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
MEMWORD: OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
PC_ADD : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
);
END component I_F;
-- ... More components below
END PACKAGE PIPELINE;
Теперь на файле, который я хочу использовать этот компонент.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
LIBRARY WORK;
USE WORK.PIPELINE.ALL;
USE WORK.TOOLBOX.ALL; -- Thats the second package file
ENTITY TEST -- Just for this example
PORT ( Aa : IN BIT; B : OUT BIT);
END TEST;
ARCHITECTURE PROBLEMATIC OF TEST IS
SIGNAL CLK : STD_LOGIC;
SIGNAL PIPE_STALL_SIG : STD_LOGIC;
SIGNAL PC_IN_NEXT_PC : STD_LOGIC_VECTOR(31 DOWNTO 0);
SIGNAL IF_OUT_IFWORD : STD_LOGIC_VECTOR(31 DOWNTO 0);
SIGNAL IF_OUT_PC_VAL : STD_LOGIC_VECTOR(31 DOWNTO 0);
BEGIN
IF1: I_F -- <== PROBLEM HERE
PORT MAP(
GLB_CLK => CLK,
STALL => PIPE_STALL_SIG,
PC => PC_IN_NEXT_PC,
MEMWORD => IF_OUT_IFWORD,
PC_ADD => IF_OUT_PC_VAL
);
END PROBLEMATIC;
-- When i use A, the probblem appears, when I C/P A into a new vhd file, define
-- it inside the package as shown above and then using the copy to the file that causes the trouble everything works..
После изменения, например, имени компонента с I_F на ASDF, проблема также была решена