2015-01-13 3 views
0

저는 ghdl (0.32rc1)로 자동화 된 테스트 벤치를 실행하고 있습니다. 일부 테스트 벤치에서는 자일링스 ISE의 ​​고유 한 프리미티브가 필요하다.GHDL : 구성 요소를 어떻게 바인딩합니까?

내 예제를 테스트하고 싶다면 두 개의 external files을 준비했습니다. 필자의 예제를 실행하려면 MUXCY 프리미티브를 찾을 수 있도록 자일링스 ISE 또는 Vivado 설치가 필요하다. 폴더 <InstallDir>\ISE_DS\ISE\vhdl\src\unisims\primitive에 있습니다. 지금까지 오류를

PS D:\Temp\ghdl> C:\Tools\GHDL\0.32RC1\bin\ghdl.exe -a --work=work C:\Xilinx\14.7\ISE_DS\ISE\vhdl\src\unisims\primitive\MUXCY.vhd 
PS D:\Temp\ghdl> C:\Tools\GHDL\0.32RC1\bin\ghdl.exe -a --work=poc .\arith_prefix_and.vhdl 
PS D:\Temp\ghdl> C:\Tools\GHDL\0.32RC1\bin\ghdl.exe -a --work=test .\arith_prefix_and_tb.vhdl 
.\arith_prefix_and_tb.vhdl:96:16:warning: universal integer bound must be numeric literal or attribute 

:

나는 다음과 같은 GHDL 명령을 사용하여 세 개의 파일을 분석합니다.
지금 난 그냥 Windows에서 -r ghdl.exe되어 시뮬레이션 시작 (리눅스 : -e 및 -r) :

PS D:\Temp\ghdl> C:\Tools\GHDL\0.32RC1\bin\ghdl.exe -r --work=test arith_prefix_and_tb 
.\arith_prefix_and.vhdl:79:40:warning: 'mux' is not bound 
.\arith_prefix_and.vhdl:43:14:warning: (in default configuration of arith_prefix_and(rtl)) 

이제 mux 바인딩 할 수 없음을 GHDL보고합니다.
--syn-binding-P.도 시도했지만 아무 것도 변경되지 않았습니다.

MUXCY 구성 요소를 바인딩하려면 어떻게해야합니까?

P. 누군가 'ghdl'태그를 만들 수 있습니까? 나는 충분히 명성을 :)이없는

다음

답변

2

내가이 해결하는 것입니다 방법입니다 의도대로과 같이,

첫째, unisim 라이브러리에 MUXCY 분석을 :

ghdl -a --work=unisim C:\Xilinx\14.7\ISE_DS\ISE\vhdl\src\unisims\primitive\MUXCY.vhd 

해당 명령의 --work=unisim에 유의하십시오.

arith_prefix_and.vhdl 파일 상단에 library UNISIM;을 추가해야합니다.

그렇게해야합니다.

내가 여기서 무슨 일이 일어나고 생각하는 것은 arith_prefix_and.vhdl을 분석 할 때 --work=pocpocwork 라이브러리의 이름을 덮어 쓰기 때문에,이 work라는 이름의 실제 라이브러리에서 분석하여 MUXCY 실체를보고, 그렇게하지 않는 것입니다 MUXCY 구성 요소를 바인딩 할 기본 엔터티를 찾을 수 없습니다.

+0

이러한 파일은 예를 들어 다음과 같이 컴파일해야합니다. ModelSim을 사용하는 Altera. VENDOR를 Altera로 바꾸어보십시오. 이 경우 일반적인 캐리 체인 구현이 사용됩니다. modelsim은 unisim을 모르기 때문에 라이브러리 참조를 추가 할 수 없습니다. ModelSim에 대한 Xilinx 프리미티브를 컴파일 할 수는 있지만 라이브러리의 모든 사용자가 XST 또는 Vivado를 설치 한 것은 아닙니다. – Paebbels

+0

@ Paebbels 귀하의 요지를 봅니다. Vivado 또는 ISE가없는 시스템에서 빈'UNISIM' 라이브러리를 만드는 것은 유스 케이스에서 받아 들일 수 있습니까? VENDOR가 Altera로 설정되어 있다면, 라이브러리에 어떤 것도 필요하지 않습니다. 단지 존재할 필요가 있습니다. –

+0

이 답변을 해결책으로 생각합니다 ... (추가 답변을 기다리는 중) – Paebbels

관련 문제