Jump to content

    
Sign in to follow this  
Koluchiy

Симуляция IP-ядер Altera в Modelsim - как?

Recommended Posts

Здравствуйте, уважаемые гуру.

 

Направьте на путь истинный в следующем вопросе.

 

 

Есть Quartus 11.1 (впрочем, это не очень важно).

 

Был проект, в котором было реализовано ядро Reed Solomon Compiler I (Encoder и Decoder).

Там всё работало как надо.

 

Но теперь есть проект, в котором реализовано ядро Reed Solomon Encoder II.

 

При попытке запустить проект на симуляцию в Modelsim-Altera Starter Edition (NativeLink, да...), этот самый Modelsim говорит мне:

# ** Error: (vlog-7) Failed to open design unit file "D:/Files/Altera/S2_TestRSII/TRS_EncoderII.vo" in read mode.

 

Ессно, никакого TRS_EncoderII.vo нету, потому что визард его не генерит.

Но есть папочка TRS_EncoderII_sim, которую генерит визард и кладет туда массу разных интересных файлов, в т.ч. msim_setup.tcl, altera_rs_ser_enc_0001.vo и пр..

 

Документация Alterы на эту тему выряжается как-то невнятно.

С одной стороны вроде бы написано, что для Modelsim-Altera все библиотеки уже сгенерены.

С другой стороны написано, что нужно компилить библиотеки при помощи msim_setup.tcl .

С третьей стороны написано, что надо юзать Simulation library compiler.

 

Расскажите пожалуйста, как правильно и в какой последовательности?

Можно ли с такими ядрами юзать nativelink.

Если да, то как получить _nativelink.tcl.

 

Если нельзя, то как правильно генерить скрипт или вообще чего делать.

 

Заранее спасибо за ответы :).

 

Share this post


Link to post
Share on other sites

визард должен выводить список файлов с описанием, куда наливать. собственно, надо найти файл с расширением vo (или vho) и скомпилить. да, и тестбенч. насчет библиотек - поищите, скрипт установки библиотек уже много раз приводился. в вашем случае скорее всего достаточно будет библиотеки примитивов под целевой кристалл

Share this post


Link to post
Share on other sites
визард должен выводить список файлов с описанием, куда наливать. собственно, надо найти файл с расширением vo (или vho) и скомпилить

Само по себе это действие не помогает, потом всё вылетает с другой ошибкой.

И это явно нештатное действие, надо как-то по-другому, чтобы само находило.

 

да, и тестбенч. насчет библиотек - поищите, скрипт установки библиотек уже много раз приводился. в вашем случае скорее всего достаточно будет библиотеки примитивов под целевой кристалл

С примитивами под целевой кристалл, насколько я понимаю, проблем нет.

Есть проблемы с библиотеками под конкретное IP-ядро.

Share this post


Link to post
Share on other sites
Само по себе это действие не помогает, потом всё вылетает с другой ошибкой.

И это явно нештатное действие, надо как-то по-другому, чтобы само находило.

я не телепат, приведите команды, что вы скармливаете м-симу и ответный выхлоп

С примитивами под целевой кристалл, насколько я понимаю, проблем нет.

Есть проблемы с библиотеками под конкретное IP-ядро.

библиотеки IP-ядра нужны только для симуляции на RTL-уровне. фиг их вам кто даст, они зашифрованы. а в vo, который генерит визард, все на примитивах

Share this post


Link to post
Share on other sites

Ну вот, если действовать согласно

собственно, надо найти файл с расширением vo (или vho) и скомпилить
.

 

Нахожу в папке TRS_EncoderII_sim, которую генерит визард, файлик altera_rs_ser_enc_0001.vo.

Кладу его в корень проекта и переименовываю как TRS_EncoderII.vo - т.е. даю моделсиму тот файл, которого ему нехватает.

 

Запускаю стандартными альтеровскии средствами.

Получаю следующий "выхлоп":

# Reading C:/altera/11.1/modelsim_ase/tcl/vsim/pref.tcl 
# do S2_TestRSII_run_msim_rtl_verilog.do 
# if {[file exists rtl_work]} {
#     vdel -lib rtl_work -all
# }
# vlib rtl_work
# vmap work rtl_work
# Copying C:\altera\11.1\modelsim_ase\win32aloem/../modelsim.ini to modelsim.ini
# Modifying modelsim.ini
# ** Warning: Copied C:\altera\11.1\modelsim_ase\win32aloem/../modelsim.ini to modelsim.ini.
#          Updated modelsim.ini.
# 
# vlog -vlog01compat -work work +incdir+D:/Files/Altera/S2_TestRSII {D:/Files/Altera/S2_TestRSII/TRS_EncoderII.vo}
# Model Technology ModelSim ALTERA vlog 10.0c Compiler 2011.09 Sep 21 2011
# -- Compiling module altera_rs_ser_enc_0001
# 
# Top level modules:
#     altera_rs_ser_enc_0001
# vlog -vlog01compat -work work +incdir+D:/Files/Altera/S2_TestRSII {D:/Files/Altera/S2_TestRSII/S2_TestRSII.v}
# Model Technology ModelSim ALTERA vlog 10.0c Compiler 2011.09 Sep 21 2011
# -- Compiling module S2_TestRSII
# 
# Top level modules:
#     S2_TestRSII
# vlib lib_TRS_EncoderII
# ** Warning: (vlib-34) Library already exists at "lib_TRS_EncoderII".
# vmap lib_TRS_EncoderII lib_TRS_EncoderII
# Modifying modelsim.ini
# vlog -vlog01compat -work lib_TRS_EncoderII +incdir+D:/Files/Altera/S2_TestRSII/TRS_EncoderII {D:/Files/Altera/S2_TestRSII/TRS_EncoderII/TRS_EncoderII_0002.v}
# Model Technology ModelSim ALTERA vlog 10.0c Compiler 2011.09 Sep 21 2011
# -- Compiling module TRS_EncoderII_0002
# 
# Top level modules:
#     TRS_EncoderII_0002
# 
# vlog -vlog01compat -work work +incdir+D:/Files/Altera/S2_TestRSII {D:/Files/Altera/S2_TestRSII/S2_TestRSII_tb.v}
# Model Technology ModelSim ALTERA vlog 10.0c Compiler 2011.09 Sep 21 2011
# -- Compiling module S2_TestRS_tb
# 
# Top level modules:
#     S2_TestRS_tb
# 
# vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L stratixiigx_hssi_ver -L stratixiigx_ver -L rtl_work -L work -L lib_TRS_EncoderII -voptargs="+acc"  S2_TestRSII_tb
# vsim -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L stratixiigx_hssi_ver -L stratixiigx_ver -L rtl_work -L work -L lib_TRS_EncoderII -voptargs=\"+acc\" -t 1ps S2_TestRSII_tb 
# ** Error: (vsim-3170) Could not find 'D:\Files\Altera\S2_TestRSII\simulation\modelsim\rtl_work.S2_TestRSII_tb'.
# Error loading design
# Error: Error loading design 
#        Pausing macro execution 
# MACRO ./S2_TestRSII_run_msim_rtl_verilog.do PAUSED at line 16

Share this post


Link to post
Share on other sites

Вот.

 

P.S. Если Вручную создавать в Моделсиме проект, туда пихать файлы, относящиеся к симуляции (из папки _sim) и не относящиеся к компиляции, компилировать и т.п., то вроде работает.

 

Как сделать, чтобы всех вышеперечисленных телодвижений не надо было делать?

post-47543-1322132320_thumb.jpg

Share this post


Link to post
Share on other sites

Она и сгенерена в корневом каталоге.

Это не мешает ей делать подпапки, в которые она кладет как модель, так и файлы для компиляции.

Share this post


Link to post
Share on other sites
Она и сгенерена в корневом каталоге.

Это не мешает ей делать подпапки, в которые она кладет как модель, так и файлы для компиляции.

 

Тогда и NativeLink должен отработать. ( Я по pci сужу со своим тестбенчем)

Share this post


Link to post
Share on other sites

Да, я попадался уже на эту удочку, когда IPы отказывались работать, если они не сгенерены в корне проекта. Насколько я помню, как раз такой случай для RS Compiler I.

 

Но в данном случае это не оно. Или не совсем оно.

 

======================================================

 

Текущая ситуация.

Беру файл S2_TestRSII_run_msim_rtl_verilog.do (нерабочий), который генерит Nativelink для того, чтобы запускать Моделсим из Квартуса.

 

Удаляю оттуда строчки, добавляющие в моделсимовский проект файлы IP-ядра, не относящиеся к модели симуляции. А именно, похоже, это файлы для компиляции в железо.

 

Добавляю строчки, добавляющие в моделсимовский проект файлы IP-ядра, относящиеся к модели симуляции.

 

Сохраняю.

 

Запускаю Моделсим (не из Квартуса).

Загружаю туда получившийся файл - оно работает.

 

То есть, геморно, но работать можно.

Как сделать, чтобы Ква сам генерил рабочий скрипт?

Share this post


Link to post
Share on other sites
Как сделать, чтобы Ква сам генерил рабочий скрипт?

Попробуйте сказать NativeLink'у, чтобы он для симуляции использовал скрипт, который генерится мегавизардом (см. галку "Use script to set up simulation").

Share this post


Link to post
Share on other sites

Не, так не работает - оно строчку запуска скрипта добавляет в конец файла, а не в начало - в результате, сначала оно натыкается на отсутствующие файлы (которые ищет не те и не там), останавливается по ошибке, а до запуска того самого скрипта в результате не доходит.

Share this post


Link to post
Share on other sites
Не, так не работает - оно строчку запуска скрипта добавляет в конец файла, а не в начало - в результате, сначала оно натыкается на отсутствующие файлы (которые ищет не те и не там), останавливается по ошибке, а до запуска того самого скрипта в результате не доходит.

Ну так попробуйте указать ему, где эти файлы искать. Не в ..\simulation\modelsim, а там, где они лежат фактически.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this