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

Modelsim, автоматизация создания do скриптов

Форумчане, добрый день.

Получил сюрприз в Quartus Pro, отсутствует автоматизация запуска Моделсима прям из квартуса. Пришлось изучать мануал, хорошо хоть он есть. Теперь понимаю, что мне предстоит всегда перечислять все sv, v файлы, что вводит меня в маленький шок =). Может кто уже прошел по этой тропе и нашел хоть малейшую автоматизацию создания do скриптов для симуляции всего проекта? Или каждый для себя сам писал различного рода помощников

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

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


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

Ну рано или поздно все равно придётся где-то объявлять список задействованных файлов.

 

В do скриптах можно в качестве цели указывать не файл, а папку:

./../rtl/blabla/*.sv

 

А про помощников - все придумано за нас:

hdlmake

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


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

Вообще-то всё начинается как-раз с Моделсима. Задолго до Квартуса.

И если что-то автоматизировать, так это создание списка файлов именно для квартусовского проекта.

 

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


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

18 hours ago, new123 said:

предстоит всегда перечислять все sv, v файлы

Если мне не изменяет память, то в Квартусовском файле проекта (.qsf) есть обьявление всех подключаемых файлов. Скопируйте просто всё в отдельный .do файл и подключайте себе по скрипту/автоопции в Моделсим.

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


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

1 hour ago, Nick_K said:

Если мне не изменяет память, то в Квартусовском файле проекта (.qsf) есть обьявление всех подключаемых файлов.

да, так и сделал.
Просто, если все готовить из квартуса обычной версии, он в do файл прописывает еще все все файлы всех корок, а это очень очень много файлов. Меня это сильно и смутило. Но если делать из Pro по альтеровскому мануалу, то хватило прописи файлов только из qsf

 

6 hours ago, nice_vladi said:

В do скриптах можно в качестве цели указывать не файл, а папку:

./../rtl/blabla/*.sv

буду теперь знать, спасибо =)

 

2 hours ago, andrew_b said:

Вообще-то всё начинается как-раз с Моделсима. Задолго до Квартуса.

у меня как то параллельно все вышло. А так как квартус все готовит автоматически, я даже не знал никогда как эти скрипты готовятся

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


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

Если сравнивать даже с ISE... Однажды я попробовал запустить Modelsim из Quartus, понял что этот раз был последним. Однако, создание bat/bash скрипта и ручное создание проекта для симуляции Altera в Modelsim оказалось в 10 раз проще. Если интересно, могу подсказать, как именно это делать. Вот мой простой пример test_msim.zip

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


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

Just now, new123 said:

посмотрел. sim.do вы же руками написали?

Именно так, это не требует особых усилий. А список файлов я иногда забиваю в do-файл получая его просто в консоли ls *.v

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


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

3 minutes ago, AVR said:

Именно так, это не требует особых усилий. А список файлов я иногда забиваю в do-файл получая его просто в консоли ls *.v

вот смотрите, я когда создавал тему, у меня перед глазами был автосозданный do файл из Quartus Standart Editionю. Небольшой кусочек, только часть. И глядя на это, я думал, что мне теперь весь этот ужас нужно руками прописывать, а это строк 600.
Но в Pro версии как то обошлось без этого, но все равно много перечислять.

сделать bash с ls *.v идея норм, спасибо, пометил в блокнот себе =) Сам не додумался, надо отдыхать.

 

2020-08-06_22-33.png

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


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

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

32 minutes ago, new123 said:

посмотрел. sim.do вы же руками написали?

На самом деле   сделать скрипт  который будет брать на входе .qsf файл  проекта а на выходе выдавать список всех исходников  не так уж и сложно.  Если присмотреться то в .qsf  команд добавляющих  фалы исходников всего ... одна!  set_global_assignment ....

set_global_assignment -name QIP_FILE             .../ip_qsys.qip
set_global_assignment -name SYSTEMVERILOG_FILE   .../sv_source.sv  
set_global_assignment -name VERILOG_FILE         .../v_source.v  
set_global_assignment -name VHDL_FILE            .../vhd_source.vhd  
  

То-есть надо всего лишь  парсить построчно   qsf выделяя  set_global_assignment -name (QIP_FILE|VHDL_FILE|VERILOG_INCLUDE_FILE|VHDL_FILE|...)   (/path/source_name)  ...  ну и для найденных qip|sip файлов  делать этот парсинг рекурсивно.  А для найденных qsys файлов  предварительно еще и вызывать генерацию qip через ip-generate

В  боле ленивом (трудолюбивом)  :scratch_one-s_head:варианте парсить можно только qip|sip  которые вместе с обычными rtl файлами добавляете в список компиляции в скрипте для симуляции ручками.   

Удачи! Rob.

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


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

в свое время, пробовал в проекте из 700 файлов, собрать их в инклудники, по типам, и подключить к ПО. Получилось порядка 5-8 файлов. Все работало кроме вивады. она собирала, но не могла прыгать по модулям при интерактивной работе со схематиками. В итоге пришлось отказаться от такой техники

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


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

А что мешает запихнуть все исходники в одну папку и подключать их через wildcard как было сказано выше?

Мы, правда, сейчас используем одну папку для массы проектов, посему пришлось создавать специальные filelist (проприетарный формат, поддерживаемый тулзом) и подключаться к исходникам через него. Ну и к нему парсер на Пайтоне сделали, чтобы относительные пути в абсолютные парсить + исключить подпапки для другого менее умного тулза. Но это всё проза. Обычно add *.v спасает ситуацию :)

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


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

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

51 minutes ago, Nick_K said:

А что мешает запихнуть все исходники в одну папку и подключать их через wildcard как было сказано выше?

Свои  файлы может и можно держать в такой свалке  :hang3: Но вот некоторые  корки в Qu  требуют компиляции в отдельные библиотеки. Да и pakage часто нужно компилировать в требуемом порядке, а не как попало.
Ну и очень часто  бывает что исходников  значительно больше  чем нужно - разные версии модулей,  разные тесты, ...  как  при подходе  "... скомпилю ка я все гамузом ..."  быть уверенным что симулировать будет то что нужно, а не то что попалось под руку.
А вот при парсинге qip легко извлекается и библиотеки назначения и порядок компиляции. И ты всегда уверен что компилируется для симуляции то что и синтезируется.  :boast:  

Удачи!  Rob.

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


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

19 minutes ago, RobFPGA said:

Ну и очень часто  бывает что исходников  значительно больше  чем нужно - разные версии модулей,  разные тесты

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

Всё просто - папка RTL с актальными исходниками проекта и ничего лишнего :wink:

А вот с подключаемыми IP - там немного сложнее, но тоже идеология приблизительно такая же.

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


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

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

 

Версии модулей моем понимании это то что может использоваться в текущем проекте в зависимости от настройки  параметров синтеза. 
А что с последовательностью компиляции ? Или с package?  

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

2 hours ago, Nick_K said:

Но это всё проза. Обычно add *.v спасает ситуацию :)

Видимо  не спасает  раз все же  пришлось и внешний "велосипед"  изобретать  для  отслеживания связей.  

 

Удачи! Rob.

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


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

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

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

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

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

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

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

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

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

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