Перейдите между моделью Simulink и HDL-кодом при помощи трассируемости

Даже относительно маленькая модель может сгенерировать сотни строк HDL-кода. Чтобы идентифицировать отображение между вашей исходной моделью и сгенерированным HDL-кодом более легко, используйте поддержку трассируемости в HDL Coder™.

Как работы трассируемости

Когда вы включаете поддержку трассируемости и генерируете HDL-код для вашей модели, генератор кода создает и отображает отчет генерации кода HTML.

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

Можно сгенерировать отчеты для модели корневого уровня или для подсистем, блоков, графиков Stateflow® или блоков MATLAB function. По умолчанию HDL Coder генерирует отчет для модели верхнего уровня.

После того, как вы сгенерируете отчет, можно перейти от:

  • Модель к коду: Выберите определенный блок в своей модели и перейдите к соответствующим строкам HDL-кода в отчете.

  • Код к модели: Выберите строку кода в отчете и перейдите к блокам Simulink®, соответствующим той строке кода.

HDL Coder обеспечивает эту двухстороннюю навигацию или трассируемость bidirectional. С поддержкой трассируемости вы можете:

  • Проверьте, что сгенерированный код - как вы ожидаете. Можно идентифицировать, какие элементы модели соответствуют строке кода и отслеживают код от различных элементов модели, которые вы имеете или не рассмотрели.

  • Проверьте, соответствует ли сгенерированный код конструктивным требованиям. Можно присвоить требования элементам модели и включать требования как гиперссылки в отчете трассируемости.

Сгенерируйте отчет трассируемости

Можно сгенерировать отчет в диалоговом окне Configuration Parameters или в командной строке.

  1. Включите генерацию отчета трассируемости.

    • В диалоговом окне Configuration Parameters, на панели HDL Code Generation, устанавливают флажок Generate traceability report.

    • В командной строке используйте hdlset_param, чтобы установить свойство Traceability на модели.

    Чтобы узнать больше об этом параметре, смотрите, Генерируют отчет трассируемости.

  2. Задайте стиль трассируемости. Чтобы сгенерировать отчет трассируемости уровня строки, оставьте эту установку как значение по умолчанию. Сгенерировать основанный на комментарии отчет трассируемости:

    • В диалоговом окне Configuration Parameters, на панели HDL Code Generation, задают TraceabilityStyle.

    • В командной строке используйте hdlset_param, чтобы задать свойство TraceabilityStyle на модели.

    Чтобы узнать больше об этом параметре, смотрите стиль Трассируемости.

  3. Сгенерируйте HDL-код и отчет трассируемости.

    • В диалоговом окне Configuration Parameters, на панели HDL Code Generation, нажимают Apply и Generate.

    • В командной строке запустите makehdl на Подсистеме DUT.

Когда генерация HDL-кода завершена, отчет генерации кода HTML появляется в новом окне.

Сообщите о местоположении

По умолчанию HDL Coder записывает файлы отчета генерации кода в папку в папке hdlsrc\html\ папки сборки. Если вы закрываете отчет, можно перейти к этой папке, чтобы вновь открыть отчет.

Прежде, чем сгенерировать код, можно настроить целевую папку, которая хранит HDL-код и файлы отчета.

  • В диалоговом окне Configuration Parameters задайте целевую папку при помощи установки Target.

  • В командной строке используйте свойство TargetDirectory.

Чтобы изучить, как задать этот параметр, смотрите Папку.

Чтобы усовершенствовать ваш отчет трассируемости, регенерируйте HDL-код и отчет после изменения исходной модели.

Просмотрите отчет трассируемости

В окне отчета генерации кода HTML выберите раздел Traceability Report. На левой панели отчета кликните по именам Сгенерированных Исходных файлов, чтобы просмотреть их содержимое в окне веб-браузера MATLAB®.

Эти данные показывают типичный отчет трассируемости.

Отчет трассируемости имеет несколько подразделов, которые указывают на блоки или подсистемы, от которых был сгенерирован код:

  • Раздел Eliminated / Virtual Blocks составляет блоки, которые непрослеживаемы, потому что они не включены в сгенерированный HDL-код.

  • Раздел Traceable Simulink Blocks / Stateflow Objects / MATLAB Functions обеспечивает полное отображение между элементами модели и кодом.

Если вы присвоили требования блока, вы видите требования как связанные гиперссылками комментарии в отчете трассируемости. Для получения дополнительной информации смотрите, Включают требования в комментарии блока.

Навигация кода к модели

Перейти от HDL-кода до модели:

  1. В отчете трассируемости, на столбце Code Location, кликают по любой гиперссылке.

    Генератор кода подсвечивает что строка HDL-кода в сгенерированном исходном файле.

  2. Выберите ссылку, соответствующую той строке кода в исходном файле.

    Генератор кода открывает отдельное окно, которое отображает подсвеченный блок 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-кода, щелкните правой кнопкой по определенному блоку по своей модели Simulink и выберите HDL Code> Navigate to Code.

Эти данные показывают навигацию модели к коду и для уровня строки и для основанного на комментарии стиля трассируемости.

Если вы используете Line Level в качестве Traceability style и перешли от модели до HDL-кода, отчет трассируемости подсвечивает все строки HDL-кода, соответствующего тому блоку.

Если вы используете Comment Based в качестве Traceability style и перешли от модели до HDL-кода, отчет трассируемости подсвечивает прослеживаемый комментарий блока в HDL-коде.

Ограничения отчета трассируемости

  • Если имя блока в вашей модели содержит одинарную кавычку ('), код к модели и трассируемость модели к коду отключены для того блока.

  • Если звездочка (*) в имени блока в вашей модели вызывает искажающую имя неоднозначность относительно других имен в модели, выделение кода к модели и выделение модели к коду отключены для того блока. Это, скорее всего, произойдет, если звездочка будет предшествовать или будет следовать за наклонной чертой (/) в имени блока или будет появляться в конце имени блока.

  • Если имя блока в вашей модели содержит символ ÿ (char(255)), выделение кода к модели и выделение модели к коду отключены для того блока.

  • Если вы используете определенные типы подсистемы, блок Subsystem не прослеживаем от модели до HDL-кода на уровне подсистемы. Возможно, что можно проследить отдельные блоки в блоке Subsystem. Вы не можете проследить от модели до кода для этих типов подсистемы:

    • Виртуальный

    • Маскированный

    • Невиртуальный, для которого код был оптимизирован далеко

  • Трассируемость не делает Ссылки модели поддержки как блока Subsystem верхнего уровня.

Похожие темы