Этот пример иллюстрирует, как можно создать модель Simulink® для генерации HDL-кода. Чтобы создать алгоритм MATLAB®, совместимый для генерации HDL-кода, см. Инструкции для Записи кода MATLAB, чтобы Сгенерировать Эффективный HDL-код.
Модель является простым счетчиком, который рассчитывает вверх и переносится назад, чтобы обнулить после того, как она достигает верхнего предела, который вы задаете. Чтобы открыть модель непосредственно, не выполняя шаги, см. Простую Встречную Модель.
Чтобы создать совместимую с HDL модель Simulink, используйте шаблон Blank DUT. Шаблон предварительно сконфигурирован для генерации HDL-кода при помощи hdlsetup функция.
На панели инструментов MATLAB нажмите
кнопку.
В начальной странице Simulink перейдите к разделу HDL Coder, и затем выберите шаблон Blank DUT.
Сохраните модель с именем файла hdlcoder_simple_up_counter.slx в рабочей папке, которая перезаписываема.

Шаблон Blank DUT имеет HDL_DUT подсистема, которая соответствует Проекту под тестом (DUT), для которого вы генерируете HDL-код. Чтобы проверить функциональность DUT, шаблон содержит испытательный стенд вне HDL_DUT подсистема, которая предоставляет входные параметры DUT и регистрирует выходные значения. См. Модель Раздела в DUT и Испытательный стенд.
Чтобы спроектировать ваш встречный алгоритм, используйте блоки из Библиотеки блоков HDL Coder. Блоки в этой библиотеке предварительно сконфигурированы для генерации HDL-кода. Отфильтровать Браузер Библиотеки Simulink, чтобы показать библиотеки блоков что генерация HDL-кода поддержки:
На вкладке Apps выберите HDL Coder.
От вкладки 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
Чтобы восстановить Браузер Библиотеки к представлению по умолчанию, в Браузере Библиотеки, нажимают
кнопку. В качестве альтернативы в командной строке, введите:
hdllib('off')Дважды кликните HDL_DUT подсистема. Перетащите блоки от библиотеки HDL Coder до вашей модели. Эта таблица приводит блоки, чтобы добавить к вашей модели для разработки счетчика. Чтобы узнать о том, что блок делает и задавать его параметры блоков, дважды кликните блок.
| Блок | Библиотека | Количество блоков | Параметры блоков |
|---|---|---|---|
| Constant | Источники | 2 |
|
| Switch | Маршрутизация сигнала | 2 | Критерии передачи первого входа: u2> Порог |
| Delay | Дискретный | 2 | Длина задержки: 1 |
| Add | Математические операции | 1 | Тип данных аккумулятора: Наследуйтесь: То же самое, как сначала введено |
| Relational Operator | Логика и битовые операции | 1 | Оператор отношения:> |
Переименуйте входные порты 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-код, можно проверить, что настройки модели совместимы для генерации HDL-кода. Встречная модель, используемая в этом примере, совместима для генерации HDL-кода. Чтобы проверить и обновить вашу модель для совместимости HDL, используйте Советника по вопросам HDL-кода. Смотрите Совместимость HDL Проверки Модели Simulink Используя Советника по вопросам HDL-кода.
Смотрите генерируют HDL-код из модели Simulink.
checkhdl | hdllib | hdlmodelchecker | hdlsetup