Этот пример иллюстрирует, как можно создать модель 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