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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • Во вкладке Apps выберите HDL Coder. Вкладка HDL Code появляется. Выберите Settings> Report Options, и затем выберите Generate traceability report.

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

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

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

    • На HDL Code Generation> панель Report, задайте TraceabilityStyle.

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

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

  3. Сгенерируйте HDL-код и отчет трассируемости. Или выберите DUT Subsystem и нажмите Generate HDL Code на Панели инструментов Simulink или запустите 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-коду, сгенерированному для того блока при помощи любого из этих подходов.

  • Выберите тот блок и нажмите Navigate to Code на вкладке HDL Code.

  • Щелкните правой кнопкой по тому блоку по своей модели Simulink и выберите HDL Code> Navigate to Code.

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

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

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

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

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

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

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

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

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

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

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

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

Похожие темы