Совместное моделирование проектов в 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 должны появится входные и выходные порты:
- Нажимаем Ctrl-E для открытия диалога параметров модели. Идем на закладку Solver. Выбираем:
Type: Fixed-step, Solver: discrete(no continuous states) Tasking mode for periodic sample times: Single Tasking
- Закрываем диалог кнопкой Ok.
Теперь можно добавить необходимые блоки для создания входных воздействий, и запускать модель кнопкой Start Simulation.
Эксперементально было установлено что при остановке модели Simulink и повторном ее запуске, состояние модели в Questasim сбрасывается только внешним сигналом сброса. Поэтому если в xHDL модели присутствуют блоки которые сбрасываются однократно при инициализации, то они "залипнут" в предыдущем состоянии что может привести к неправильной работе модели при повторном запуске. Если такие блоки присутствуют то необходимо перед каждым запуском Simulink модели перезапускать моделирование в Questasim (Modelsim).
Ниже представлен небольшой видеоролик как это все работает.
- блог пользователя mks
- 41037 просмотров
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика Imprecise Bus Faults в микроконтроллерах Cortex-M3/M4/M4F
- Self-powered камера
- Фоновый модулятор: беспроводная связь из ничего (перевод)
- Texas Instruments Analog Applications Journal SLYT612 "Снижение искажений в аналоговых КМОП ключах" (перевод)
- USB MSD. Часть 6. Команды SCSI (перевод)
- USB MSD. Часть 3. USB класс накопителей данных (перевод)
- Texas Instruments Application Report SBAA042 "Кодовые схемы, используемые в аналогово-цифровых преобразователях" (перевод)
- 10 принципов правильного интерфейса
- Релиз SDK на русский микропроцессор КРОЛИК
Комментарии
Музеи и галереи
Музеи и галереи
Пляжный отдых
Ночная жизнь
Туристические пакеты
Музеи и галереи
Горные туры
Музеи и галереи
Рестораны и кафе
Жилье для отпуска
Путешествия с рюкзаком
Туристические советы
Горные туры
Все о кожном недуге
Все о кожном недуге
Все о кожном недуге
Все о кожном недуге
Все о кожном недуге
Все о кожном недуге
Все о кожном недуге
dubllikat from ru
очень хорошо
большое спасибо
very interesting, but nothing sensible
thank you very much
cheaper alternative maxalt
buy clomid no rx
avtoznak dublikat
Изготовление квадратных номеров
номера без флага
Отправить комментарий