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

Можно ли сделать параметризуемый 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 файлы автоматом передавались в Моделсим именно в таком качестве, т.е. чтобы их не надо было инклюдить?

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

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


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

может пункт 4 - http://www.fpgadeveloper.com/2014/08/versi...o-projects.html - скриптами переносить проект?

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


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

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

 

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

 

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


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

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

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

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

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

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

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

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

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

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