Создайте совместимую с HDL модель Simulink

Этот пример иллюстрирует, как можно создать модель Simulink® для генерации HDL-кода. Чтобы создать алгоритм MATLAB®, совместимый для генерации HDL-кода, см. Инструкции для Записи кода MATLAB, чтобы Сгенерировать Эффективный HDL-код.

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

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

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

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

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

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

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

Выберите Blocks from HDL Coder Library

Чтобы спроектировать ваш встречный алгоритм, используйте блоки из Библиотеки блоков HDL Coder. Блоки в этой библиотеке предварительно сконфигурированы для генерации HDL-кода. Отфильтровать Браузер Библиотеки Simulink, чтобы показать библиотеки блоков что генерация HDL-кода поддержки:

  1. На вкладке Apps выберите HDL Coder.

  2. От вкладки HDL Code выберите HDL Block Properties> Open HDL Block Library.

В качестве альтернативы в командной строке, войти hdllib.

hdllib

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

Можно найти дополнительные поддержанные HDL блоки в этих библиотеках блоков:

  • Поддержка HDL DSP System Toolbox

  • Поддержка HDL Communications Toolbox

  • Vision HDL Toolbox

  • Wireless HDL Toolbox

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

hdllib('off')

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

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

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

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

    SwitchМаршрутизация сигнала2Критерии передачи первого входа: u2> Порог
    DelayДискретный2Длина задержки: 1
    AddМатематические операции1Тип данных аккумулятора: Наследуйтесь: То же самое, как сначала введено
    Relational OperatorЛогика и битовые операции1Оператор отношения:>
  2. Переименуйте входные порты In1 и In2 к count_threshold и Enable соответственно. Поместите блоки в свою модель и соедините их.

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

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

Перейдите к верхнему уровню модели и измените входные настройки.

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

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

  • Вход блока Counter Free-Running к Enable: Удалите блок Counter Free-Running. Замените этот блок на блок Constant, который имеет значение 1, набор Output data type к boolean, и Sample time 1.

См. также Создают Простую Модель.

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

Простая встречная модель

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

Симулируйте и проверьте функциональность проекта

Установите Stop time модели к 50. Симулируйте свою модель путем нажатия кнопки. Чтобы видеть результаты симуляции, откройте блок Scope в верхнем уровне вашей модели.

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

Сгенерируйте HDL-код из модели Simulink

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

Смотрите генерируют HDL-код из модели Simulink.

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

| | |

Похожие темы