Совместное моделирование проектов в Modelsim (Qusestasim) и Simulink

Некоторое время назад мне пришлось много заниматся разработкой систем ЦОС на ПЛИС. В часности разроботкой и отладкой модемов. Хорошим инструментов для "обкатки" алгоритмов, и самое главное динамической визуализации поведения, является Simulink, который входит в состав Matlab. Simulink позволяет создать модель системы высокого уровня и настроить ее параметры согласно предпологаемым режимам работы. После переноса системы на какойнибуть из языков HDL, встает вопрос соответствия эталонной модели. И вот сдесь очень удобным является совместное моделирование системы реализованой в Simulink и в ПЛИС. В данной заметке я раскажу как это можно сделать.

Итак эксперементы будем проводить над такими версиями ПО:

  • Matlab 2006b (7.3.0) с установленым Link for modelsim
  • QuestaSim 6.4c

Далее по шагам что необходимо сделать для успешного запуска:

  • Скомпилировать проект который хотим прогнать совместно с Simulink в рабочую библиотеку Questasim.
  • Запустить моделирование в Questasim командой:

vsim -foreign {simlinkserver d:/matlab/toolbox/modelsim/win32/simulinklink.dll} work.top

Предпологается что Matlab установлен в папку d:/matlab.

  • Открываем новую модель Simulink и добавляем на нее компонент HDL Cosimulation, из папкм Link for modelsim, браузера моделей simulink.
  • На закладке Connection указываем тип соединения Shared Memory, после этого на закладке Ports можно использовать кнопку Auto Fill которая позволяет автоматически получить список портов модуля. Если как в команде приведеной выше имя верхнего модуля top, то достаточно в окне вбить строку /top/ и нажать кнопку Ok. После этого должен появится список всех портов ввода-вывода модуля top.
  • На закладке Clocks добавляем тактовые входы (с закладки Ports их необходимо убрать), указываем необходимые значения тактовых частот, а на закладке Timescale соотношения тактовых частот модели simulink и HDL модуля.
  • Закрывем диалог настройки кнопкой Ok. После этого у блока HDL Cosimulation должны появится входные и выходные порты:

 Modelsim

  • Нажимаем Ctrl-E для открытия диалога параметров модели. Идем на закладку Solver. Выбираем:
Type: Fixed-step,   Solver: discrete(no continuous states)
Tasking mode for periodic sample times: Single Tasking
  • Закрываем диалог кнопкой Ok.

Config parameters

Теперь можно добавить необходимые блоки для создания входных воздействий, и запускать модель кнопкой Start Simulation.

Final model

Эксперементально было установлено что при остановке модели Simulink и повторном ее запуске, состояние модели в Questasim сбрасывается только внешним сигналом сброса. Поэтому если в xHDL модели присутствуют блоки которые сбрасываются однократно при инициализации, то они "залипнут" в предыдущем состоянии что может привести к неправильной работе модели при повторном запуске. Если такие блоки присутствуют то необходимо перед каждым запуском Simulink модели перезапускать моделирование в Questasim (Modelsim).

Ниже представлен небольшой видеоролик как это все работает.

ПредпросмотрAttachmentSize
simulinkmodelsim.avi2.57 МБ

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

SEO консултации

Many thanks, this site is very helpful. Вижте и страницата ми https://rsmpindramayu.com/2018/12/12/medical-checkup/ SEO оптимизация =777?

брауни кекс

Вау, потрясающе сайт. Спасибо... посмотрите и эту страничку и дайте ей оценку http://nigeria-whos-who.com/index.php?title=Things_You_Should_Know_About_%D0%91%D1%80%D0%B0%D1%83%D0%BD%D0%B8_%D0%A1_%D0%9A%D0%B... брауни с течен шоколад https://kagla.gnuok.com/gnuboard5/bbs/board.php?bo_table=free&wr_id=26431 дерматолог в софия http://postmaster.cameseeing.com/bbs/board.php?bo_table=ex_03&wr_id=545224 bosch перални за вграждане http://shinsungseal.co.kr/bbs/board.php?bo_table=free&wr_id=99995 почивка италия римини септември =0090=0=

тайланд работа

Very energetic blog, I liked that a lot. Will there be a part 2? взгляните также эту страничку и дайте ей оценку https://anotepad.com/note/read/7dd3d8e3 виза за тайланд за българи http://danikaryaku.php.xdomain.jp/danikaryakuwiki/index.php?title=Nine_Ways_To_Reinvent_Your_%D0%9A%D1%80%D0%B0%D0%B1%D0%B8_%D0%... коментари за краби тайланд https://www.beautyfashiontextile.com/question/%D0%B3%D0%BE%D0%BB%D1%84-%D0%BF%D0%BE%D1%87%D0%B8%D0%B2%D0%BA%D0%B8-%D0%B2-%D1%82%... златния буда в патая https://unitenplay.ca/forums/users/yettadelee6422/ почивка на остров пукет тайланд https://academy.theunemployedceo.org/forums/users/dominiquecocks/ екскурзия до о закинтос https://www.lookali.de/community/profile/shantaehazel989/ детски рокли на барби (9960de)

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Syntax highlight code surrounded by the {syntaxhighlighter SPEC}...{/syntaxhighlighter} tags, where SPEC is a Syntaxhighlighter options string or "class="OPTIONS" title="the title".
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <p> <span> <s> <strike> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <caption> <tbody> <tr> <td> <em> <b> <u> <i> <strong> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <embed> <object> <param> <strike>
  • Использовать как разделитель страниц.

Подробнее о форматировании