Jump to content

    
Sign in to follow this  
Koluchiy

Можно ли сделать параметризуемый include?

Recommended Posts

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

 

Есть верилоговский проект в Vivado 2016.4, который симулируется в Modelsim/Questa.

Его параметры сложены в отдельный файл, который подцеплен куда надо через `include.

В `include задаю полный путь, т.к. понятие текущего пути в Вивадо - темная ересь.

 

В общем, вышеописанным способом работает нормально и компиляция, и симуляция.

 

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

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

 

Чего пробовал:

1) Задавать константу define в глобальном файле (IS_GLOBAL_INCLUDE) и делать include на эту константу. Не работает, Vivado при синтезе пишет, что константа не определена.

2) Задавать нужные параметры в глобальном файле, include не делать. Не работает, Моделсим глобального файла не видит.

3) Класть файл с определениями в "текущий путь" проекта. Не работает, Vivado не видит этого файла, т.к. в процессе синтеза vivado меняет текущий путь.

 

В общем, мне кажется наиболее перспективным п.2, но надо как-то дать понять Моделсиму, что есть глобальный файл.

 

Ну или другие советы велкам :).

Share this post


Link to post
Share on other sites

я для подобных извращений использовал git - то есть два бранча, ну и соответственно файлы с этим инклудом требуют отдельного внимания, чтобы не закомитилось в другую ветку

но это для дома/семьи, в серьезном бизнесе так не делают :)

 

Share this post


Link to post
Share on other sites

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

 

...

Есть верилоговский проект в Vivado 2016.4, который симулируется в Modelsim/Questa.

Его параметры сложены в отдельный файл, который подцеплен куда надо через `include.

В `include задаю полный путь, т.к. понятие текущего пути в Вивадо - темная ересь.

...

Ну не совсем уж и ересь - пути где искать include задаются в настройках проекта Vivado

или командой set_property INCLUDE_DIRS "..." в скрипте или tcl консоли.

Похоже задаются пути поиска include и в Modelsim/Questa через опцию в командной строке.

 

Удачи! Rob.

 

 

 

Share this post


Link to post
Share on other sites

А как-то можно сделать, чтобы global include файлы автоматом передавались в Моделсим именно в таком качестве, т.е. чтобы их не надо было инклюдить?

Или для этого надо создавать библиотеку?

Share this post


Link to post
Share on other sites

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

 

А как-то можно сделать, чтобы global include файлы автоматом передавались в Моделсим именно в таком качестве, т.е. чтобы их не надо было инклюдить?

Или для этого надо создавать библиотеку?

Не понятно что Вы имели ввиду под "...автоматом передавались в Моделсим... "

 

Лежат где то у Вас эти фалы ..../daleko/v_zho/file1.vh ..../eshe_glubge/v_zho/file2.vh

ну так и скажите modelsim где искать из - vlog ... +incdir+"..../daleko/v_zho" +incdir+"..../eshe_glubzhe/v_zho" ...

А еще лучше засунуть все это в файл настроек kucha_mala.f

и скормить его в modelsim vlog -f ./kucha_mala.f ...

или даже vlog -F ./kucha_mala.f

В последнем случае modesim относительные пути в kucha_mala превратит в абсолютные.

Но -F только в последних версиях поддерживается

 

Удачи! Rob.

Share this post


Link to post
Share on other sites
Приветствую!

 

 

Не понятно что Вы имели ввиду под "...автоматом передавались в Моделсим... "

 

Это чтобы не надо было передавать дополнительные скрипты и параметры. Чтобы всё делал Вивадо на основании того, какие файлы обозначены в проекте как global_include.

Share this post


Link to post
Share on other sites

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

 

Это чтобы не надо было передавать дополнительные скрипты и параметры. Чтобы всё делал Вивадо на основании того, какие файлы обозначены в проекте как global_include.

Честно говоря не знаю.

Так как интерфейс Vivado "живой" и постоянно что то меняется то я стараюсь не зависеть от настроения неизвестных индийский программистов - поэтому структуру проекта стараюсь контролировать самостоятельно.

Соответственно есть набор скриптов который помогает в этом - создать/пересоздать проект, скомпилировать и запустить сим, подключить сигналы к debuger и.т.д ...

 

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

И тогда Vivado будет делать все за Вас. :) (может даже и дизайнить - если Вы в скрипт ИИ запрограммируете)

 

Удачи! Rob

 

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