Кодер поддерживает создание блоков Cosimulation Simulink ® HDL. Созданные блоки косимуляции HDL можно использовать для косимуляции конструкции фильтра с помощью Simulink с имитатором HDL. Для использования этой функции необходимо иметь лицензию HDL Verifier™.
Сгенерированные блоки косимуляции HDL сконфигурированы так, чтобы соответствовать интерфейсу порта и типа данных фильтра, выбранного для генерации кода. Подключив блок косимуляции ЛПВП к модели Simulink вместо фильтра, можно косимулировать конструкцию с помощью требуемого имитатора ЛПВП.
Для создания блоков косимуляции HDL:
Выберите панель Test Stench в диалоговом окне Generate HDL.
Выберите опцию Блоки косимуляции (Cosimulation blocks).
При выборе этой опции кодер генерирует и открывает модель Simulink, которая содержит блок косимуляции HDL для каждого поддерживаемого имитатора HDL.
Если требуется создать только блоки косимуляции ЛПВП (без создания кода стенда тестирования ЛПВП), очистите стенд тестирования ЛПВП.
На следующем рисунке показаны выбранные как стенд для испытаний ЛПВП, так и блоки Cosimulation.

В диалоговом окне Generate HDL (Генерировать ЛПВП) нажмите Generate (Генерировать ЛПВП) для генерации кода ЛПВП и тестового стенда.
В дополнение к обычным кодовым файлам кодер генерирует модель Simulink, содержащую блок косимуляции HDL для каждого имитатора HDL, поддерживаемого HDL Verifier.

Созданная модель не имеет названия и существует только в памяти. Обязательно сохраните его в папке назначения, если необходимо сохранить модель и блоки для использования в будущих сессиях.
Чтобы настроить параметры блока косимуляции HDL, такие как синхронизация, задержка и типы данных, см. раздел Определение интерфейса блока косимуляции HDL (верификатор HDL).
Альтернатива командной строки: generatehdl функция со свойством GenerateCosimBlock для создания блоков косимуляции HDL.
Примечание
Для использования этой функции необходимо иметь лицензию HDL Verifier.
Кодер генерирует модель Simulink, которая выполняет симуляцию Simulink конструкции фильтра, а также косимуляцию конструкции с помощью имитатора ЛПВП. Модель сравнивает выходные данные фильтра Simulink с результатами моделирования HDL.
Созданная модель включает в себя:
Поведенческая модель конструкции фильтра, реализованная в подсистеме Simulink. Подсистема реализует конструкцию фильтра с использованием основных блоков, таких как сумматоры и задержки.
Соответствующий блок косимуляции ЛПВП. Кодер настраивает этот блок для косимуляции конструкции фильтра с помощью Simulink с помощью одного из следующих способов:
Mentor Graphics ® ModelSim ®
Cadence Incisive ®
Тестовые входные данные, рассчитанные на основе указанного стимула стенда. Кодер сохраняет тестовые данные в переменной рабочего пространства модели. inputdata. Блок From Workspace направляет тестовые данные в подсистему фильтрации и блоки косимуляции HDL.
Блок Scope, позволяющий наблюдать и сравнивать входной тестовый сигнал с выходами блока Filter и косимуляции ЛПВП. Область также показывает разницу (ошибку) между этими двумя выходами.
Создание модели косимуляции требует зарегистрированных входных и/или выходных данных (см. Ограничения). Перед созданием модели убедитесь, что модель соответствует этому требованию следующим образом:
Выберите панель Глобальные настройки (Global Settings) в диалоговом окне Создать HDL (Generate HDL).
На панели «Глобальные параметры» перейдите на вкладку «Порты». Появятся параметры порта.
Выберите обе следующие опции:
Добавить входной регистр
Добавить выходной регистр

Чтобы создать модель, выполните следующие действия.
В диалоговом окне Generate HDL настройте другие параметры создания кода и тестового стенда в соответствии с требованиями проекта.
Выберите панель Test stench в диалоговом окне Generate HDL.
Выберите модель Cosimulation для использования с параметром:. При выборе этой опции включается соседнее раскрывающееся меню, в котором можно выбрать Mentor Graphics ModelSim или Cadence Incisive.

С помощью раскрывающегося меню выберите тип блока косимуляции HDL, который требуется использовать в созданной модели. Выберите либо Mentor Graphics ModelSim (значение по умолчанию) или Cadence Incisive.
На следующем рисунке тип модели косимуляции Mentor Graphics ModelSimи сигнал стимула является откликом белого шума.

В диалоговом окне Generate HDL (Генерировать ЛПВП) нажмите Generate (Генерировать ЛПВП) для генерации кода ЛПВП и тестового стенда.
В дополнение к обычным кодовым файлам кодер генерирует и открывает модель Simulink. На следующем рисунке показана модель, созданная из конфигурации кодера, показанной на предыдущем шаге.

Созданная модель не имеет названия и существует только в памяти. Обязательно сохраните его в папке назначения, если необходимо сохранить модель и блоки для использования в будущих сессиях.
Чтобы настроить параметры блока косимуляции HDL, такие как синхронизация, задержка и типы данных, см. раздел Определение интерфейса блока косимуляции HDL (верификатор HDL).
Созданная модель содержит следующие блоки:
Test Stimulus: Этот блок из рабочей области маршрутизирует тестовые данные в переменной рабочего пространства модели inputdata в подсистему фильтров и блоки косимуляции ЛПВП.
Filter: Эта подсистема реализует поведенческую модель конструкции фильтра.
HDL Cosimulation: Этот блок косимулирует сгенерированный код HDL. В таблице Настройки блока косимуляции HDL описано, как кодер настраивает параметры блока косимуляции.
Reset Delay: Команды РУД, указанные в HDL Cosimulation блок подает сигнал сброса. Сброс имеет высокий уровень 0 нс и низкий уровень 22 нс (перед третьим возрастающим фронтом тактового сигнала). Моделирование Simulink начинает подавать входные данные в 0, 10, 20 нс Reset Delay блок добавляет задержку, так что первая выборка доступна для моделирования RTL, когда она готова после применения сброса.
HDL Latency: Эта задержка представляет собой разницу между задержкой моделирования RTL и поведенческим блоком Simulink.
ErrorВычисляет разницу между выходами Filter блок и HDL Cosimulation блок.
AbsАбсолютное значение вычисления ошибки.
Error margin:: Индикатор, сравнивающий абсолютное значение ошибки со значением поля ошибки тестового стенда (см. Настройка поля ошибки для оптимизированного кода фильтра).
Scope: Отображает входной сигнал, выходные сигналы Filter блок и HDL Cosimulation блоки и разность (если она существует) между ними.
Start HDL Simulator Кнопка: Запуск программного обеспечения для косимуляции HDL.
Настройки блока косимуляции HDL
| Стекло | Настройки |
|---|---|
Ports | Имена портов: совпадают с именами в сгенерированном коде фильтра. Типы данных ввода/вывода: Время входной выборки: Время вывода образца: совпадает с фиксированным размером шага Simulink. |
Clocks | Имя порта синхронизации: совпадает с именем в сгенерированном коде фильтра. Активный фронт синхросигналов: Период: совпадает с временем выборки Simulink. |
Timescales | 1 секунда в Simulink соответствует 1 галочке в имитаторе HDL |
Connection | Режим подключения: Способ подключения: |
Tcl (Команды предварительного моделирования) | force /Hlp/clk_enable 1; force /Hlp/reset 1 0 ns, 0 22 ns; puts ----------------------------------------- puts "Running Simulink Cosimulation block."; puts [clock format [clock seconds]] |
Tcl (Команды после моделирования) | force /Hlp/reset 1 puts [clock format [clock seconds]] |
Сгенерированные настройки модели. Создаваемая модель имеет следующие настройки по умолчанию:
Решатель: Discrete (no continuous states).
Тип решателя: Fixed-step.
Время остановки: Ts * StimLen, где Ts - время выборки Simulink и StimLen - длина стимула.
Образцы цветов времени: включено
Типы данных портов: включено
Внедрение аппаратных средств: ASIC/FPGA
Косимуляция, которая выполняется без ошибок, требует, чтобы выходные данные сгенерированного кода HDL были синхронными с тактовым сигналом. Перед созданием кода убедитесь, что выбраны обе следующие опции:
Добавить входной регистр
Добавить выходной регистр
Если не выбрать ни одну из этих опций, кодер завершит создание модели с ошибкой. Однако формирование кода испытательного стенда завершено.
Кодер не поддерживает создание модели косимуляции, когда целевым языком является Verilog и генерируются данные типа double.
Используйте generatehdl функция, передающая одно из следующих значений для свойства GenerateCosimModel.
generatehdl(filtSysObj,'InputDataType',numerictype(1,16,15), ... 'GenerateCosimModel','Incisive');
generatehdl(filtSysObj,'InputDataType',numerictype(1,16,15), ... 'GenerateCosimModel','ModelSim');