Jump to content

    

modelsim /как создать библиотеку/

Приветствую всех.

Интересует вопрос, как создать свою библиотеку из исходников, чтобы потом подключать её как library qwerty;

Проект будет компилиться и симулироваттся в моделсиме.

Например в xilinx ise есть возможность руками прям в проекте её сформировать, указав лишь папку с исходниками и требуемое имя.

 

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

Share this post


Link to post
Share on other sites

В моделсиме создаешь библиотеку:

vlib jeka

В корневой папке проекта появится папка jeka, там будет лежать файл _info.

 

vmap jeka

Мапишь библиотеку в моделсим, она появится в структуре всех библиотек, но будет пустой.

 

vcom "super_exellent_source.vhd" -work jeka

vlog "bla_bla_bla_verilog.v" -work jeka

Компилишь таким образом нужные тебе исходники в свою библиотеку.

Теперь библитека уже не пустая.

Share this post


Link to post
Share on other sites

Я недавно занимался подобной задачей. https://electronix.ru/forum/index.php?showtopic=141291 В итоге плюнул на это гиблое дело. Библиотеку создал, файлы в неё скомпилировал. Но не нашел способа, чтобы библиотечные файлы автоматически подключались к проекту при симуляции. Надо это делать вручную....

 

Share this post


Link to post
Share on other sites

vsim work -L jeka -L lyb111 -L my_lib top_testbench.vhd

Будет запущена симуляция проекта с главным модулем top_testbench.vhd, к симуляции будут подключены библиотеки jeka, lyb111 и my_lib

Share this post


Link to post
Share on other sites
vsim work -L jeka -L lyb111 -L my_lib top_testbench.vhd

Будет запущена симуляция проекта с главным модулем top_testbench.vhd, к симуляции будут подключены библиотеки jeka, lyb111 и my_lib

А автоматически это можно как-то сделать ?

Я обычно запускаю Modelsim через Quartus и библиотеки в этом случае автоматом не подключатся. Может где скриптик какой подправить надо ?

Share this post


Link to post
Share on other sites

А я вообще ниразу так не запускал (Modelsim через Quartus) :rolleyes:

Там tcl файл никакой не создается?

 

PS:

Запустил Modelsim через Quartus.

Создалась папка simulation, в ней modelsim. Прошла компиляция библиотек. И на этом всё, симуляция не стартанула.

Там есть top_run_msim_rtl_vhdl.do, но он только компилит, саму симуляцию не запускает.

 

Незнаю как с Modelsim через Quartus нужно работать....

Share this post


Link to post
Share on other sites
vsim work -L jeka -L lyb111 -L my_lib top_testbench.vhd

Будет запущена симуляция проекта с главным модулем top_testbench.vhd, к симуляции будут подключены библиотеки jeka, lyb111 и my_lib

Не будет. -L -- ключ для Верилога.

 

А автоматически это можно как-то сделать ?

Я обычно запускаю Modelsim через Quartus и библиотеки в этом случае автоматом не подключатся. Может где скриптик какой подправить надо ?

В modelsim.ini

[library]
simprim = $VHDL_LIB/simprim
unisim = $VHDL_LIB/unisim
XilinxCoreLib = $VHDL_LIB/XilinxCoreLib
altera = $VHDL_LIB/altera
altera_mf = $VHDL_LIB/altera_mf
altera_lnsim = $VHDL_LIB/altera_lnsim
lpm = $VHDL_LIB/lpm

VHDL_LIB - переменная окружения, указывающая на каталог с библиотеками. Можно и захардкодить

[library]
simprim = /opt/vhdl/lib/simprim

но не нужно.

 

Команда vmap делает то же самое.

Share this post


Link to post
Share on other sites
Не будет. -L -- ключ для Верилога.

 

ModelSim® Command Reference Manual:

 

-L <library_name> …

(optional) Specifies the library to search for design units instantiated from Verilog and for

VHDL default component binding. Refer to “Library Usage” for more information. If

multiple libraries are specified, each must be preceded by the -L option. Libraries are

searched in the order in which they appear on the command line.

 

Я там ошибся:

vsim work -L jeka -L lyb111 -L my_lib top_testbench

вот так правильнее

Share this post


Link to post
Share on other sites
ModelSim® Command Reference Manual:

 

-L <library_name> …

(optional) Specifies the library to search for design units instantiated from Verilog and for

VHDL default component binding. Refer to "Library Usage" for more information. If

multiple libraries are specified, each must be preceded by the -L option. Libraries are

searched in the order in which they appear on the command line.

Я в выводе `vsim -help` вижу, что это ключ описан в разделе "Verilog options".

Сколько я ни пользовался Моделсимом, я никогда не использовал этот ключ. Он нужен для того, чтобы в проекте на Верилоге использовать компоненты, описанные на VHDL.

Share this post


Link to post
Share on other sites

Спасибо ! Но проблема в том что при запуске modelsim не генерируется ключик -L MY_LIB из-за чего моя библиотека просто не добавляется к проекту.

Share this post


Link to post
Share on other sites

Приветствую!

 

Если не хочется делать все ручками нужно поработать головой :)

Все библиотеки создаем в общей корневой директории для библиотек например "./libs"

vlib  ./libs
vlib  ./libs/jeka
vmap  jeka ./libs/jeka
....

Пишем скриптик очень похожий на приведенные ниже и грузим его

например автоматом при запуске через "Startup = do mk_tb_libs.tcl" в modelsim.ini

 

proc mk_tb_libs {{dirname "./libs"} {fname "./tb_libs.f"}} {
    if {[catch {set libs [glob -directory $dirname -type d *]}]==1} {
        set libs ""
    }
    set fou [open $fname w]
    foreach lib $libs {
        set lib_name [file tail ${lib}]
        puts $fou "-L ${lib_name}"
    }
    close $fou
}

Ну а теперь легким движением рук запускаем сим со всеми либами

alias sim_jeka  {
   mk_tb_libs "./libs" "./tb_jeka_libs.f"
   vsim  -f "./tb_jeka_libs.f" \
   ....  другие опции \
   tb_jeka
}

Успехов! Rob.

Share this post


Link to post
Share on other sites
Спасибо ! Но проблема в том что при запуске modelsim не генерируется ключик -L MY_LIB из-за чего моя библиотека просто не добавляется к проекту.

Блин, вы читаете, что я пишу? Если у вас проект в VHDL, ключ -L вам НЕ НУЖЕН. Бибилиотеку MY_LIB или прописываете в modelsim.ini вручную, или через команду vmap.

Share this post


Link to post
Share on other sites
Блин, вы читаете, что я пишу? Если у вас проект в VHDL, ключ -L вам НЕ НУЖЕН. Бибилиотеку MY_LIB или прописываете в modelsim.ini вручную, или через команду vmap.

Конечно читаю ! Библиотека прописана в modelism, скомпилирована. Но компоненты из этой библиотеки не добавляются в проект при запуске моделирования через quartus => как следствие компонент из этой библиотеки не находиться => ошибка симуляции. Может мы просто о разных вещах говорим ?

P.S Давайте сделаем проще. Я напишу всю последовательность своих действий, и Вы потом скажете где я туплю ?

Edited by Flip-fl0p

Share this post


Link to post
Share on other sites
Конечно читаю !
Похоже, вы перепутали тему. Перечитайте первое сообщение.

 

Библиотека прописана в modelism, скомпилирована. Но компоненты из этой библиотеки не добавляются в проект при запуске моделирования через quartus => как следствие компонент из этой библиотеки не находиться => ошибка симуляции. Может мы просто о разных вещах говорим ?
Да, мы говорим о разных вещах. Ваша тема про библиотеки другая.

 

P.S Давайте сделаем проще. Я напишу всю последовательность своих действий, и Вы потом скажете где я туплю ?
Вряд ли я могу что-то сказать. Я не делал сторонних библиотек для Квартуса.

Share this post


Link to post
Share on other sites
Похоже, вы перепутали тему. Перечитайте первое сообщение.

 

Да, мы говорим о разных вещах. Ваша тема про библиотеки другая.

 

Вряд ли я могу что-то сказать. Я не делал сторонних библиотек для Квартуса.

Как время появится буду пробовать что посоветовал товарищ RobFPGA :rolleyes:

P.S пора бы мне начать изучать TCL

Edited by Flip-fl0p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this