Cosimulate HDL проект путем соединения Simulink с симулятором HDL
HDL-верификатор/для использования с каденцией Incisive
HDL-верификатор/для использования с Mentor Graphics ModelSim
Блок HDL Cosimulation косимулирует оборудование компонент путем применения входных сигналов к и считывания выхода сигналов от 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_input_port_name
- Сигнал прошел от Simulink к симулятору HDLПорты в блоке соответствуют портам в проекте HDL. Добавьте или удалите порты на вкладке Ports.
Типы данных: int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| Fixed-point
HDL_output_port_name
- Сигнал, переданный от симулятора HDL к SimulinkПорты в блоке соответствуют портам в проекте HDL. Добавьте или удалите порты на вкладке Ports.
Типы данных: int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| Fixed-point
Enable direct feedthrough
- Работа с предупреждениями алгебраического циклаtrue
(по умолчанию) | false
Устраняет различие задержки одной выходной выборки между косимуляцией и Simulink, которая происходит, когда ваша модель содержит чисто комбинационные пути. Снимите этот флажок, если блок HDL Cosimulation находится в цикле обратной связи и генерирует алгебраические предупреждения или ошибки цикла. Когда вы моделируете последовательную схему, которая имеет регистр на пути данных, установка прямого сквозного соединения не влияет на время этого пути данных.
Full HDL Name
- Имя пути сигналаУкажите имя пути сигнала с помощью синтаксиса имени пути симулятора HDL. Для примера, manchester.samp
для резца® Симуляторы HDL. Сигнал может быть на любом уровне иерархии проекта. Порт HDL Cosimulation блока, относящийся к сигналу, помечается этим именем.
Для правил определения имен путей портов и модулей в Simulink, смотрите «Задайте HDL-сигнал/порт и пути к модулю для косимуляции».
Можно скопировать имена пути сигнала непосредственно из окна Симулятора HDL wave и вставить их в поле Full HDL Name. Используйте Path.Name
просмотр и не Db::Path.Name
посмотреть. После вставки имени пути сигнала в Full HDL Name, нажмите Apply, чтобы завершить операцию вставки и обновить список сигналов.
I/O Mode
- Направление портаInput
| Output
Чтобы добавить двунаправленный порт, добавьте порт в список дважды, как вход, так и выход.
Input
- HDL сигналы, которые Simulink управляет. Simulink отложит значения на заданный сигнал симулятора HDL с заданной частотой дискретизации.
Примечание
Когда вы задаете входной порт блока, убедитесь, что только один источник настроен для управления входом к этому сигналу. Для примера избегайте определения входа порта, который имеет несколько образцы. Если несколько источников управляют входом в один сигнал, ваша модель симуляции приводит к неожиданным результатам.
Output
- HDL-сигналы, которые считывает Simulink. Для выходных сигналов необходимо задать явный шаг расчета. Можно также задать тип данных, но ширина должна совпадать с шириной сигнала в HDL. Для получения дополнительной информации об указании типа данных смотрите параметры Data Type и Fraction Length.
Сигналы Simulink не имеют тристатического семантика, потому что нет 'Z'
значение. Для взаимодействия с двунаправленными сигналами подключите к входу и включите сигналы как выходного драйвера, так и выходного сигнала входного драйвера. Этот подход оставляет фактический тристатный буфер в HDL, где функции разрешения могут обрабатывать взаимодействие с другими тристатными буферами.
Sample Time
- Время между чтением выборок на выходном портуВременной интервал между последовательными выборками, примененными к порту выхода.
Simulink депонирует сигнал порта входа на сигнал Симулятора HDL с заданной частотой дискретизации. И наоборот, Simulink считывает сигнал порта выхода от заданного сигнала Симулятора HDL с заданной частотой дискретизации.
В целом Simulink обрабатывает периоды дискретизации портов следующим образом:
Если вы соединяете вход порт с сигналом, который имеет явный период дискретизации, основанное на прямом распространении, Simulink применяет эту скорость к порту.
Если вы соединяете вход порт с сигналом, который не имеет явного периода дискретизации, Simulink назначает период дискретизации, который равен наименее распространенному нескольким (LCM) из всех идентифицированных входов периодов дискретизации портов в модели.
После того, как Simulink устанавливает вход периодов дискретизации порта, он применяет пользовательские выходы шагов расчета ко всем портам выхода. Необходимо задать явный шаг расчета для каждого выходного порта.
Точная интерпретация шага расчета выходного порта зависит от настроек параметров Timescales блока HDL Cosimulation. Смотрите также Simulation Timescales.
Чтобы включить этот параметр, установите I/O Mode равным Output
.
Data Type
- Тип данных для выходного сигналаInherit
(по умолчанию) | Fixedpoint
| Double
| Single
Выберите 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
напечатать
Sign
- Компонент знака типа выходных данныхUnsigned
(по умолчанию) | Signed
Обозначение знака для явного типа данных выходного порта.
Чтобы включить этот параметр, установите I/O Mode равным Output
, и установите Data Type равным Fixedpoint
.
Fraction Length
- Количество дробных бит в типе выходных данныхРазмер, в битах, дробной части выходного сигнала с фиксированной точкой. Для примера для 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
Верилоговые сигналы wire
или reg
напечатать
Создайте необязательные часы с восходящим и падающим фронтом, которые применяют стимулы к вашей модели косимуляции. Список прокрутки отображает HDL-часы, которые управляют значениями HDL-сигналов, которые вы моделируете, используя метод депозита. Тактовые сигналы должны быть однобитовыми. Векторные сигналы не поддерживаются. Инструкции по добавлению и редактированию синхросигналов см. в разделе Создание необязательных часов с панелью часов Блок.
Full HDL Name
- Имя пути сигнала Задайте каждый синхроимпульс как имя пути сигнала, используя синтаксис имени пути симулятора HDL. Для примера: /manchester/clk
или manchester.clk
.
Для получения информации и требований к спецификациям пути в Simulink, смотрите «Задайте HDL-сигнал/порт и пути к модулю для косимуляции».
Можно скопировать имена пути сигнала непосредственно из окна Симулятора HDL wave и вставить их в поле Full HDL Name. Используйте Path.Name
просмотр и не Db::Path.Name
посмотреть. После вставки имени пути сигнала в Full HDL Name, нажмите Apply, чтобы завершить операцию вставки и обновить список сигналов.
Active Clock Edge
- Край синхроимпульса HDL для дискретизации сигналовRising
(по умолчанию) | Falling
Выберите Rising
или Falling
чтобы задать часы нарастающего края или часы падающего края.
Period
- Тактовый периодЧтобы задать явный период времени, введите шаг расчета, равное или больше двух единиц разрешения ( такта).
Если период времени не является четным целым числом, Simulink не может создать 50% коэффициент заполнения. Вместо этого программное обеспечение HDL Verifier создает падающее ребро в clockperiod/2
(округлено до ближайшего целого числа).
Выберите отношение синхронизации между Simulink и Симулятором HDL вручную или автоматически. Эти параметры задают соответствие между одной секундой времени Simulink и некоторой величиной времени симулятора HDL. Такое количество времени симулятора HDL может быть выражено одним из следующих способов:
Отношение относительного времени (секунды Simulink соответствуют определяемому HDL-симулятором интервалу такта)
Абсолютная временная зависимость (секунды Simulink соответствуют абсолютному модулю времени симулятора HDL)
Для получения дополнительной информации о вычислении относительных и абсолютных режимов синхронизации, смотрите Определение отношений синхронизации Simulink и Симулятор HDL.
Для получения подробной информации о связи между Simulink и Симулятором HDL во время косимуляции, и о операцию относительных и абсолютных режимов синхронизации, смотрите Симуляцию Timescales.
Automatically determine timescale at start of simulation
- Когда вычислить автоматическую шкалу времениtrue
(по умолчанию) | false
Если вы выбираете эту опцию, HDL Verifier вычисляет шкалу времени при запуске симуляции Simulink. Если эта опция не выбрана, щелкните Determine Timescale Now, чтобы вычислить шкалу времени сразу же, не запустив симуляцию. Также можно вручную выбрать шкалу времени. Для руководства с помощью автоматического вычисления шкалы времени смотрите Автоматическое определение временных отношений.
1 second in Simulink corresponds to {} in the HDL simulator
- Отношение времени между Simulink и симулятором HDLЭтот параметр состоит из Time значения и TimeUnit значения.
Чтобы сконфигурировать относительный режим синхронизации для косимуляции:
Проверьте, что Tick
, параметр по умолчанию для TimeUnit, выбран. Если его нет, выберите его из списка справа.
Введите коэффициент шкалы в текстовое поле Time слева. Коэффициент шкалы по умолчанию является 1.
Чтобы сконфигурировать абсолютный режим синхронизации для косимуляции:
Установите TimeUnit в модуль абсолютного времени: fs
(фемтосекунды), ps
(пикосекунды), ns
(наносекунды), us
(микросекунды), ms
(миллисекунды), или s
(секунды).
Введите коэффициент шкалы в текстовое поле Time слева. Коэффициент шкалы по умолчанию является 1.
Connection mode
- Связь между Simulink и симулятором HDLFull Simulation
(по умолчанию) | Confirm Interface Only
| No Connection
Тип соединения между Simulink и Симулятором HDL.
Full Simulation
: Подтвердите интерфейс и запустите симуляцию HDL.
Confirm Interface Only
: Подключитесь к симулятору HDL и проверьте имена сигналов, размерности и типы данных, но не запускайте симуляцию HDL. Во время симуляции Simulink контакт с Симулятором HDL отсутствует.
No Connection
: Не общайтесь с симулятором HDL. Запуск Симулятора HDL не требуется.
HDL simulator is running on this computer
- Тот же хост для симулятора HDL и Simulinktrue
(по умолчанию) | false
Когда оба приложения запускаются на одном компьютере, можно выбрать общую память или TCP-сокеты для канала связи между приложениями. Если вы не выбираете эту опцию, доступен только режим разъема TCP/IP, и список Connection method становится недоступным.
Connection method
- Связь между HDL-симулятором и SimulinkSocket
(по умолчанию) | Shared memory
Socket
: Simulink и симулятор HDL взаимодействуют через назначенный TCP/IP сокет. Режим разъема TCP/IP более универсален. Его можно использовать для односистемных и сетевых строений. Эта опция обеспечивает наибольшую масштабируемость. Для получения дополнительной информации о коммуникации разъемов TCP/IP см. раздел «Порты разъемов TCP/IP».
Shared memory
: Simulink и симулятор HDL взаимодействуют через общую память. Связь с общей памятью обеспечивает оптимальную эффективность и является режимом связи по умолчанию.
Этот параметр показывает, когда вы выбираете HDL Simulator is running on this computer.
Host name
- Хост-машина симулятора HDLЭтот параметр применяется, если Simulink и Симулятор HDL запускаются на разных компьютерах.
Port number or service
- Номер порта сокетаУкажите допустимый номер порта TCP-сокета или службы для вашей компьютерной системы, если вы не используете общую память. Для получения информации о выборе портов разъема TCP см. раздел Порты разъема TCP/IP.
Show connection info on icon
- Добавить параметры соединения на значок блокаtrue
(по умолчанию) | false
Когда вы выбираете эту опцию, значок HDL Cosimulation блока отображает текущие настройки параметра связи. Если вы выбираете общую память, значок отображается SharedMem
. Если вы выбираете коммуникацию сокетов TCP, отображается значок Socket
и отображает имя хоста и номер порта в формате hostname:port
.
Эта информация может помочь вам различить несколько блоков HDL Cosimulation, где каждый блок общается с другим образцом Симулятора HDL.
Time to run HDL simulator before cosimulation starts
- Смещение, которое выравнивает Simulink с HDL-симуляторомЗадает время выполнения Симулятора HDL перед началом симуляции в Simulink. Установка этого времени правильно выравнивает сигнал блока Simulink и HDL-сигнала так, чтобы они могли сравниваться и проверяться непосредственно без дополнительных задержек.
Эта настройка состоит из PreRunTime значения и PreRunTimeUnit значения.
PreRunTime: Любое допустимое значение времени. Значение по умолчанию 0.
PreRunTimeUnit: Определяет модули времени для PreRunTime.
Tick
s
ms
us
ns
ps
fs
Pre-simulation Tcl commands
- Команды для запуска в симуляторе HDL перед косимуляциейИнструмент косимуляции выполняет эти команды в Симулятор HDL, перед симуляцией HDL- компонента вашей модели Simulink. Если вы вводите несколько команд в одной линии, добавьте каждую команду с точки с запятой (;), стандартного оператора конкатенации Tcl.
Например, используйте этот параметр, чтобы сгенерировать однострочную команду echo, чтобы подтвердить, что симуляция выполняется, или сложный скрипт, который выполняет обширную последовательность инициализации и запуска симуляции. Вы не можете использовать эти команды для изменения состояния симуляции.
Можно задать любую допустимую команду Tcl. Заданная команда Tcl не может включать команды, которые загружают Симулятор HDL проект или изменяют состояние симулятора. Например, вектор символов не может включать такие команды, как start
, stop
, или restart
(для ModelSim®) или run
, stop
, или reset
(для Incisive).
Post-simulation Tcl commands
- Команды для запуска в симуляторе HDL после косимуляцииИнструмент косимуляции выполняет эти команды в Симулятор HDL, после симуляции HDL- компонента вашей модели Simulink.
Можно задать любую допустимую команду Tcl. Заданная команда Tcl не может включать команды, которые загружают Симулятор HDL проект или изменяют состояние симулятора. Например, строка не может включать такие команды, как start
, stop
, или restart
(для ModelSim) или run
, stop
, или reset
(для Incisive).
Примечание
После каждой симуляции ModelSim, симулятору требуется время, чтобы обновить результат покрытия. Чтобы предотвратить потенциальный конфликт между этим процессом и следующим сеансом косимуляции, добавьте короткую паузу между каждой последующей симуляцией.
HDL Coder предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику. Можно сгенерировать HDL-код для блоков косимуляции, используемых с Mentor Graphics® ModelSim или Cadence Incisive®.
Каждый из блоков HDL Cosimulation косимулирует компонент оборудования путем применения входных сигналов к HDL выхода и считывания модели сигналов от него, который выполняется под Симулятор HDL. См. «Генерация модели косимуляции» (HDL Coder).
Для получения информации о времени, задержке, типировании данных, обработке на основе фрейма и других проблемах при настройке косимуляции HDL, смотрите Define HDL Cosimulation Block Interface.
Можно использовать блок HDL Cosimulation с HDL Coder, чтобы сгенерировать интерфейс к написанному вручную или унаследованному HDL-коду. Когда блок HDL Cosimulation включен в модель, кодер генерирует интерфейс VHDL или Verilog, в зависимости от выбранного целевого языка.
Когда целевой язык является VHDL, сгенерированный интерфейс включает в себя:
Определение сущности. Сущность определяет порты (вход, выход и часы), соответствующие по имени и типу данных портам, настроенным на блоке HDL Cosimulation. Также объявлены порты включения и сброса синхроимпульса.
Архитектура RTL, включающая объявление компонента, строение компонента, объявляющую сигналы, соответствующие сигналам, соединенным с портами HDL Cosimulation, и экземпляр компонента.
Назначение портов операторов как требуется моделью.
Когда целевой язык является Verilog, сгенерированный интерфейс включает в себя:
Модуль, определяющий порты (вход, выход и часы), соответствующие по имени и типу данных портам, сконфигурированным на блоке HDL Cosimulation. Модуль также определяет порты включения и сброса синхроимпульса и wire
объявления, соответствующие сигналам, соединенным с портами HDL Cosimulation.
Образец модуля.
Назначение портов операторов как требуется моделью.
Прежде чем инициировать генерацию кода, проверьте, что модель соответствует требованиям к генерации кода. Чтобы проверить требования к генерации кода, выберите вкладку Debug и нажмите Update Model.
Этот блок имеет одну архитектуру HDL по умолчанию.
Описание параметров реализации смотрите в Настройте Black Box или HDL Cosimulation Interface (HDL Coder).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.