HDL Cosimulation

HDL Cosimulate проектирует путем соединения Simulink с симулятором HDL

  • Библиотека:
  • HDL Verifier / Для Использования с Острым Тактовым сигналом

    HDL Verifier / Для Использования с Mentor Graphics ModelSim

Описание

Блок HDL Cosimulation cosimulates аппаратный компонент путем применения входных сигналов к и чтения выходных сигналов модели HDL при симуляции в симуляторе HDL. Можно использовать этот блок, чтобы смоделировать источник или устройство приемника путем конфигурирования блока с портами ввода или вывода только.

Можно сконфигурировать эти опции на блоке:

  • Отображение портов ввода и вывода блока, чтобы соответствовать сигналам (включая внутренние сигналы) модуля HDL. Необходимо задать шаг расчета для каждого выходного порта. Можно опционально задать тип данных для каждого выходного порта.

  • Тип коммуникационных и коммуникационных настроек раньше обменивался данными между средствами моделирования.

  • Временная зависимость между модулями времени симуляции в Simulink® и симуляторе HDL.

  • Возрастающее ребро или ребро падения синхронизируют, чтобы примениться к вашей модели. Можно задать период для каждого сигнала часов.

  • Команды Tcl, чтобы запуститься до и после симуляции.

Совместимость с генерацией кода Simulink

  • Этот блок участвует в генерации HDL-кода с HDL Coder™. Кодер генерирует интерфейс к вашему вручную записанному или устаревшему HDL-коду. Это не участвует в генерации кода C с Simulink Coder™.

Порты

Порты, показанные на блоке, соответствуют сигналам из вашего проекта HDL, запускающегося в симуляторе HDL. Можно добавить и удалить порты и сконфигурировать их типы данных и шаги расчета путем изменения параметров блоков. Вкладка Ports отображает сигналы HDL, которые соответствуют портам. Можно добавить, удалить и изменить порядок портов. Используйте кнопку Auto Fill, чтобы заполнить, таблица через информацию порта запрашивают к симулятору HDL. Этот запрос возвращает имена порта и информацию из вашего проекта HDL, запускающегося в симуляторе HDL. См., “Получают информацию Сигнала от симулятора HDL” для подробного описания этой функции.

Все сигналы, что вы задаете, когда вы конфигурируете блок HDL Cosimulation, должны иметь доступ для чтения-записи в симуляторе HDL. Обратитесь к документации по продукту симулятора HDL для деталей.

Когда вы импортируете сигналы VHDL® из симулятора HDL, HDL Verifier™ возвращает имена сигнала во всех прописных буквах.

Входной параметр

развернуть все

Порты на блоке соответствуют портам на вашем проекте HDL. Добавьте или удалите порты на вкладке Ports.

Типы данных: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | Fixed-point

Вывод

развернуть все

Порты на блоке соответствуют портам на вашем проекте HDL. Добавьте или удалите порты на вкладке Ports.

Типы данных: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | Fixed-point

Параметры

развернуть все

Порты

Устраняет одно демонстрационное выходом различие в задержке между cosimulation и Simulink, который происходит, когда ваша модель содержит чисто комбинационные пути. Снимите этот флажок, если блок HDL Cosimulation находится в обратной связи и генерирует алгебраические предупреждения цикла или ошибки. Когда вы симулируете последовательную схему, которая имеет регистр на информационном канале, указывая, что прямое сквозное соединение не влияет на синхронизацию того информационного канала.

Задайте имя пути прохождения сигнала с помощью синтаксиса пути симулятора HDL. Например, manchester.samp для средств моделирования Incisive®HDL. Сигнал может быть на любом уровне иерархии проекта HDL. Порт блока HDL Cosimulation, соответствующий сигналу, помечен этим именем.

Для правил об определении порта и путей модуля в Simulink, см., “Задают Пути к Сигналу/Порту и Модулю HDL для Cosimulation”.

Можно скопировать имена пути прохождения сигнала непосредственно с окна wave симулятора HDL и вставить их в поле Full HDL Name. Используйте Path.Name просмотрите и не Db::Path.Name представление. После вставки имени пути прохождения сигнала в Full HDL Name нажмите Apply, чтобы завершить операцию вставки и обновить список сигнала.

Чтобы добавить двунаправленный порт, добавьте порт в список дважды как оба ввода и вывода.

Input — HDL сигнализирует о том Simulink диски. Simulink вносит значения на заданном сигнале симулятора HDL на уровне заданной частоты дискретизации.

Примечание

Когда вы задаете входной порт блока, убедитесь, что только один источник настраивается, чтобы управлять входом к тому сигналу. Например, постарайтесь не задавать входной порт, который имеет несколько экземпляров. Если вход диска многочисленных источников к одному сигналу, ваша имитационная модель приводит к неожиданным результатам.

Output — HDL сигнализирует о том Simulink чтения. Для выходных сигналов необходимо задать явный шаг расчета. Можно также задать тип данных, но ширина должна совпадать с шириной сигнала в HDL. Для получения дополнительной информации при определении типа данных, смотрите параметры Fraction Length и Data Type.

Сигналы Simulink не имеют семантического с тремя состояниями, потому что нет никакого 'Z' значение. Чтобы взаимодействовать через интерфейс с двуполярными сигналами, соединитесь с входом и включите сигналы и выходного драйвера и выходного сигнала входного драйвера. Этот подход оставляет фактический буфер с тремя состояниями в HDL, где функции разрешения могут обработать взаимодействие через интерфейс с другими буферами с тремя состояниями.

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

Simulink вносит сигнал входного порта на сигнале симулятора HDL на уровне заданной частоты дискретизации. С другой стороны Simulink читает сигнал выходного порта из заданного сигнала симулятора HDL на уровне заданной частоты дискретизации.

В общем случае Simulink обрабатывает периоды расчета порта можно следующим образом:

  • Если вы соединяете входной порт с сигналом, который имеет явный период расчета, на основе прямого распространения, Simulink применяет тот уровень к порту.

  • Если вы соединяете входной порт с сигналом, который не имеет явного периода расчета, Simulink присваивает период расчета, который равен наименьшему общему кратному (LCM) всех идентифицированных периодов расчета входного порта в модели.

  • После того, как Simulink устанавливает периоды расчета входного порта, он применяет заданные пользователями выходные шаги расчета ко всем выходным портам. Необходимо задать явный шаг расчета для каждого выходного порта.

Точная интерпретация шага расчета выходного порта зависит от настроек параметров Timescales блока HDL Cosimulation. См. также Масштабы времени Симуляции.

Зависимости

Чтобы включить этот параметр, установите I/O Mode на Output.

Выберите Inherit автоматически определить тип данных. Проверки блока, что наследованный размер слова совпадает с размером слова, запрошенным от симулятора HDL. Если они не соответствуют, Simulink генерирует сообщение об ошибке. Например, если вы соединяете блок Signal Specification с выходом, Inherit обеспечивает тип данных, заданный блоком Signal Specification на выходной порт.

Если Simulink не может определить тип данных сигнала, соединенного с выходным портом, это запрашивает симулятор HDL для типа данных порта. Как пример, если симулятор HDL возвращает тип данных VHDL STD_LOGIC_VECTOR для сигнала размера N биты, тип данных ufixN обеспечен на выходном порте. Неявная дробная длина 0.

Можно также присвоить явный тип данных с дополнительным Fraction Length. Путем явного присвоения типа данных можно обеспечить типы данных с фиксированной точкой на выходных портах блока HDL Cosimulation. Например, для 8-битного выходного порта, устанавливая Sign на Signed и установка Fraction Length к 5 обеспечивает тип данных к sfix8_En5. Вы не можете обеспечить ширину. Ширина всегда наследована от симулятора HDL.

Зависимости

Чтобы включить этот параметр, установите I/O Mode на Output.

Свойства Data Type и Fraction Length применяются только к следующим типам сигналов HDL:

  • Сигналы VHDL любого логического типа, такие как STD_LOGIC или STD_LOGIC_VECTOR

  • Сигналы Verilog® wire или reg ввод

Подпишите обозначение для явного типа данных выходного порта.

Зависимости

Чтобы включить этот параметр, установите I/O Mode на Output, и набор Data Type к Fixedpoint.

Размер, в битах, дробной части выходного сигнала фиксированной точки. Например, для 8-битного выходного порта, устанавливая Sign на Signed и установка Fraction Length к 5 обеспечивает тип данных к sfix8_En5. Вы не можете обеспечить ширину; ширина всегда наследована от симулятора HDL.

Зависимости

Чтобы включить этот параметр, установите I/O Mode на Output, и свойство Data Type к Fixedpoint.

Свойства Data Type и Fraction Length применяются только к следующим типам сигналов HDL:

  • Сигналы VHDL любого логического типа, такие как STD_LOGIC или STD_LOGIC_VECTOR

  • Сигналы Verilog wire или reg ввод

Часы

Создайте дополнительное возрастающее ребро и часы ребра падения, которые применяют стимулы для вашей cosimulation модели. Список прокруток отображает часы HDL, которые управляют значениями к сигналам HDL, что вы моделируете, с помощью метода депозита. Сигналы часов должны быть одноразрядными сигналами. Векторные сигналы не поддержаны. Для получения инструкций по добавлению и редактированию сигналов часов, смотрите Создающие Дополнительные Часы с Панелью Часов HDL Блок Cosimulation.

Задайте каждые часы как имя пути прохождения сигнала, с помощью синтаксиса пути симулятора HDL. Например: /manchester/clk или manchester.clk.

Для получения информации об и требования для технических требований пути в Simulink, см., “Задают Пути к Сигналу/Порту и Модулю HDL для Cosimulation”.

Можно скопировать имена пути прохождения сигнала непосредственно с окна wave симулятора HDL и вставить их в поле Full HDL Name. Используйте Path.Name просмотрите и не Db::Path.Name представление. После вставки имени пути прохождения сигнала в Full HDL Name нажмите Apply, чтобы завершить операцию вставки и обновить список сигнала.

Выберите Rising или Falling задавать или часы возрастающего ребра или часы ребра падения.

Чтобы задать явный период часов, введите шаг расчета, равный или больше, чем два модуля разрешения (метки деления).

Если период часов не является ровным целым числом, Simulink не может создать 50%-й рабочий цикл. Вместо этого программное обеспечение HDL Verifier создает падающее ребро в clockperiod/2 (округленный в меньшую сторону до самого близкого целого числа).

Масштабы времени

Выберите временную зависимость между Simulink и симулятором HDL, или вручную или автоматически. Эти параметры задают соответствие между одной секундой времени Simulink и некоторым количеством времени симулятора HDL. Это количество времени симулятора HDL может быть выражено одним из следующих способов:

  • Относительная временная зависимость (секунды Simulink соответствуют заданному симулятором HDL интервалу метки деления),

  • Абсолютная временная зависимость (секунды Simulink соответствуют абсолютной единице времени симулятора HDL),

Для получения дополнительной информации о вычислении относительных и абсолютных режимов синхронизации смотрите Определение Временная зависимость симулятора HDL и Simulink.

Для получения дальнейшей информации на отношении между Simulink и симулятором HDL во время cosimulation, и на операции относительных и абсолютных режимов синхронизации, смотрите Масштабы времени Симуляции.

Если вы выбираете эту опцию, HDL Verifier вычисляет масштаб времени, когда вы запускаете симуляцию Simulink. Если эта опция не выбрана, нажмите Determine Timescale Now, чтобы сразу вычислить масштаб времени, не запуская симуляцию. В качестве альтернативы можно вручную выбрать масштаб времени. Для руководства посредством автоматического вычисления масштаба времени смотрите, Задают Временную зависимость Автоматически.

Этот параметр состоит из значения Time и значения TimeUnit.

Сконфигурировать относительный режим синхронизации для cosimulation:

  1. Проверьте тот Tick, настройка по умолчанию для TimeUnit, выбран. Если это не, то выберите его из списка справа.

  2. Введите масштабный коэффициент в текстовое поле Time слева. Масштабный коэффициент по умолчанию равняется 1.

Сконфигурировать абсолютный режим синхронизации для cosimulation:

  1. Установите TimeUnit на модуль абсолютного времени: fs (фемтосекунды), ps (пикосекунды), ns (наносекунды), us (микросекунды), ms (миллисекунды) или s секунды.

  2. Введите масштабный коэффициент в текстовое поле Time слева. Масштабный коэффициент по умолчанию равняется 1.

Связь

Тип связи между Simulink и симулятором HDL.

  • Full Simulation: Подтвердите интерфейс и симуляцию HDL запуска.

  • Confirm Interface Only: Соединитесь с симулятором HDL и проверкой на имена сигнала, размерности и типы данных, но не запускайте симуляцию HDL. Во время симуляции Simulink нет никакого контакта с симулятором HDL.

  • No Connection: Не связывайтесь с симулятором HDL. Симулятор HDL не должен быть запущен.

Когда оба приложения работают на том же компьютере, можно выбрать общую память или сокеты TCP для канала связи между приложениями. Если вы не выбираете эту опцию, только режим сокета TCP/IP доступен, и список Connection method становится недоступным.

  • Socket: Simulink и симулятор HDL связываются через обозначенный сокет TCP/IP. Режим сокета TCP/IP более универсален. Можно использовать его в единой системе и конфигурациях сети. Эта опция предлагает самую большую масштабируемость. Для больше на коммуникации сокета TCP/IP, смотрите Порты Сокета TCP/IP.

  • Shared memory: Simulink и симулятор HDL связываются через общую память. Коммуникация общей памяти обеспечивает оптимальную производительность и является режимом по умолчанию коммуникации.

Зависимости

Этот параметр показывает, когда вы выбираете HDL Simulator is running on this computer.

Этот параметр применяется, если вы запускаете Simulink и симулятор HDL на различных компьютерах.

Укажите на допустимый номер порта сокета TCP или сервис для вашей компьютерной системы, если вы не используете общую память. Для получения информации о выборе портов сокета TCP смотрите Порты Сокета TCP/IP.

Когда вы выбираете эту опцию, значок блока HDL Cosimulation отображает текущие коммуникационные установки параметров. Если вы выбираете общую память, значок отображает SharedMem. Если вы выбираете коммуникацию сокета TCP, значок отображает Socket и отображает имя хоста и номер порта в формате hostname:port.

Эта информация может помочь вам различать несколько блоков HDL Cosimulation, куда каждый блок связывается с различным экземпляром симулятора HDL.

Симуляция

Задает количество времени, чтобы запустить симулятор HDL перед начинающейся симуляцией в Simulink. Определение на этот раз правильно выравнивает сигнал блока Simulink и сигнал HDL так, чтобы они могли быть сравнены и проверены непосредственно без дополнительных задержек.

Эта установка состоит из значения PreRunTime и значения PreRunTimeUnit.

  • PreRunTime: Любая допустимая временная стоимость. Значением по умолчанию является 0.

  • PreRunTimeUnit: Задает модули времени для PreRunTime.

    • Tick

    • s

    • ms

    • us

    • ns

    • ps

    • fs

cosimulation инструмент выполняет эти команды в симуляторе HDL, прежде, чем симулировать компонент HDL вашей модели Simulink. Если вы вводите несколько команд в одну линию, добавляете каждую команду с точкой с запятой (;), стандартный оператор конкатенации Tcl.

Например, используйте этот параметр, чтобы сгенерировать короткую команду эха, чтобы подтвердить, что симуляция запускается, или комплексный скрипт, который выполняет обширную последовательность инициализации и запуска симуляции. Вы не можете использовать эти команды, чтобы изменить состояние симуляции.

Можно задать любую допустимую команду Tcl. Команда Tcl, которую вы задаете, не может включать команды, которые загружают проект симулятора HDL или изменяют состояние средства моделирования. Например, вектор символов не может включать команды, такие как startостановка, или restart (для ModelSim®) или runостановка, или reset (для Острого).

cosimulation инструмент выполняет эти команды в симуляторе HDL после симуляции компонента HDL вашей модели Simulink.

Можно задать любую допустимую команду Tcl. Команда Tcl, которую вы задаете, не может включать команды, которые загружают проект симулятора HDL или изменяют состояние средства моделирования. Например, строка не может включать команды, такие как startостановка, или restart (для ModelSim) или runостановка, или reset (для Острого).

Примечание

После каждой симуляции ModelSim средство моделирования занимает время, чтобы обновить результат покрытия. Чтобы предотвратить потенциальный конфликт между этим процессом и следующим cosimulation сеансом, добавьте короткую паузу между каждой последовательной симуляцией.

Расширенные возможности

Введенный в R2008a