Aldec Active-HDL: vlib в графическом интерфейсе выдает "Предупреждение: невозможно создать библиотеку" без используемой библиотеки

Из графического интерфейса Aldec Active-HDL vlib следует создать рабочую библиотеку, например:

vlib my_lib

Это создает каталог my_lib в текущем каталоге, но с предупреждением:

Предупреждение: не удается создать библиотеку

Последующий set worklib my_lib завершается с ошибкой "Ошибка: дизайн не загружен" и компиляция с vcom -work my_lib tb.vhd завершается без вывода, и никто не компилирует что-либо в каталог "my_lib". Таким образом, похоже, что даже если каталог my_lib создан, он не доступен как библиотека my_lib для компиляции VHDL.

При использовании интерфейса командной строки Aldec Active-HDL (CLI) через vsimsa.bat это работает отлично.

Что требуется для того, чтобы сделать Tcl vlib Командная работа из окна консоли Tcl GUI?

Вероятно, проблема в том, что локальный файл "library.cfg" создается не просто vlib my_libИтак, как в этом случае создать локальный файл "library.cfg" для простой компиляции и симуляции модуля?

2 ответа

Возможно, это не является основной причиной вашей проблемы, но я просто чувствую необходимость рассказать вам о неправильном использовании работы в качестве имени библиотеки.

work действительно не является допустимым именем библиотеки в VHDL. Это также не какая-то предопределенная библиотека по умолчанию. Стандарт VHDL определяет work в качестве специального псевдонима для текущей рабочей библиотеки. Таким образом, можно использовать work внутри файла VHDL для ссылки на другие элементы дизайна в той же библиотеке, не зная названия библиотеки, в которую они будут проанализированы. поскольку work это специальный псевдоним, на который не нужно ссылаться с помощью library work пункт перед любым use work.pkg.all статьи.

К сожалению, многие инструменты VHDL позволяют дизайнеру создавать библиотеки с именем workнекоторые даже поощряют это, способствуя путанице. Это прекрасно работает, пока ни одна единица дизайна в другой библиотеке не пытается ссылаться на единицу дизайна в плохо названной рабочей библиотеке. Это потому что work name будет псевдонимом для другой библиотеки в контексте файлов, проанализированных в этой библиотеке.

Этот факт малоизвестен даже среди опытных VHDL-дизайнеров. Возможно, основная причина путаницы заключается в том, что многие инструменты часто говорят о "рабочей библиотеке", означающей "текущую рабочую библиотеку, как она называется", которую люди буквально истолковывают как означающую, что ее на самом деле следует называть работой.

Пример рабочей задачи:

pkg.vhd

package pkg is
end package;

file.vhd

use work.pkg.all;

Хороший случай

vcom -work lib pkg.vhd
vcom -work lib file.vhd

Файлы pkg.vhd и file.vhd могут быть скомпилированы в библиотеку с любым именем, так как они используют work псевдоним.

Плохой случай

vcom -work work pkg.vhd
vcom -work lib file.vhd

Там будет ошибка во второй команде, так как work относится к lib при анализе файла file.vhd, поскольку текущая рабочая библиотека была lib, Нельзя ссылаться на что-либо в плохо названном work библиотека изнутри lib поскольку все ссылки, содержащие специальный псевдоним work будет переведен на lib,

Похоже, что невозможно создать библиотеку за пределами рабочего пространства с дизайном, поэтому это необходимо создать.

См. Также вопрос и ответ на /questions/26577179/kak-sdelat-prostoe-modelirovanie-aldec-active-hdl-s-ostsillogrammoj-s-ispolzovaniem-stsenariev-tcl/26577180#26577180

Другие вопросы по тегам