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

    

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

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

 

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

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

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

 

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

 

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

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

 

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

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

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

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

 

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

 

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

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


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

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

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

 

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


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

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

 

...

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

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

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

...

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

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

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

 

Удачи! Rob.

 

 

 

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


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

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

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

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


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

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

 

А как-то можно сделать, чтобы 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.

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


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

 

 

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

 

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

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


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

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

 

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

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

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

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

 

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

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

 

Удачи! Rob

 

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация