exponenta event banner

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

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

Модели для генерации кодов HDL

Можно либо создать собственную модель, совместимую с ЛПВП, например модель счетчика, либо выбрать один из следующих вариантов:

  • Примеры моделей HDL Coder™ доступны в hdlcoderdemos папка.

    cd (fullfile(matlabroot,'toolbox','hdlcoder','hdlcoderdemos'))

    Эти модели доступны на пути MATLAB ®. Например, можно выбрать симметричную модель фильтра КИХ (FIR Filter Model). Для использования этой модели введите:

    sfir_fixed

  • Шаблоны Simulink для генерации кода HDL. Шаблоны можно использовать для моделирования регистров, ПЗУ, базовых арифметических операций, комплексных множителей, регистров сдвига и т.д.

    Чтобы выбрать шаблон, на панели инструментов MATLAB нажмите кнопку и перейдите в раздел Кодер HDL. См. раздел Использование шаблонов Simulink для создания кода HDL.

Перед созданием кода HDL можно проверить и обновить модель на совместимость с HDL с помощью помощника по коду HDL. См. раздел Проверка совместимости HDL модели Simulink с помощью помощника по кодам HDL.

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

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

Создание кода HDL

Для модели счетчика HDL_DUT подсистема является DUT. Чтобы создать код для DUT:

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

  2. Выберите подсистему DUT в модели и убедитесь, что это имя подсистемы отображается в опции Код для на вкладке Код HDL. Чтобы запомнить выбор, закрепите этот параметр. Щелкните Создать код HDL (Generate HDL Code).

По умолчанию кодер HDL генерирует код VHDL в целевом объекте hdlsrc папка.

Создать код Verilog

Чтобы создать код Verilog для модели счетчика:

  1. На вкладке Код HDL (HDL Code) щелкните Настройки (Settings).

  2. На панели «Создание кода HDL» в поле «Язык» выберите Verilog. Щелкните Применить (Apply), а затем Создать (Generate).

Кодер HDL компилирует модель перед созданием кода. В зависимости от опций отображения модели, таких как типы данных портов, модель может изменяться в виде после генерации кода. По мере формирования кода кодер HDL отображает сообщения о ходе выполнения в командной строке MATLAB со ссылками на набор конфигурации и сгенерированные файлы. Чтобы просмотреть файлы в редакторе MATLAB, щелкните ссылки.

Процесс завершен и отображается следующее сообщение:

### HDL Code Generation Complete.

Просмотр файлов генерации кода HDL

Значок папки для hdlsrc отображается в текущей папке. Для просмотра созданных файлов кода и сценариев дважды щелкните значок hdlsrc затем дважды щелкните папку, имя которой совпадает с именем модели, для которой был создан код HDL.

  • HDL_DUT.vhd: Код VHDL ®, содержащий определение сущности и архитектуру RTL, реализующую спроектированный счетчик. Если вы создали код Verilog, вы получите HDL_DUT.v файл.

  • HDL_DUT_compile.do: Сценарий компиляции Mentor Graphics ® ModelSim ®.

  • HDL_DUT_map.txt: Отображение файла, который сопоставляет сгенерированные объекты или модули в коде HDL с подсистемами в модели, которые их создали. См. раздел Трассировка кода с использованием файла сопоставления.

  • HDL_DUT_report.html: Отчет о проверке HDL отображает состояние генерации кода HDL и предупреждения или сообщения.

  • gm_hdlcoder_simple_up_counter.slx: Созданная модель, которая поведенчески представляет код HDL в среде моделирования Simulink.

Кодер HDL создает поведенческую модель кода HDL, называемую сгенерированной моделью. Имя созданной модели совпадает с именем исходной модели и имеет префикс gm_. Сгенерированная модель является битовой и цикличной по отношению к сгенерированному коду ЛПВП. Эта модель показывает эффект реализации блоков и оптимизации скорости и площади, указанные пользователем. См. также раздел Оптимизация скорости и площади в кодере HDL.

Чтобы открыть созданную модель для счетчика, введите:

gm_hdlcoder_simple_up_counter

Для счетной модели, поскольку оптимизации отключены, создаваемая модель идентична исходной модели.

Проверка сгенерированного кода HDL

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

Чтобы создать отчет об отслеживаемости:

  1. На вкладке Код HDL (HDL Code) щелкните Настройки (Settings) > Параметры отчета (Report Options).

  2. На панели Создание кода HDL (HDL Code Generation) > Отчет (Report) выберите Создать отчет об отслеживании (Generate traceability report), а затем создайте код HDL для HDL_DUT подсистема

Generate traceability report check box selected in the Configuration Parameters dialog box.

После создания кода откроется окно Отчет о создании кода (Code Generation Report). Кодер HDL записывает файлы отчетов о генерации кода в hdlsrc\html\ папки сборки. При закрытии отчета можно перейти в эту папку для повторного открытия отчета.

Для перехода от кода HDL к модели:

  1. В окне Отчет о создании кода (Code Generation Report) перейдите в раздел Отчет об отслеживании (Traceability Report), а затем щелкните ссылки в разделе Расположение кода (Code Location).

  2. Выберите гиперссылку на строку кода, чтобы выделить соответствующий блок в модели.

Чтобы перейти от блока модели к коду HDL, выберите этот блок и нажмите кнопку «Перейти к коду» в разделе «Результаты проверки» вкладки «Код HDL».

Traceability report showing code-to-model and model-to-code navigation.

См. разделы Навигация между моделью Simulink и кодом HDL с помощью отслеживания и Создание и использование отчетов о создании кода.

Если щелкнуть файл HDL в разделе Сгенерированные исходные файлы HDL_DUT, вы видите сигналы clk, reset, и clk_enable. Эти сигналы являются синхросигналами, сбросом и включением синхросигналов, которые управляют триггерами на целевых аппаратных средствах. Кодер HDL генерирует эти сигналы в коде в зависимости от последовательных элементов, таких как блоки задержки, которые используются в модели. См. раздел Генерация сигналов синхросигналов в кодере HDL.

Проверка поведения HDL с помощью модели проверки

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

Чтобы создать модель проверки, выполните следующие действия.

  1. На вкладке Код HDL (HDL Code) щелкните Настройки (Settings).

  2. На вкладке Создание кода HDL > Глобальные настройки > Создание модели выберите Модель проверки, а затем создайте код HDL для HDL_DUT подсистема.

Configuration parameters option to select Validation model check box.

В журналах создания кода отображается ссылка на модель проверки. Модель проверки имеет тот же префикс, что и созданная модель, а также суффикс _vnl. Для модели счетчика модель проверки имеет имя gm_hdlcoder_simple_up_counter_vnl.slx. Эту модель можно найти в той же папке, что и созданную модель. Чтобы открыть эту модель, введите:

gm_hdlcoder_simple_up_counter_vnl

Validation model comparing output of generated model with original model.

После моделирования модели дважды щелкните значок Compare , а затем перейдите внутрь Assert_Out подсистема. При открытии блока «Scope» будет видно, что err сигнал имеет нулевое значение, что означает, что сформированный выходной сигнал модели соответствует исходной модели.

См. Сгенерированная модель и модель проверки.

Проверка сгенерированного кода HDL

Перед развертыванием проекта на целевом оборудовании проверьте созданный код HDL. От hdlsrc перейдите к текущей рабочей папке. См. раздел Проверка сгенерированного кода HDL из модели Simulink.

См. также

| |

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