我是VHDL的新手,我正在使用VIvado 2017.1。
我正在尝试使用包来定义常量和其他此类枚举类型以包含在多个模型中。但是现在,我无法在我的模型中使用该包。我一直在
Error: Cannot find <PACKAGE NAME> in library <xil_defaultlib>. Please ensure that the library was compiled, and that a library and a use clause are present in the VHDL file
然而,有问题的软件包位于xil_defaultlib文件夹中,我很确定它是编译的,因为我看到没有错误[如此处所见] [1]。
我的每个代码都是
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.std_logic_unsigned.all;
use work.Specs_Package.all;
entity Freq_Divider is
Port ( En,clk, reset : in std_logic; clock_out: out std_logic);
end Freq_Divider;
architecture bhv of Freq_Divider is
signal count: std_logic_vector(7 downto 0);
signal tmp : std_logic := '0';
begin
if rising_edge(reset) then
count <= x'00';
end if
process(clk,EN)
begin
if EN = '1' then
rising_edge(clk) then
count <= count + 1;
end if;
end if;
end process;
end bhv;
和
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
PACKAGE SPECS_PACKAGE IS
--Freq Divider
--667Mhz clock
--667/23=29MHz 22 - 0x16
--667/29=23MHz 28 - 0x1C
--667/46=14.5MHz 45 - 0x2D
CONSTANT FREQ_DIVIDER_LIMIT : STD_LOGIC_VECTOR(7 DOWNTO 0) := X'1C';
END PACKAGE SPECS_PACKAGE;
://i.stack.imgur.com/4b1vz.png
答案 0 :(得分:1)
我不确定你的设计的正确性,但这不是问题。 试试这个:
打开项目,右键单击“设计源”,选择“层次结构更新”,并确保标记了第一个选项(自动更新和编译顺序)。
答案 1 :(得分:0)
Brian Drummond提到的错误。我曾写过x&#39; 1C&#39;而不是x&#34; 1C&#34;。