2017-05-09 18 views
-2

VHDL을 처음 사용하며 VIvado 2017.1을 사용하고 있습니다.VHDL 패키지가 컴파일되지 않습니다.

여러 패키지에 포함되도록 상수 및 기타 열거 형을 정의하는 데 패키지를 사용하려고합니다. 지금 당장은 내 모델에서 패키지를 사용할 수 없습니다. 나는 문제의 패키지는 xil_defaultlib 폴더에 그러나

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

을 받고 유지하고 나는 [여기 바와 같이] 오류를 볼로 컴파일 꽤 확신한다 [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

VHDL 스 니펫이 어떻게 실행되는 걸까요? :) – Staszek

+0

나는 그것이 vivado 구성 문제라고 생각합니다. 파일을 추가 할 때 파일을 동일한 라이브러리에 넣어야합니다. 그래야만 그들은 서로를 볼 수 있습니다 ('work'사용). vivado의 라이브러리 탭을 확인하십시오. – JHBonarius

+1

몇 가지 오류가 있기 때문에 코드가 컴파일되지 않았 음을 확신합니다. –

답변

0

디자인의 정확성에 대해서는 잘 모르겠지만 그게 문제가 아닙니다. 시험해보기 :

프로젝트를 열고 디자인 소스를 마우스 오른쪽 단추로 클릭 한 다음 계층 구조 업데이트를 선택하고 첫 번째 옵션 (자동 업데이트 및 컴파일 순서)이 표시되어 있는지 확인하십시오.

+0

예, 확인했는데 이미 표시되어 있습니다. – user5565748

0

Brian Drummond가 언급 한 것과 같은 오류입니다. 나는 x "1C"대신에 x'1C '라고 썼다.

+0

D' oh! 어쩌면 다음 번에 모든 오류 메시지를 게시해야합니다. – JHBonarius