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

как в квартусе указывать директорию для поиска include файлов?

в директории проекта находит, но в другом месте нет

 

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

 

 

upd:

 

set_global_assignment -name SEARCH_PATH xxxx

 

но, что интересно из GUI квартус вставляет абсолютный путь и в придачу с виндовыми \\

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


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

в директории проекта находит, но в другом месте нет

Обычно разумно-достаточным бывает указание относительного пути прямо в `include. Причем это будет работать для всех пакетов а не только для квартуса.

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


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

в директории проекта находит, но в другом месте нет

 

GUI :: settings -> libraries

QSF :: set_global_assignment -name SEARCH_PATH ../../include/

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


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

Обычно разумно-достаточным бывает указание относительного пути прямо в `include. Причем это будет работать для всех пакетов а не только для квартуса.

Вот ещё есть проблема.

Имеем:

 

file1.v:

...

`include "path/file2.v"

...

 

file2.v:

...

`include "local_include_file.v"

...

 

проблема в том, что в процессе просмотра file1.v синтезатором, он, заинклудив file2.v, будет искать local_include_file.v в директории, где лежит file1.v, а не file2.v.

А если синтезатор просматривает file2.v не в результате инклуда, то local_include_file.v ищется в директории path.

 

Как решать? Приходится руками копировать local_include_file.v во все директории и иметь гемор при его изменении.

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


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

Вот ещё есть проблема.

Имеем:

 

file1.v:

...

`include "path/file2.v"

...

 

(...)

 

А если синтезатор просматривает file2.v не в результате инклуда, то local_include_file.v ищется в директории path.

Пользовался Quartus, сейчас на ISE + Modelsim - и во всех случаях в include-файлы выносилось что-то такое, что имеет смысл только в составе другого файла. То есть в проект Quartus я их включал с типом "текстовый файл", исключительно чтоб быстрее вызывать для правки; с

сейчас в скриптах для Modelsim не упоминаю их при компиляции в библиотеку. Может быть Вам прересмотреть разбиение проекта по файлам, чтоб все включаемые файлы принципиально не просматривались синтезатором как исходный код?

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


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

Может быть Вам прересмотреть разбиение проекта по файлам, чтоб все включаемые файлы принципиально не просматривались синтезатором как исходный код?

 

Иногда синтез проекта идёт из одной поддиректории, а например симуляция - из другой.

При этом удобнее не добавлять в тот же квартус стопицот файлов, а один *top.v, из которого заинклудить все другие.

"Все другие" при этом могут иметь свои инклуды с настройками, например, лежащие в их родных поддиректориях. А получается,

что после инклуда сорцов с кодом - [см. выше]. Может, тут надо действовтаь как-то по другому, например не лениться добавлять все

файлы в квартус, или не использовать настройки дефайнами в инклудах, а всё делать через параметры...

Изменено пользователем LordVader

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


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

Иногда синтез проекта идёт из одной поддиректории, а например симуляция - из другой.

Как правило, делаю всё из корневого каталога проекта.

Может, тут надо действовтаь как-то по другому, например не лениться добавлять все

файлы в квартус, или не использовать настройки дефайнами в инклудах, а всё делать через параметры...

Вот эту фразу ещё понял.

При этом удобнее не добавлять в тот же квартус стопицот файлов, а один *top.v, из которого заинклудить все другие.

"Все другие" при этом могут иметь свои инклуды с настройками, например, лежащие в их родных поддиректориях. А получается,

что после инклуда сорцов с кодом - [см. выше].

А вот это поясните пожалуйста подробне.

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


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

Как правило, делаю всё из корневого каталога проекта.

Я как минимум квартусовую файлопомойку в поддир пихаю. Ну и сорцы по темам тоже в поддиры распихиваю. Большая помойка в одной дире напрягает.

 

А вот это поясните пожалуйста подробне.

Ну блин, как пример посмотрите openmsp430 с опенкорок.

Там *_defines.v распиханы одинаковые в 3-4 местах.

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


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

Я как минимум квартусовую файлопомойку в поддир пихаю. Ну и сорцы по темам тоже в поддиры распихиваю. Большая помойка в одной дире напрягает.

Я делал точно также, но необходимости в дополнительных include не возникало; правда, при этом аккуратно прописывал все файлы в Квартусовском проекте.

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


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

Я делал точно также, но необходимости в дополнительных include не возникало; правда, при этом аккуратно прописывал все файлы в Квартусовском проекте.

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

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


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

Апну тему.

 

Не совсем про Квартус - пользую связку ISE + Modelsim, но поскольку с последним горе, то эта тема самая близкая

 

Вводные таковы, что сорцы *.v проекта не лежат в одном каталоге с собственно файлом проекта. В каталоге проекта есть подкаталог src с сорцами и sim с тестбенчами. В src, например, лежит top.v и constants.vh. Так вот, если в top.v есть

 

`include "constants.vh"

 

то ISE аж бегом его находит и правильно обрабатывает. А вот Моделсим - не находит. Ему подавай пути относительно каталога, из которого его запустили. Например, в fdo-скрипте, который его запускает, есть

 

vlog +acc "../src/top.v"

vlog +acc "../sim/tb_top.v"

 

топ - находит, а когда выполняет инклюд, то constants.vh уже не находит.

 

Поделитесь идеями/советами.

 

Спасибо.

 

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


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

хелп на команду vlog посмотреть никак ? что то в районе ключа $incdir :)

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


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

что то в районе ключа $incdir :)

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

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


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

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

Assignments/Libraries/Project Libraries не пойдет?

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


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

Указать путь, с учетом выхода на более верхний уровень папок (..), а дальше - куда надо.

`include "../src/constants.vh"

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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