Даже относительно небольшая модель может сгенерировать сотни линий HDL-кода. Чтобы легче идентифицировать отображение между исходной моделью и сгенерированным HDL-кодом, используйте поддержку трассируемости в HDL- Coder™.
Когда вы включаете поддержку трассируемости и генерируете HDL-код для вашей модели, генератор кода создает и отображает отчет о HTML генерации кода.
По умолчанию генератор кода использует стиль уровня линии для создания отчета о трассируемости. Отчет, сгенерированный при использовании этого стиля, содержит гиперссылки для каждой линии HDL-кода, чтобы перемещаться между кодом и моделью. Можно настроить стиль трассируемости, чтобы создать отчет на основе комментариев. Этот стиль содержит гиперссылочные комментарии над блоком кода, которые соответствуют тегу с возможностью поиска для определенного блока в вашей модели. Дополнительные сведения о двух стилях трассируемости см. в разделе «Стиль трассируемости».
Можно сгенерировать отчеты для модели корневого уровня или для подсистем, блоков, Stateflow® графики или MATLAB Function блоки. По умолчанию HDL Coder генерирует отчет для модели верхнего уровня.
После создания отчета можно перейти от:
Модель к коду: Выберите определенный блок в вашей модели и перейдите к соответствующим линиям HDL-кода в отчете.
Код для модели: Выберите строку кода в отчете и перейдите к Simulink® блоки, соответствующие этой строке кода.
HDL Coder обеспечивает эту двухстороннюю навигацию или bidirectional трассируемость. С поддержкой трассируемости можно:
Проверьте, что сгенерированный код как вы ожидаете. Можно идентифицировать, какие элементы модели соответствуют строке кода, и отследить код из различных элементов модели, которые у вас есть или не рассматривались.
Проверьте, соответствует ли сгенерированный код требованиям проекта. Можно присвоить требования элементам модели и включить требования как гиперссылки в отчет о трассируемости.
Отчет можно сгенерировать в диалоговом окне Параметров конфигурации или в командной строке.
Включите генерацию отчета о трассируемости.
На вкладке Apps выберите HDL Coder. Появится вкладка HDL Code. Выберите Settings > Report Options, а затем Generate traceability report.
В командной строке используйте hdlset_param
для установки Traceability
свойство на модели.
Дополнительные сведения об этом параметре см. в разделе Генерация отчета трассируемости.
Задайте стиль трассируемости. Чтобы сгенерировать отчет о трассируемости на уровне строк, оставьте этот параметр по умолчанию. Чтобы сгенерировать отчет о трассируемости на основе комментариев:
На панели HDL Code Generation > Report задайте TraceabilityStyle.
В командной строке используйте hdlset_param
для задания TraceabilityStyle
свойство на модели.
Дополнительные сведения об этом параметре см. в разделе Стиль трассируемости.
Сгенерируйте HDL-код и отчет о трассируемости. Либо выберите Подсистему DUT и нажатия кнопки Generate HDL Code на Панель инструментов Simulink, либо запуск makehdl
в Подсистеме DUT в командной строке.
Когда генерация HDL-кода завершена, отчет о HTML генерации кода появляется в новом окне.
По умолчанию HDL Coder записывает файлы отчета генерации кода в папку в hdlsrc\html\
папка папки сборки. При закрытии отчета можно перейти в эту папку для повторного открытия отчета.
Перед генерацией кода можно настроить целевую папку, в которой хранится HDL-код и файлы отчетов.
В диалоговом окне Параметры конфигурации укажите целевую папку с помощью параметра Target.
В командной строке используйте TargetDirectory
свойство.
Чтобы узнать, как задать этот параметр, смотрите Папку.
Чтобы сохранить отчет о трассируемости в актуальном состоянии, регенерируйте HDL-код и отчет после изменения исходной модели.
В окне отчета генерации кода HTML выберите раздел Traceability Report. На левой панели отчета щелкните имена Сгенерированных исходных файлов, чтобы просмотреть их содержимое в MATLAB® окно веб-браузера.
Этот рисунок показывает типовой отчет о трассируемости.
Отчет о трассируемости имеет несколько подсекций, которые указывают блоки или подсистемы, из которых был сгенерирован код:
Раздел Eliminated / Virtual Blocks учитывает блоки, которые не отслеживаются, поскольку они не включены в сгенерированный HDL-код.
Раздел Traceable Simulink Blocks / Stateflow Objects / MATLAB Functions обеспечивает полное отображение между элементами модели и кодом.
Если присвоены требования к блокам, требования можно увидеть как гиперссылочные комментарии в отчете о трассируемости. Дополнительные сведения см. в разделе Включение требований в комментарии блоков.
Для перехода от HDL-кода к модели:
В отчете о трассируемости в столбце Code Location щелкните любую гиперссылку.
Генератор кода подсвечивает эту линию HDL-кода в сгенерированном исходном файле.
Выберите ссылку, соответствующую этой строке кода в исходном файле.
Генератор кода открывает отдельное окно, в котором отображается подсвеченный блок Simulink, относящийся к этой строке кода.
Этот рисунок показывает, как перемещаться от HDL-кода к модели с помощью отчета о трассируемости, когда вы задаете Line Level
как Traceability style.
В отчете о трассируемости видно, что HDL Coder генерирует гиперссылки линейного уровня к HDL-коду в Code Location столбце. Щелкните ссылку, чтобы выделить эту строку кода в исходном файле HDL, а затем щелкните гиперссылку для этой строки кода в исходном файле, чтобы выделить соответствующий блок в вашей модели.
Этот рисунок показывает, как перемещаться от HDL-кода к модели с помощью отчета о трассируемости, когда вы задаете Comment Based
как Traceability style.
В отчете о трассируемости при выборе гиперссылки в столбце Code Location видно, что HDL Coder подсвечивает гиперссылку <S2>/a1
в HDL-коде. При клике гиперссылочного комментария в исходном файле HDL генератор кода подсвечивает соответствующий блок a1
в вашей модели.
Используйте трассируемость модели к коду, чтобы выбрать компонент на любом уровне модели и просмотреть ссылки кода на этот компонент в отчете о трассируемости. Для трассировки можно выбрать следующие объекты:
Подсистема
Блок Simulink
MATLAB Function блок
Диаграмма Stateflow или эти элементы массива диаграммы Stateflow:
Государство
Переход
Таблица истинности
Функция MATLAB внутри графика
Вы можете перейти от определенного блока в модели к HDL-коду, сгенерированному для этого блока, используя любой из этих подходов.
Выберите этот блок и щелкните Navigate to Code на вкладке HDL Code.
Щелкните правой кнопкой мыши этот блок в модели Simulink и выберите HDL Code > Navigate to Code.
Этот рисунок показывает навигацию модель-к-коду для стиля трассируемости на уровне строки и на основе комментариев.
Если вы используете Line Level
по мере Traceability style и перехода от модели к HDL-коду в отчете о трассируемости подсвечиваются все линии HDL-кода, соответствующие этому блоку.
Если вы используете Comment Based
при Traceability style и переходе от модели к HDL-коду в трассируемость отчете подсвечивается отслеживаемый комментарий блока в HDL-коде.
Если имя блока в вашей модели содержит одинарную кавычку ('
), трассируемость code-to-model и model-to-code отключены для этого блока.
Если звездочка (*
) в названии блока в вашей модели вызывает неоднозначность управления именем относительно других имен в модели, подсветка кода к модели и подсветка модели к коду отключены для этого блока. Это, скорее всего, произойдет, если звездочка предшествует или следует за косой чертой (/
) в имени блока или появляется в конце имени блока.
Если имя блока в вашей модели содержит символ и символ (char(255)
), подсветка кода к модели и подсветка модели к коду отключены для этого блока.
Если вы используете определенные типы подсистем, блок Subsystem не отслеживается из модели в HDL-код на уровне подсистемы. Возможно, что можно проследить отдельные блоки внутри блока Subsystem. Вы не можете проследить от модели до кода для этих типов подсистем:
Виртуальный
В маске
Невиртуальный, для которого был оптимизирован код
Трассируемость не поддерживает Модели-ссылки как Subsystem блок верхнего уровня.