하나의 모듈을 사용해야하는데, 이전에 다른 모듈에서 vhdl을 사용하여 만들었으며이를 수행하는 방법에 대한 정보를 찾을 수 없습니다. 나는 maxplus2를 사용하도록 강요 받았고 거기에 포함 된 파일 (확장자는 .inc)을 만들 수 있다는 것을 알았지 만 여전히 두 번째 모듈에 포함시키지 않았다. 나는이 아침 정보를 찾기 위해 온 아침을 보냈지 만 아무것도 발견하지 못했다. 아무도 도와 줄 수 있습니까?vhdl에 포함 파일을 만드는 방법은 무엇입니까?
답변
그렇지 않습니다.
VHDL에 파일이 포함되어 있지 않기 때문에 무시 무시한 비참한 혼란을 피할 수 있습니다.
VHDL은 별도의 컴파일과 좋은 VHDL 도구 (전부는 아님)를 사용하여 포함 또는 Makefile없이 모든 종속성을 올바르게 추적합니다.
다른 모듈을 라이브러리 (아마도 "my_modules")로 컴파일하거나 라이브러리를 지정하지 않고 컴파일하면 "work"라는 기본 라이브러리로 이동합니다.
는 다음 주 모듈에서 당신은library ieee;
library my_modules;
(항상있다 "작업"제외) 라이브러리의 이름을 지정하고 일 (모듈, 패키지)는 "작업"을 제외하고 그들 (에서 원하는 이름을 ..)
use ieee.numeric_std.all;
use my_modules.all;
이제이 라이브러리에서 원하는 것을 사용할 수 있습니다. 모듈을 사용하는 가장 간단한 방법은 "직접 엔티티 인스턴스 생성"입니다.이를 검색하면 "VHDL"이 어떻게 표시되는지 알 수 있습니다. 또는 다른 모듈과 동일한 포트를 사용하여 주 모듈에서 구성 요소를 선언 할 수 있으며 정교하게 구성 할 때 올바른 모듈이 구성 요소를 대체합니다 (연결을위한 VHDL 용어). 라이브러리 모듈을 아직 작성하지 않은 경우 (즉, 설계를 위로 내림), 그렇지 않은 경우 직접 엔티티 인스턴스 작성이 더 간단합니다.
지금은 "my_modules"를 무시하고 "work"만 사용하십시오. 큰 디자인을 얻으려면 라이브러리를 사용하여 구성하십시오. 하드웨어와 테스트 벤치를 분리하여 유지하십시오.
브라이언은 올바른 답변을 제공합니다. 내가 사람들의 질문과 관련이 있다고 생각하는 부분은 다음과 같습니다.
package
은 데이터 유형, 상수, 기능 및 절차를 공유하는 VHDL의 방법입니다.
관련 http://stackoverflow.com/questions/26288447/using-entities-from-another-file-in-vhdl –