exponenta event banner

Переход между моделью Simulink и кодом HDL с помощью отслеживания

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

Как работает отслеживание

При включении поддержки отслеживания и создании кода HDL для модели генератор кода создает и отображает отчет о создании кода HTML.

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

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

После создания отчета можно перейти из:

  • Выбор определенного блока в модели и переход к соответствующим строкам кода HDL в отчете.

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

Кодер HDL обеспечивает двустороннюю навигацию или двунаправленную прослеживаемость. Поддержка прослеживаемости позволяет:

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

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

Создать отчет об отслеживании

Отчет можно создать в диалоговом окне «Параметры конфигурации» или в командной строке.

  1. Разрешить создание отчета об отслеживании.

    • На вкладке Приложения выберите Кодер HDL. Появится вкладка Код HDL (HDL Code). Выберите Параметры > Параметры отчета, а затем выберите Создать отчет об отслеживании.

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

    Дополнительные сведения об этом параметре см. в разделе Создание отчета об отслеживании.

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

    • На панели «Создание кода HDL» > «Отчет» укажите стиль TraceableStyle.

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

    Дополнительные сведения об этом параметре см. в разделе Стиль отслеживания.

  3. Создайте код HDL и отчет об отслеживании. Выберите подсистему DUT и нажмите «Создать код HDL» на панели инструментов Simulink Toolstrip или запустите makehdl в подсистеме DUT в командной строке.

После завершения создания кода HDL в новом окне появится отчет о создании кода HTML.

Расположение отчета

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

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

  • В диалоговом окне «Параметры конфигурации» укажите целевую папку с помощью параметра «Цель».

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

Сведения об указании этого параметра см. в разделе Папка.

Для обновления отчета об отслеживании восстановите код HDL и отчет после изменения исходной модели.

Просмотр отчета об отслеживании

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

На этом рисунке показан типичный отчет об отслеживаемости.

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

  • В разделе «Устраненные/виртуальные блоки» учитываются блоки, которые невозможно отследить, поскольку они не включены в созданный код HDL.

  • В разделе Отслеживаемые блоки Simulink/Объекты потока состояний/Функции MATLAB (Traceable Simulink Blocks/Stateflow Objects/MATLAB Functions) представлено полное сопоставление между элементами модели и кодом.

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

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

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

  1. В отчете об отслеживании в столбце Расположение кода (Code Location) щелкните любую гиперссылку.

    Генератор кода выделяет эту строку кода HDL в созданном исходном файле.

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

    Генератор кода открывает отдельное окно, в котором отображается выделенный блок Simulink, соответствующий этой строке кода.

На этом рисунке показано, как перейти от кода HDL к модели с помощью отчета об отслеживании при указании Line Level в качестве стиля отслеживания.

В отчете по отслеживанию показано, что кодер HDL создает гиперссылки на уровне строки к коду HDL в столбце «Местоположение кода». Щелкните ссылку, чтобы выделить строку кода в исходном файле HDL, а затем щелкните гиперссылку для этой строки кода в исходном файле, чтобы выделить соответствующий блок в модели.

На этом рисунке показано, как перейти от кода HDL к модели с помощью отчета об отслеживании при указании Comment Based в качестве стиля отслеживания.

В отчете об отслеживании при выборе гиперссылки в столбце «Местоположение кода» видно, что кодер HDL выделяет комментарий с гиперссылкой <S2>/a1 в коде HDL. При щелчке на комментарии с гиперссылкой в исходном файле HDL генератор кода подсвечивает соответствующий блок a1 в модели.

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

Использование отслеживания «модель-код» для выбора компонента на любом уровне модели и просмотра ссылок кода на этот компонент в отчете об отслеживании. Для трассировки можно выбрать следующие объекты:

  • Подсистема

  • Блок симулятора

  • Функциональный блок MATLAB

  • Диаграмма Stateflow или следующие элементы диаграммы Stateflow:

    • Государство

    • Переход

    • Таблица правды

    • Функция MATLAB внутри диаграммы

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

  • Выберите этот блок и нажмите «Перейти к коду» на вкладке «Код HDL».

  • Щелкните правой кнопкой мыши этот блок в модели Simulink и выберите «Код HDL» > «Перейти к коду».

На этом рисунке показана навигация модель-код как для стиля отслеживания на уровне строки, так и для стиля отслеживания на основе комментариев.

Если вы используете Line Level поскольку стиль отслеживания и переход от модели к коду HDL, отчет отслеживания выделяет все строки кода HDL, соответствующие этому блоку.

Если вы используете Comment Based В качестве стиля отслеживания и перехода от модели к коду HDL отчет об отслеживании выделяет отслеживаемый комментарий блока в коде HDL.

Ограничения отчета об отслеживании

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

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

  • Если имя блока в модели содержит символchar(255)), подсветка «код-модель» и «модель-код» отключены для этого блока.

  • При использовании определенных типов подсистем блок подсистем не прослеживается от модели к коду HDL на уровне подсистемы. Возможна трассировка отдельных блоков в блоке подсистемы. Невозможно выполнить трассировку из модели в код для следующих типов подсистем:

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

    • В маске

    • Nonvirtual, код для которого был оптимизирован

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

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