exponenta event banner

Рекомендации по подсистемам DUT

Ниже приведены рекомендации по моделированию DUT для создания кода HDL и тестовых инструментальных средств. Каждое руководство имеет уровень серьезности, который указывает уровень соответствия требованиям. Дополнительные сведения см. в разделе Рекомендации по моделированию HDL Уровни серьезности.

Рекомендации по подсистеме DUT

Идентификатор руководства

1.2.1

Серьезность

Очень рекомендуем

Описание

DUT - это подсистема, содержащая алгоритм, для которого требуется создать код. Как правило, подсистема верхнего уровня указывается в качестве DUT. См. также Модель разделения на DUT и испытательный стенд.

Рекомендуется использовать эти рекомендуемые параметры при проектировании подсистемы DUT для создания кода HDL.

  • Убедитесь, что DUT не является условно выполняемой подсистемой, такой как подсистема Enabled или Triggered. Чтобы убедиться в том, что в качестве DUT используется допустимая подсистема верхнего уровня, можно выполнить проверку модели HDL на наличие недопустимой подсистемы верхнего уровня.

  • Убедитесь, что архитектура HDL DUT не указана как BlackBox. См. раздел Подсистемы BlackBox.

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

  • Для DUT, отличного от верхнего уровня, укажите DUT в качестве невиртуальной подсистемы перед созданием кода HDL, чтобы избежать численных несоответствий в результатах моделирования. Дополнительные сведения см. в разделе Использование различных типов подсистем.

Преобразовать подсистему DUT в эталонную модель для испытаний с непрерывными блоками

Идентификатор руководства

1.2.2

Серьезность

Очень рекомендуем

Описание

В некоторых случаях части Simulink™ testbench могут содержать блоки Simscape™ или другие блоки из библиотеки Simulink, которые работают в непрерывное время выборки. Чтобы смоделировать эти блоки, необходимо указать параметр непрерывного решателя для модели. Заданные параметры решателя применяются ко всем блокам в модели. Это означает, что подсистема DUT использует непрерывный решатель, который не поддерживается для генерации кода HDL. Чтобы создать код HDL, преобразуйте подсистему DUT в ссылку на модель, а затем используйте дискретный решатель с фиксированным шагом для ссылочной модели. Поскольку родительская модель и ссылочная модель используют различные настройки решателя, необходимо преобразовать время выборки, вставив блоки удержания нулевого порядка и перехода скорости на границе DUT.

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

open_system('hdlcoder_testbench_continuous')
set_param('hdlcoder_testbench_continuous','SimulationCommand','Update')
get_param('hdlcoder_testbench_continuous', 'Solver')
ans =

    'ode45'

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

open_system('hdlcoder_testbench_continuous/DUT')
get_param('hdlcoder_DUT_discrete', 'Solver')
ans =

    'FixedStepDiscrete'

Вставка рукописного кода в среду моделирования Simulink

Идентификатор руководства

1.2.3

Серьезность

Информативный

Описание

Можно повторно использовать предварительно проверенный IP-адрес RTL или вставить рукописный код HDL в среду моделирования Simulink ® с помощью следующих методов:

  • Импорт HDL Verilog

    При наличии рукописного кода Verilog его можно импортировать в среду Simulink. В процессе импорта создается модель Simulink, функционально эквивалентная рукописному HDL-коду.

    Импорт HDL поддерживает подмножество конструкций Verilog, которые можно использовать для импорта конструкции для создания модели Simulink. Дополнительные сведения см. в следующих разделах:

  • Подсистемы BlackBox

    Подсистемы BlackBox можно использовать для вставки рукописного HDL-кода блока в модель Simulink. Затем можно интегрировать подсистемы BlackBox с другими блоками в модели Simulink, а затем создать код HDL.

    Чтобы сделать подсистему BlackBox совместимой с другими блоками для генерации кода HDL и включить этот блок в модель, создайте блок в Simulink:

    • Назовите блок, используя то же имя, что и объект VHDL или модуль Verilog.

    • Определите одни и те же входы и выходы, включая те же типы, размеры и имена.

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

    • Используйте одну частоту выборки для блока.

    • Укажите архитектуру блока как BlackBox в окне «Свойства блока HDL».

    Дополнительные сведения см. в разделе Создание интерфейса черного ящика для подсистемы.

  • DocBlock в подсистемах BlackBox

    Чтобы сохранить код HDL в модели, вместо отдельного файла используйте DocBlock для интеграции пользовательского кода HDL. В качестве текста в DocBlock можно использовать собственный рукописный код VHDL или Verilog.

    Каждый DocBlock, содержащий пользовательский код HDL, включается в подсистему черного ящика, а подсистема черного ящика включается в DUT. На подсистему черного ящика создается один файл HDL. Дополнительные сведения см. в разделе Интеграция пользовательского кода HDL с помощью DocBlock.

  • Блоки косимуляции ЛПВП

    При наличии имитатора ЛПВП, такого как Mentor Graphics ® ModelSim ® или Cadence Incisive ®, можно использовать блоки косимуляции ЛПВП (HDL Verifier) для моделирования кода ЛПВП для ЦВД с помощью этого имитатора ЛПВП.

    Можно смоделировать код HDL для DUT в Simulink и создать экземпляр кода HDL в сгенерированном коде для DUT.

См. также

Функции

Связанные темы