Когда вы соединяете симулятор HDL с Simulink® приложение, средство моделирования функционирует как сервер как показано в следующем рисунке.
В этом случае симулятор HDL отвечает на запросы симуляции, которые он получает от блоков cosimulation в модели Simulink. Вы начинаете cosimulation сеанс с Simulink. После того, как сеанс запускается, можно использовать Simulink и симулятор HDL, чтобы контролировать прогресс симуляции и результаты. Например, вы можете добавить сигналы в окно волны, чтобы контролировать схемы синхронизации симуляции.
Когда следующий рисунок показывает, несколько блоков cosimulation в модели Simulink могут запросить сервис нескольких экземпляров симулятора HDL, с помощью уникальных портов сокета TCP/IP.
Когда вы соединяете симулятор HDL с приложением Simulink, средство моделирования функционирует как сервер. Используя коммуникационный интерфейс HDL Verifier™, блок HDL Cosimulation cosimulates аппаратный компонент путем применения входных сигналов к и чтения выходных сигналов модели HDL при симуляции в симуляторе HDL.
Этот рисунок показывает демонстрационную модель Simulink, которая включает блок HDL Cosimulation. Связь использует общую память.
Блок HDL Cosimulation моделирует Приемник манчестерского кода, который закодирован в HDL. Другие блоки и подсистемы в модели включают следующее:
Блок Frequency Error Range, блок Frequency Error Slider и блок Phase Event
Подсистема манчестерского энкодера
Подсистема выравнивания данных
Подсистема получения Синфазной / квадратуры (I/Q)
Блок Error Rate Calculation из программного обеспечения Communications Toolbox™
Блок Bit Errors
Блок Data Scope
Блок Constellation Diagram из программного обеспечения Communications Toolbox
Для получения информации о начале работы с программным обеспечением Simulink смотрите, что Simulink онлайн помогает или документация.
Несмотря на то, что можно связать выходные порты блока HDL Cosimulation к любому сигналу в иерархии модели HDL, необходимо соблюдать некоторую осторожность при соединении сигналов с входными портами. Вы хотите проверить, что сигнал, с которым вы связываете, не имеет других драйверов. Если это делает, используйте разрешенные логические типы; в противном случае можно получить непредсказуемые результаты.
Если необходимо использовать сигнал, который имеет несколько драйверов, и он разрешен (например, это имеет VHDL® введите STD_LOGIC
), Simulink применяет функцию разрешения на каждом временном шаге, заданном частотой дискретизации Simulink сигнала. В зависимости от других драйверов значение Simulink может или не может быть применено. Кроме того, Simulink не имеет никакого контроля над изменениями сигнала, которые находятся между его шагами расчета.
Примечание
Проверьте, что сигналы, используемые в cosimulation, имеют доступ для чтения-записи. Можно проверять, что доступ для чтения-записи через симулятор HDL — видит документацию симулятора HDL для деталей.
Это правило применяется ко всем сигналам на Ports, Clocks и панелях Simulation и к сигналам, добавленным к модели любым другим способом.
Программное обеспечение HDL Verifier поддерживает использование многоскоростных сигналов, сигналы, которые производятся или обновляются на различных уровнях в одном блоке HDL Cosimulation. Блок HDL Cosimulation обменивается данными для каждого сигнала на уровне частоты дискретизации Simulink для того сигнала. Для входных сигналов блок HDL Cosimulation принимает и соблюдает все уровни сигнала.
Блок HDL Cosimulation также позволяет вам задать независимый шаг расчета для каждого выходного порта. Необходимо явным образом установить шаг расчета для каждого выходного порта или принять значение по умолчанию. Используя эту установку позволяет вам управлять уровнем, на котором Simulink обновляет выходной порт путем чтения соответствующего сигнала из симулятора HDL.
Используйте блок Simulink Zero-Order Hold, чтобы применить хранение нулевого порядка (ZOH) на непрерывные сигналы, которые управляются в блок HDL Cosimulation.
Блок HDL Verifier HDL Cosimulation соединяет аппаратные компоненты, которые одновременно симулируют в симуляторе HDL к остальной части модели Simulink.
Можно соединить Simulink и симулятор HDL двумя возможными способами:
Когда один блок HDL Cosimulation поместился в среду большей ориентированной на систему модели Simulink.
Когда модель Simulink составила из набора блоков HDL Cosimulation, каждый представляющий определенный аппаратный компонент.
Маска блока содержит панели для ввода порта и информации сигнала, устанавливая коммуникационные режимы, добавляя часы (Острый® и ModelSim® только), задавая пред - и постсимуляция команды Tcl (Острый и только ModelSim), и задавая временную зависимость.
После того, как вы кодируете один из компонентов своей модели в VHDL или Verilog® и симулируйте его в среде симулятора HDL, вы интегрируете представление HDL в свою модель Simulink как блок HDL Cosimulation. Существует один блок для каждого поддерживаемого симулятора HDL. Эти блоки расположены в Библиотеке Simulink в библиотеке блоков HDL Verifier. Как пример, блок для использования с Mentor Graphics® ModelSim показывают на следующем рисунке.
Вы конфигурируете блок HDL Cosimulation путем определения значений для параметров в диалоговом окне параметров блоков. Диалоговое окно параметров блоков HDL Cosimulation состоит из панелей с вкладками, которые указывают следующую информацию:
Панель портов: Блокируйте порты ввода и вывода, которые соответствуют сигналам, включая внутренние сигналы, вашего проекта HDL и выходного шага расчета.
Панель связи: Тип коммуникации и связанных настроек, которые будут использоваться для обмена данными между средствами моделирования.
Панель масштабов времени: временная зависимость между программным обеспечением Simulink и симулятором HDL.
Панель часов (Острый и только ModelSim): Дополнительное возрастающее ребро и ребро падения синхронизируют, чтобы примениться к вашей модели.
Панель симуляции (Острый и только ModelSim): команды Tcl, чтобы запуститься до и после симуляции.
Для большего количества детали о каждой из этих панелей смотрите страницу с описанием HDL Cosimulation.