Когда вы связываете симулятор HDL с Simulink® приложение, симулятор функционирует как сервер, как показано на следующем рисунке.
В этом случае Симулятор HDL реагирует на запросы моделирования, которые он получает из блоков косимуляции в модели Simulink. Сеанс косимуляции начинается с Simulink. После запуска сеанса можно использовать Simulink и Симулятор HDL для мониторинга прогресса и результатов симуляции. Например, вы можете добавить сигналы в волновое окно для мониторинга временных схем симуляции.
Как показано на следующем рисунке, несколько блоков косимуляции в модели Simulink могут запросить обслуживание нескольких образцов Симулятора HDL, используя уникальные порты сокета TCP/IP.
Когда вы связываете Симулятор HDL с приложением Simulink, симулятор функционирует как сервер. Используя HDL Verifier™ интерфейс связи, HDL Cosimulation блок косимулирует оборудование компонент путем применения входных сигналов к и считывания выхода сигналов от HDL- модели в процессе симуляции в Симулятор HDL.
Этот рисунок показывает образец модели Simulink, которая включает в себя блок HDL Cosimulation. Подключение использует общую память.
Блок HDL Cosimulation моделирует Приемник манчестерского кода, которая закодирована в HDL. Другие блоки и подсистемы в модели включают следующее:
Frequency Error Range блок, Frequency Error Slider блок и Phase Event блок
Подсистема манчестерского энкодера
Подсистема выравнивания данных
Подсистема захвата Inphase/Quadrature (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 не контролирует изменения сигнала, которые происходят между его шагами расчета.
Примечание
Проверьте, что сигналы, используемые в косимуляции, имеют доступ для чтения/записи. Можно проверить доступ для чтения/записи через Симулятор HDL - для получения дополнительной информации см. Симулятор HDL документацию.
Это правило применяется ко всем сигналам на Ports, Clocks и Simulation панелях и к сигналам, добавленным к модели любым другим способом.
Программное обеспечение HDL Verifier поддерживает использование сигналов мультиуровня, сигналы, которые выбраны или обновлены по различным ставкам на сингле HDL Cosimulation блок. Блок HDL Cosimulation обменивается данными для каждого сигнала со скоростью выборки Simulink для этого сигнала. Для входных сигналов блок HDL Cosimulation принимает и чтит все скорости сигнала.
Блок HDL Cosimulation также позволяет вам задать независимый шаг расчета для каждого выходного порта. Необходимо явно задать шаг расчета для каждого выходного порта или принять значение по умолчанию. Использование этой настройки позволяет управлять частотой, с которой Simulink обновляет порт выхода, считывая соответствующий сигнал от Симулятора HDL.
Используйте блок Zero-Order Hold Simulink, чтобы применить удержание нулевого порядка (ZOH) к непрерывным сигналам, которые управляются в блок HDL Cosimulation.
Блок HDL Verifier HDL Cosimulation связывает аппаратные компоненты, которые одновременно симулируются в симуляторе HDL, с остальной частью модели Simulink.
Связать Simulink и Симулятор HDL можно двумя возможными способами:
Как один HDL Cosimulation блок, установленный в рамках большей системно-ориентированной модели Simulink.
Как модель Simulink, состоящая из набора HDL Cosimulation блоков, каждый из которых представляет определенный аппаратный компонент.
Маска блока содержит панели для ввода информации о порте и сигнале, настройки режимов связи, добавления часов (Incisive® и ModelSim® только), установка команд Tcl до и постсимуляция (только Incisive и ModelSim) и определение зависимости синхронизации.
После того, как вы кодируете один из компонентов вашей модели в VHDL или Verilog® и симулируйте его в Симулятор HDL окружения, вы интегрируете представление HDL в модель Simulink как блок HDL Cosimulation. Существует по одному блоку для каждого поддерживаемого Симулятора HDL. Эти блоки находятся в библиотеке Simulink, в библиотеке блоков HDL Verifier. В качестве примера, блок для использования с Mentor Graphics® ModelSim показан на следующем рисунке.
Вы конфигурируете HDL Cosimulation блок, задавая значения для параметров в диалоговом окне параметров блоков. Диалоговое окно параметров HDL Cosimulation блоков состоит из панелей с вкладками, которые задают следующую информацию:
Порты Панели: Блокируйте вход и выходные порты, которые соответствуют сигналам, включая внутренние сигналы, вашего HDL- проекта и выхода шага расчета.
Панель подключения: Тип связи и связанные настройки, которые будут использоваться для обмена данными между симуляторами.
Timescales Панели: Отношение времени между программным обеспечением Simulink и Симулятора HDL.
Clocks Pane (только Incisive и ModelSim): Опциональные часы с передним и задним фронтом для применения к вашей модели.
Панель моделирования (только Incisive и ModelSim): команды Tcl, выполняемые до и после симуляции.
Для получения дополнительной информации о каждой из этих панелей см. HDL Cosimulation страницу с описанием.