exponenta event banner

Создание модели Simulink, совместимой с HDL

В этом примере показано, как можно создать модель Simulink ® для создания кода HDL. Чтобы создать алгоритм MATLAB ®, совместимый с формированием кода HDL, см. Руководство по написанию кода MATLAB для создания эффективного кода HDL.

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

Использовать пустой шаблон DUT

Чтобы создать модель Simulink, совместимую с HDL, используйте шаблон Blank DUT. Шаблон предварительно сконфигурирован для создания кода HDL с помощью hdlsetup функция.

  1. На панели инструментов MATLAB нажмите кнопку.

  2. На начальной странице Simulink перейдите в раздел HDL Coder, а затем выберите пустой шаблон DUT.

  3. Сохранение модели с именем файла hdlcoder_simple_up_counter.slx в рабочей папке, доступной для записи.

Пустой шаблон DUT имеет HDL_DUT подсистема, соответствующая испытанию проекта (DUT), для которого создается код HDL. Для проверки функциональности DUT шаблон содержит тестовый стенд за пределами HDL_DUT подсистема, обеспечивающая ввод выходных значений DUT и файлов регистрации. См. Модель разделения на DUT и испытательный стенд.

Выбор блоков из библиотеки кодеров HDL

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

  1. На вкладке Приложения выберите Кодер HDL.

  2. На вкладке «Код HDL» выберите «Свойства блока HDL» > «Открыть библиотеку блоков HDL».

Либо в командной строке введите hdllib.

hdllib

Блоки в библиотеке кодеров HDL доступны в Simulink. Если у вас нет Coder™ HDL, вы можете моделировать блоки в модели, но не можете генерировать код HDL.

Дополнительные поддерживаемые HDL блоки можно найти в следующих библиотеках блоков:

  • Системная панель инструментов DSP, поддержка HDL

  • Поддержка ЛПВП для коммуникационного инструментария

  • Панель инструментов Vision HDL

  • Беспроводная панель инструментов HDL

Чтобы восстановить обозреватель библиотек на вид по умолчанию, в обозревателе библиотек нажмитеexit HDL-compatible blocks mode кнопку. Либо в командной строке введите:

hdllib('off')

Разработка алгоритма для DUT

  1. Дважды щелкните значок HDL_DUT подсистема. Перетащите блоки из библиотеки кодеров HDL в модель. В этой таблице перечислены блоки, добавляемые в модель для проектирования счетчика. Чтобы узнать, что делает блок, и указать его параметры, дважды щелкните блок.

    БлокБиблиотекаКоличество блоковПараметры блока
    ПостоянныйИсточники2
    • Постоянные значения: 1 и 0

    • Тип выходных данных: uint8

    ВыключательМаршрутизация сигналов2Критерии для прохождения первого ввода: u2 > Порог
    ЗадержкаДискретный2Длина задержки: 1
    ДобавитьМатематические операции1Тип данных накопителя: Inherit: Совпадает с первым вводом
    Реляционный операторЛогические и битовые операции1Реляционный оператор: >
  2. Переименование входных портов In1 и In2 кому count_threshold и Enable соответственно. Разместите блоки в модели и соедините их.

Enable сигнал определяет, будет ли счетчик отсчитываться вверх от предыдущего значения. Когда Enable сигнал логически высок, счетчик отсчитывается от нуля до count_threshold значение. Когда значение out становится равным count_threshold значение, счетчик возвращается к нулю и снова начинает подсчет. Когда Enable сигнал становится логически низким, счетчик сохраняет предыдущее значение.

Создание испытательного стенда для проектирования

Перейдите на верхний уровень модели и измените параметры ввода.

  • Ввод постоянного блока в count_threshold: Этот ввод указывает максимальное значение, до которого счетчик подсчитывает. В этом примере показано, как создать 4-разрядный счетчик. Задайте значение константы как 15 (2 ^ 4 - 1) и задайте для типа данных Output значение uint8.

    Тип выходных данных этого блока Constant затем соответствует типу выходных данных блоков Constant внутри HDL_DUT подсистема.

  • Вход блока «Counter Free-Running» в Enable: Удаление блока «Counter Free-Running». Замените этот блок на блок Constant, значение которого равно 1, Тип выходных данных: booleanи время выборки 1.

См. также раздел Создание простой модели.

В предыдущем разделе показаны hdlcoder_simple_up_counter.slx которую вы создали, выполнив описанные выше действия. Чтобы открыть модель в MATLAB, нажмите кнопку Открыть модель (Open Model).

Простая модель счетчика

Откройте эту модель, чтобы увидеть простой счетчик. Модель подсчитывается от нуля до порогового значения, а затем возвращается к нулю. Пороговое значение устанавливается равным 15. Чтобы изменить пороговое значение, измените значение ввода на count_threshold порт. Сигнал Enable указывает, имеет ли счетчик предыдущее значение. Значение 1 указывает, что счетчик постоянно подсчитывается вверх.

Моделирование и проверка функциональных возможностей проекта

Задайте для параметра Время остановки (Stop time) модели значение 50. Смоделировать модель, нажав кнопку. Чтобы увидеть результаты моделирования, откройте блок Область (Scope) на верхнем уровне модели.

Результаты моделирования отображают Enable сигнал, генерирующий постоянное значение 1. out количество сигналов от 0 кому 15, оборачивается обратно к нулю, а затем пересчитывается снова.

Создание кода HDL на основе модели Simulink

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

См. раздел Создание кода HDL из модели Simulink.

См. также

| | |

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