exponenta event banner

Косимуляция ЛПВП

Cosimulate проектирование ЛПВП путем подключения Simulink к имитатору ЛПВП

  • Библиотека:
  • HDL Verifier/для использования с Cadence Incisive

    Проверка HDL/для использования с Mentor Graphics ModelSim

  • HDL Cosimulation block
  • HDL Cosimulation block

Описание

Блок косимуляции ЛПВП косимулирует аппаратный компонент, применяя входные сигналы и считывая выходные сигналы из модели ЛПВП при моделировании в имитаторе ЛПВП. Этот блок можно использовать для моделирования устройства источника или приемника, настроив блок только с портами ввода или вывода.

На блоке можно настроить следующие параметры:

  • Отображение входного и выходного портов блока в соответствие с сигналами (включая внутренние сигналы) модуля ЛПВП. Необходимо указать время выборки для каждого выходного порта. При необходимости можно указать тип данных для каждого выходного порта.

  • Тип параметров связи и обмена данными между тренажерами.

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

  • Часы с передним или задним фронтом, применяемые к модели. Можно указать период для каждого тактового сигнала.

  • Команды РУД для выполнения до и после моделирования.

Совместимость с созданием кода Simulink

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

Порты

Порты, показанные на блоке, соответствуют сигналам от модели HDL, выполняемой в имитаторе HDL. Можно добавлять и удалять порты, а также настраивать их типы данных и примеры времени, изменяя параметры блока. На вкладке Ports отображаются сигналы HDL, соответствующие портам. Можно добавлять, удалять и изменять порядок портов. Кнопка Auto Fill используется для заполнения таблицы посредством запроса информации о порте в имитатор HDL. Этот запрос возвращает имена портов и информацию из проекта HDL, запущенного в симуляторе HDL. Подробное описание этой функции см. в разделе «Получение сигнальной информации от имитатора HDL».

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

При импорте сигналов VHDL ® из имитатора HDL HDL Verifier™ возвращает имена сигналов во всех столицах.

Вход

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

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

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

Продукция

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

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

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

Параметры

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

Порты

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

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

Правила указания имен портов и путей модулей в Simulink см. в разделе «Указание путей сигналов/портов HDL и модулей для косимуляции».

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

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

Input - HDL сигналы, которые приводит Simulink. Симулятор накладывает значения на указанный сигнал имитатора ЛПВП с заданной частотой дискретизации.

Примечание

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

Output - сигналы HDL, считываемые Simulink. Для выходных сигналов необходимо указать явное время выборки. Можно также указать тип данных, но ширина должна соответствовать ширине сигнала в HDL. Дополнительные сведения об указании типа данных см. в разделах «Тип данных» и «Длина дроби».

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

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

Simulink накладывает сигнал входного порта на сигнал имитатора ЛПВП с заданной частотой дискретизации. И наоборот, Simulink считывает выходной сигнал порта из указанного сигнала имитатора ЛПВП с заданной частотой дискретизации.

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

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

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

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

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

Зависимости

Чтобы включить этот параметр, установите режим ввода-вывода в значение Output.

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

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

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

Зависимости

Чтобы включить этот параметр, установите режим ввода-вывода в значение Output.

Свойства Тип данных (Data Type) и Длина фракции (Fraction Length) применяются только к следующим типам сигналов HDL:

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

  • Сигналы Verilog ® wire или reg напечатать

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

Зависимости

Чтобы включить этот параметр, установите режим ввода-вывода в значение Outputи задайте для параметра «Тип данных» значение Fixedpoint.

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

Зависимости

Чтобы включить этот параметр, установите режим ввода-вывода в значение Outputи свойство «Тип данных» для Fixedpoint.

Свойства Тип данных (Data Type) и Длина фракции (Fraction Length) применяются только к следующим типам сигналов HDL:

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

  • Сигналы Verilog wire или reg напечатать

Часы

Создайте опциональные опережающие и падающие часы, которые применяют стимулы к модели косимуляции. В списке прокрутки отображаются HDL-часы, которые управляют значениями сигналов HDL, моделируемых с помощью метода депонирования. Тактовые сигналы должны быть одноразрядными. Векторные сигналы не поддерживаются. Инструкции по добавлению и редактированию тактовых сигналов см. в разделе Создание дополнительных часов с помощью панели часов блока косимуляции HDL.

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

Сведения и требования к спецификациям трактов в Simulink см. в разделе «Указание трактов сигналов/портов HDL и модулей для косимуляции».

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

Выбрать Rising или Falling для указания либо восходящего, либо нисходящего часов.

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

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

Временные рамки

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

  • Относительная временная зависимость (секунды симулирования соответствуют интервалу делений, определенному имитатором ЛПВП)

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

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

Подробные сведения о взаимосвязи между Simulink и имитатором ЛПВП во время косимуляции, а также о работе режимов относительного и абсолютного времени см. в разделе Временные шкалы моделирования.

При выборе этой опции программа HDL Verifier вычисляет шкалу времени при запуске моделирования Simulink. Если этот параметр не выбран, щелкните Определить шкалу времени (Define Timescale Now), чтобы рассчитать шкалу времени немедленно без начала моделирования. Можно также выбрать шкалу времени вручную. Инструкции по автоматическому вычислению шкалы времени см. в разделе Автоматическое определение отношения синхронизации.

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

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

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

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

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

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

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

Связь

Тип соединения между Simulink и имитатором HDL.

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

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

  • No Connection: Не связывайтесь с имитатором ЛПВП. Не требуется запускать имитатор ЛПВП.

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

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

  • Shared memory: Симулятор и имитатор ЛПВП взаимодействуют через общую память. Обмен данными с общей памятью обеспечивает оптимальную производительность и является режимом связи по умолчанию.

Зависимости

Этот параметр отображается, когда на этом компьютере запущен имитатор HDL.

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

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

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

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

Моделирование

Указывает время запуска имитатора ЛПВП перед началом моделирования в Simulink. Определение этого времени надлежащим образом выравнивает сигнал блока Simulink и сигнал HDL так, чтобы их можно было сравнивать и проверять непосредственно без дополнительных задержек.

Этот параметр состоит из значения PreRuntime и значения PreRunTimeUnit.

  • PreRuntime: любое допустимое значение времени. Значение по умолчанию - 0.

  • PreRunTimeUnit: указывает единицы времени для PreRuntime.

    • Tick

    • s

    • ms

    • us

    • ns

    • ps

    • fs

Инструмент косимуляции выполняет эти команды в имитаторе ЛПВП перед моделированием компонента ЛПВП модели Simulink. При вводе нескольких команд в одной строке добавьте каждую команду с точкой с запятой (;) - стандартный оператор конкатенации Tcl.

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

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

Инструмент косимуляции выполняет эти команды в имитаторе ЛПВП после моделирования компонента ЛПВП модели Simulink.

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

Примечание

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

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

Представлен в R2008a