Перейти к содержанию
    

Ошибка симуляции modelsim 2019.2 при включении оптимизации

Здравствуйте. Решил обновить рабочий софт: работал на связке Vivado 2017.4 + Modelsim 10.5, обновил до Vivado 2019.1 + Modelsim 2019.2. Скомпилил симуляционные библиотеки. При попытке симуляции одного рабочего проекта (без оптимизации, т.е. "vsim -novopt ") изначально получаю ошибку:

# ** Error (suppressible): (vsim-12110) All optimizations are disabled because the -novopt option is in effect. This will cause your simulation to run very slowly. If you are using this switch to preserve visibility for Debug or PLI features, please see the User's Manual section on Preserving Object Visibility with vopt. -novopt option is now deprecated and will be removed in future releases.

Подавляю эту ошибку (добавлением флага "vsim -novopt suppress 12110 …") и симуляция отрабатывает (при этом вываливается куча warnings, предупреждающих, что при выключенной оптимизации симуляция будет медленной и т.п.). Когда же пытаюсь включить оптимизацию (“vsim -voptargs="+acc" ….”) получаю маловразумительные ошибки:
# ** Error: D:\PF\Xilinx\Vivado\2019.1\data\ip\xilinx\xbip_dsp48_addsub_v3_0\hdl\xbip_dsp48_addsub_v3_0_vh_rfs.vhd(64): (vopt-1598) Library "<protected>" not found.
# ** Error: D:\PF\Xilinx\Vivado\2019.1\data\ip\xilinx\xbip_dsp48_addsub_v3_0\hdl\xbip_dsp48_addsub_v3_0_vh_rfs.vhd(64): (vopt-1136) Unknown identifier "<protected>".

В проекте используются ядра floating_point_v7_1_8, которым требуются xbip_dsp48_addsub_v3_0_vh_rfs.vhd, о которых по идее и говорится в ошибках. Т.к. это всё шифрованные исходники, то пытаться искать в них что-то бессмысленно. Где искать корень зла непонятно.

Сделал пустой проект с простейшим float ядром add32 (на базе ядра floating_point_v7_1_8) и он симулируется корректно, как с оптимизацией, так и без неё.

 

Может есть идеи, в чём может быть проблема при включении оптимизации?

Или кто какие  версии Modelsim использует с Vivado 2019.1? Xilinx для Vivado 2019.1  рекомендует Modelsim 10.7c, но его найти пока не удалось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 hours ago, Vengin said:

...получаю маловразумительные ошибки....

 

Видел такую ерунду, когда запускал IPCore от Xilinx в QuestaSim. Насколько помню, проблема решилась следующим образом:

1. Скомпилировать в Vivado библиотеки для симуляции;

2. Подключить скомпилированные библиотеки в симулятор;

3. При симуляции явно указать библиотеки.

В пунктах 2-3 нужно обратить внимание, что бывают одинаковые компоненты (библиотеки), но некоторые имеют суффик _protected, или типа того. Их тоже нужно использовать.

 

К сожалению, под рукой сейчас всего этого нет, поэтому малость сумбурно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, nice_vladi сказал:

Видел такую ерунду, когда запускал IPCore от Xilinx в QuestaSim. Насколько помню, проблема решилась следующим образом:

1. Скомпилировать в Vivado библиотеки для симуляции; 

2. Подключить скомпилированные библиотеки в симулятор;

3. При симуляции явно указать библиотеки. 

В пунктах 2-3 нужно обратить внимание, что бывают одинаковые компоненты (библиотеки), но некоторые имеют суффик _protected, или типа того. Их тоже нужно использовать.

 

К сожалению, под рукой сейчас всего этого нет, поэтому малость сумбурно)

1. Сделано.

2. Подключено в файле проекта *.mpf (аналог modelsim.ini). Библиотеки в симуляторе отображаются.

3. Не совсем понятно. Аналог директивы #include (для VHDL это LIBRARY ...; USE ...;)? Это и так делается в сгенеренных коркой файлах.

Не припомню одинаковых библиотек с суффиксами. Обычно вроде есть только несколько разных версий (типа floating_point_v7_0_16, floating_point_v7_1_8). Строка "protected" вроде фигурирует только внутри файлов библиотек " *_vh_rfs.vhd " (header с описанием чего и как зашифровано).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Vengin said:

1. Сделано. 

2. Подключено в файле проекта *.mpf (аналог modelsim.ini). Библиотеки в симуляторе отображаются.

3. Не совсем понятно. Аналог директивы #include (для VHDL это LIBRARY ...; USE ...;)? Это и так делается в сгенеренных коркой файлах.

Не припомню одинаковых библиотек с суффиксами. Обычно вроде есть только несколько разных версий (типа floating_point_v7_0_16, floating_point_v7_1_8). Строка "protected" вроде фигурирует только внутри файлов библиотек " *_vh_rfs.vhd " (header с описанием чего и как зашифровано).

3. Нет, я запускал через скрипты tcl. Что-то вроде vsim .... -L <library0> -L <library1> -L work tb_top.sv

Бибилиотеки имел в виду верилоговские. С вхдл дел не имел, но думаю, там все +- одинаковое

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/24/2019 at 12:35 PM, Vengin said:

Может есть идеи, в чём может быть проблема при включении оптимизации?

У меня норм работают моделсимы 2019.2 и 2019.4. У меня xilinx ISE, вы сделайте по аналогии.

Я компилирую библиотеки таким бат-файлом. Два варианта, для mti_se и questa.

%Xilinx%\bin\nt64\compxlib -s mti_se -64bit -arch fpga -lib all -l all -dir %MODEL_TECH%\..\Xilinx\ -p %MODEL_TECH%\ -log compxlib.log -w
%Xilinx%\bin\nt64\compxlib -s questasim -64bit -arch fpga -lib all -l all -dir %MODEL_TECH%\..\Xilinx\ -p %MODEL_TECH%\ -log compxlib.log -w

Перед компилировании библиотек в <install_dir> моделсима надо поместить файл compxlib.cfg. Файл присоединен к коменту. В 16 и 17 строке файла надо выбрать тип моделятора: mti_se или questa. Если этот файл создастся сам - он будет глюкавый, с паразитными командами -novopt.

compxlib.cfg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 24.03.2020 в 02:51, druzhin сказал:

У меня норм работают моделсимы 2019.2 и 2019.4. У меня xilinx ISE, вы сделайте по аналогии.

Я компилирую библиотеки таким бат-файлом. Два варианта, для mti_se и questa.


%Xilinx%\bin\nt64\compxlib -s mti_se -64bit -arch fpga -lib all -l all -dir %MODEL_TECH%\..\Xilinx\ -p %MODEL_TECH%\ -log compxlib.log -w
%Xilinx%\bin\nt64\compxlib -s questasim -64bit -arch fpga -lib all -l all -dir %MODEL_TECH%\..\Xilinx\ -p %MODEL_TECH%\ -log compxlib.log -w

Перед компилировании библиотек в <install_dir> моделсима надо поместить файл compxlib.cfg. Файл присоединен к коменту. В 16 и 17 строке файла надо выбрать тип моделятора: mti_se или questa. Если этот файл создастся сам - он будет глюкавый, с паразитными командами -novopt.

compxlib.cfg

Для Xilinx ISE это может и работает, но в Vivado свой компилятор библиотек compile_simlib, со своим синтаксисом и т.п. Пример:

compile_simlib -simulator modelsim -simulator_exec_path {C:/PF/modeltech64_2019.2/win64} -family all -language all -library all

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/26/2020 at 9:40 AM, Vengin said:

Для Xilinx ISE это может и работает, но в Vivado свой компилятор библиотек compile_simlib, со своим синтаксисом и т.п.

Значит надо найти где прячутся -novopt и их уничтожить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот тут я описал свои попытки скомпилить под виваду без -novopt, но не всё получилось гладко. Пока не знаю что дальше делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...