2015-01-13 2 views
0

Я запускаю автоматические тестовые узлы с помощью ghdl (0.32rc1). Некоторые из моих testbenches требуют unisim примитивов от Xilinx ISE.GHDL: Как связать компоненты?

Я подготовил два external files, если вы хотите проверить мой пример. Для запуска моего примера вам понадобится установка Xilinx ISE или Vivado, поэтому вы можете найти примитив MUXCY. Он находится в папке <InstallDir>\ISE_DS\ISE\vhdl\src\unisims\primitive.

Я проанализировал три файла со следующей ghdl команд:

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.exe -r на Windows (Linux: -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)) 

Теперь ghdl сообщает, что mux не могут быть связаны.
Я также пробовал параметры --syn-binding и -P., но ничего не изменилось.

Что мне нужно сделать, чтобы связать компонент MUXCY?

P.S. Может ли кто-нибудь создать тег 'ghdl'? Я не хватает репутации :)

ответ

2

Вот как я бы это исправить:

Во-первых, проанализировать MUXCY в UniSim библиотеке, как она предназначена быть, например, так:

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

Обратите внимание на --work=unisim в этой команде.

Затем убедитесь, что вы добавили library UNISIM; в начало вашего файла arith_prefix_and.vhdl.

Это должно быть сделано.

То, что я думаю, что здесь происходит то, что, так как вы перезаписать имя work библиотеки poc с --work=poc при анализе arith_prefix_and.vhdl, он не видит MUXCY сущность проанализированных в реальной библиотеке имени work и т.д. он не может найти объект по умолчанию, которому необходимо привязать компонент MUXCY.

+0

Эти файлы должны быть скомпилированы, например. Altera, который использует modelsim. Вы можете попробовать это, изменив VENDOR на Altera. В этом случае используется общая реализация привязки. Поскольку modelsim не знает unisim, я не могу добавить ссылку на библиотеку. Я знаю, что могу скомпилировать примитивы Xilinx для ModelSim, но не у каждого пользователя нашей библиотеки установлены XST или Vivado. – Paebbels

+0

@Paebbels Я вижу вашу мысль. Как создать пустую библиотеку UNISIM в системах без Vivado или ISE, подходит ли это для вашего случая использования? Если для VENDOR установлено значение Altera, вам не нужно ничего в библиотеке, вам просто нужно, чтобы он существовал. –

+0

Я рассматриваю этот ответ как решение ... (Жду дальнейших ответов) – Paebbels

Смежные вопросы