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

как работать с пользовательскими библиотеками в квартусе\менторе?

Драсте.

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

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

а сами сорсы надо явно внести в список файлов проекта.

 

есть ли способ обойтись бе етого? если библиотека большая - морока ее содержимое перебирать и в сорсы включать

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


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

есть ли способ обойтись бе етого? если библиотека большая - морока ее содержимое перебирать и в сорсы включать

 

а с командной строки работать не получается ?

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


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

Забудьте раз и на всегда программерский подход. Вы описываете электрическую схему соединения различных операционных блоков. Соответственно и подход к компиляции-оптимизации другой. Тут оптимизируется проект целиком, на уровне логической функции зависимости каждого выхода от каждого входа, и времени распространения сигнала через эту функцию, даже сквозь модули. Поэтому целесообразно подключать именно все исходники. Некое подобие библиотеки существует - это отсинтезированный модуль в виде его нетлиста. Как бы по аналогии с программированием "объектный модуль". Но этот нетлист тоже должен быть явно подключен к проекту, это раз, и он подойдет только к той технологии (или конкретному семейству), под которую был отсинтезирован, это два. И он может быть не оптимально синтезирован в рамках его обрамления в конкретном проекте, это три.

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


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

а с командной строки работать не получается ?

а как ето поможет?

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


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

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

а сами сорсы надо явно внести в список файлов проекта.

 

а как ето поможет?

 

ну например вот так

 

run.do :

 

set prjdir "E:/prj_verilog/service_channel"

set rtldir $prjdir/rtl
set incdir $prjdir/include
set ovmdir $prjdir/include/ovm
set tbdir  $prjdir/testbench

set debug 1
#set opt  novopt
if {$debug} {
    set opt  novopt
    set seed 5
} else {
    set opt O4
    set seed [clock seconds]
}
#
vdel -all work
vlib work
#
# rtl compile
vlog -sv -$opt +incdir+$incdir+$rtldir $rtldir/*.v
#
# tb mspi compiled
vlog -sv -$opt +incdir+$incdir+$tbdir/mspi         $tbdir/mspi/mspi_if.sv
vlog -sv -$opt +incdir+$incdir+$tbdir/mspi         $tbdir/mspi/stream_if.sv
vlog -sv -$opt +incdir+$incdir+$ovmdir+$tbdir/mspi $tbdir/mspi/mst_prog.sv

vlog -sv -$opt +incdir+$incdir+$ovmdir+$tbdir/mspi $tbdir/mspi/sch_mspi_tb.v

if {$debug} {
  vsim -novopt +OVM_TESTNAME=mst_loop_test    -suppress 3009 work.sch_mspi_tb
} else {
  vsim +OVM_TESTNAME=mst_loop_test    -suppress 3009 work.sch_mspi_tb
  run -all 
}

 

а затем в командной строке do run.do, никаких подключений, проектов или чего либо еще

 

PS. это только для ментора, для квартуса нужно делать как говорит SM

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


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

ну например вот так

Гы. А ментор оказывается понятие растяжимое :) :) Я сразу почему-то подумал, что речь пойдет о precision, и долго пытался въехать, как же тут поможет командная строка... Если это не написание шелл-скрипта линуксоидного, конечно.

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


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

а затем в командной строке do run.do, никаких подключений, проектов или чего либо еще

 

PS. это только для ментора, для квартуса нужно делать как говорит SM

 

однако..

а можно короткий комент что к чему? (или осваивать командную строку надо до самых глубин)

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


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

Меня в вопросе автора темы смущает одно его замечание

 

... если библиотека большая - морока ее содержимое перебирать и в сорсы включать

 

У меня, почему-то складывается ощущение, что предыдущие ответы не совсем на его вопрос.

 

Прошу автора уточнить что значит

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

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


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

Меня в вопросе автора темы смущает одно его замечание

 

 

 

У меня, почему-то складывается ощущение, что предыдущие ответы не совсем на его вопрос.

 

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

 

несекрет что квартус и кажись хилиних неумеют работать с модулями содержащими несколько компонентов (вот моделсим их нормально переваривает)

в смысле по етим компонентам нельзя потом сделать символы для схем.

посему правило один компонент - один модуль получается негласным правилом хорошего тона.

в результате получаем на множество даже похожих компонентов кучу сорсов, и все их надо както подключать.

пока вроде у меня терпелки хватает, но по опыту программирования на паскале\с напрашивается вывод что хорошая всеобъемлющая либа

рано или позно разрастеца так что трудно будет большие проекты делать\переносить с места наместо

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


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

а можно короткий комент что к чему? (или осваивать командную строку надо до самых глубин)

 

это скрипт на TCL, который заменяет создание проекта и подключение файлов в моделсиме, а также рутиную работу по запуску моделирования.

 

несекрет что квартус и кажись хилиних неумеют работать с модулями содержащими несколько компонентов

 

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

 

в результате получаем на множество даже похожих компонентов кучу сорсов, и все их надо както подключать.

пока вроде у меня терпелки хватает, но по опыту программирования на паскале\с напрашивается вывод что хорошая всеобъемлющая либа

рано или позно разрастеца так что трудно будет большие проекты делать\переносить с места наместо

 

у меня в проекте порядка 200-300 файлов и ничего, 1 раз добавил, потом qsf/qpf и скрипты не выкидывай. переносимость проекта мгновенная.

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

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


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

в результате получаем на множество даже похожих компонентов кучу сорсов, и все их надо както подключать.
Правильно сказали. Бросайте рисовать, переходите на язык и осваивайте параметризацию модулей.

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


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

Правильно сказали. Бросайте рисовать, переходите на язык и осваивайте параметризацию модулей.

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

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


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

в результате получаем на множество даже похожих компонентов кучу сорсов, и все их надо както подключать.

 

В зависимости от похожести можно вместо множества сделать один параметризованный. Схематика (Квартуса, во всяком случае) параметризацию поддерживает.

 

Кроме того, никто Вам не мешает при создании компонента сначала написать его в отдельном файле, сгенерировать символ, а затем поместить код в общий библиотечный файл.

 

Еще, не пробовали у Квартуса в Settings раздел Libraries? Там, между прочим, есть Global Libraries (all projects).

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


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

Еще, не пробовали у Квартуса в Settings раздел Libraries? Там, между прочим, есть Global Libraries (all projects).

ну чем поможет етот Global если все равно надо лапками сорс в проект втаскивать и вдобавок указывать в какую либу он должен компилиццо.

(--syntese library конешно втооре требование облегчает)

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


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

Вопрос к des00, Sefo и др.:

Так как все-таки в Quartus запихать в один библиотечный файл кучу модулей? У меня что-то не находятся они. Похоже, видны только модули верхнего уровня (совпадающие с именем файла). Можно подключить файл с библиотечными модулями в файл проекта, например, так:

`include "QuartusLibrary.v"

Есть ли более приличное решение?

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


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

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

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

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

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

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

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

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

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

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