IEEE из Synopsys в GHDL: передается как опция, но не учитывается правильно

Я использую симулятор GHDL, но я не могу понять, как использовать не IEEE-пакеты, такие как std_logic_textio (очевидно, из Synopsys), полезный для различного анализа (хард в моем случае).

Я тщательно скомпилировал свой код с возможностью указать, что мой ieee является версией Synopsys.

ghdl -a --ieee=synopsys system_tb.vhd

Тем не менее, я все еще получаю ошибку:

system_tb.vhd:25:10:error: unit "std_logic_textio" not found in library "ieee"
system_tb.vhd:25:10:error:  (use --ieee=synopsys or --std=08 for this non-standard synopsys package)

Версия GHDL, которую я использую здесь:

GHDL 0.35-dev (2017-03-01-221-gf170a6e) [Dunoon edition]
 Compiled with GNAT Version: 4.9.3
 mcode code generator

Как я могу правильно скомпилировать мой код?

Обновление: вот некоторая информация о моей установке GHDL, сделанная из архивов github:

  • Линукс мята 18,2 Соня
  • which ghdlвозвращается /usr/local/bin/ghdl
  • locate std_logic_textioвозвращает:
  • /usr/local/lib/ghdl/src/ieee2008/std_logic_textio.vhdl
  • /usr/local/lib/ghdl/src/synopsys/std_logic_textio.vhdl

Обновление: я также перекомпилировал GHDL с бэкендом llvm и получил тот же результат.

2 ответа

Я наконец решил проблему: я перекомпилировал GHDL из исходников, с бэкэндом LLVM. Тогда проблема стала более ясной: очевидно, моя настоящая проблема была во время разработки, а не анализа... Сообщение, появившееся на моем терминале, относилось к фазе разработки. Я решил ошибку, добавив опцию -e к этапу разработки.

Нам также нужно передать опцию ieee во время разработки (когда это необходимо во время анализа)

Что касается версии mcode, я не могу объяснить сообщаемое поведение.

Что which ghdl а также locate std_logic_textio сообщить (если вы используете Linux)?

which ghdl
/opt/ghdl/mcode/bin/ghdl

а также

locate std_logic_textio
/opt/ghdl/mcode/lib/ghdl/src/ieee2008/std_logic_textio.vhdl
/opt/ghdl/mcode/lib/ghdl/src/synopsys/std_logic_textio.vhdl

что говорит мне, что соответствующие источники библиотеки находятся в правильном месте относительно исполняемого файла ghdl. И, насколько я знаю, mcode ghdl (который является JIT-компилятором) не создает скомпилированные файлы.o, такие как версии gcc и llvm.

Так что я предполагаю, что что-то сбилось с пути, когда вы установили ghdl, а источник std_logic_textio.vhdl находится не в том месте или вообще отсутствует.

Обновите вопрос, указав пути к этим объектам и вашей ОС, а также то, как вы установили ghdl (из github?), И мы посмотрим, сможем ли мы пойти дальше.

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