Этот пример иллюстрирует, как вы можете создать 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 подсистема, которая соответствует Design-Und-Test (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 соответственно. Поместите блоки в свою модель и соедините их.

The 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 порт. Сигнал Enable определяет, отсчитывается ли счетчик вверх или содержит предыдущее значение. Значение 1 указывает, что счетчик пересчитывается вверх постоянно.

Установите Stop time модели равной 50. Симулируйте модель нажатием
кнопки. Чтобы увидеть результаты симуляции, откройте блок Scope на верхнем уровне вашей модели.
В результаты симуляции отображается Enable сигнал, генерирующий постоянное значение 1. The out счетчики сигналов от 0 на 15, возвращается к нулю и снова отсчитывается.

Прежде чем вы сгенерируете HDL-код, можно проверить, что настройки модели совместимы с генерацией HDL-кода. Модель счетчика, используемая в этом примере, совместима с генерацией HDL-кода. Чтобы проверить и обновить модель для совместимости с HDL, используйте HDL-код Advisor. См. «Проверка совместимости HDL-файлов модели Simulink с использованием HDL-код Advisor».
checkhdl | hdllib | hdlmodelchecker | hdlsetup