Инструкции по подсистеме DUT

Можно следовать этим инструкциям, чтобы изучить некоторые лучшые практики о том, как можно смоделировать DUT для генерации испытательного стенда и HDL-кода. Каждая инструкция имеет уровень серьезности, который указывает на уровень требований податливости. Чтобы узнать больше, смотрите Уровни серьезности Руководств по моделированию HDL.

Факторы подсистемы DUT

ID инструкции

1.2.1

Серьезность

Строго рекомендуемый

Описание

DUT является Subsystem, который содержит алгоритм, для которого вы хотите сгенерировать код. Обычно вы задаете Подсистему верхнего уровня как DUT. См. также Модель Раздела в DUT и Испытательный стенд.

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

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

ID инструкции

1.2.2

Серьезность

Строго рекомендуемый

Описание

В некоторых случаях части испытательного стенда Simulink™ могут содержать блоки 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

ID инструкции

1.2.3

Серьезность

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

Описание

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

  • Импорт HDL Verilog

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

    Импорт HDL поддерживает подмножество построений Verilog, которые можно использовать для импорта проекта, чтобы создать модель Simulink. Чтобы узнать больше, см.:

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

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

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

    • Назовите блок с таким же именем как модуль сущности или Verilog VHDL.

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

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

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

    • Задайте Architecture блока как BlackBox в свойствах блока HDL.

    Чтобы узнать больше, смотрите, Генерируют Интерфейс Черного квадрата для Подсистемы.

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

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

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

  • HDL блоки Cosimulation

    Если у вас есть симулятор HDL, такой как Mentor Graphics® ModelSim® или Cadence Incisive®, можно использовать HDL Cosimulation (HDL Verifier) блоки, чтобы симулировать HDL-код для DUT при помощи того симулятора HDL.

    Можно симулировать HDL-код для DUT в Simulink и инстанцировать HDL-кода в сгенерированном коде для DUT.

Смотрите также

Функции

Похожие темы