Петли обратной связи в конструкции Simulink ® могут препятствовать балансировке задержек и оптимизации, например, совместного использования ресурсов и потоковой передачи.
Чтобы найти в конструкции контуры обратной связи, препятствующие оптимизации, можно создать и запустить сценарий MATLAB ®, выделяющий один или несколько контуров обратной связи в исходной модели и созданной модели. При запуске сценария различные контуры обратной связи выделяются различными цветами. Сценарий выделения цикла обратной связи сохраняется в той же целевой папке, что и код HDL.
После создания кода, если циклы обратной связи препятствуют оптимизации, в окне команд отображается ссылка, по которой можно выделить циклы обратной связи. При создании отчета об оптимизации отчет также содержит ссылку, по которой можно выделить контуры обратной связи.
Сценарий может выделять циклы обратной связи, которые запрещают следующие оптимизации:
Совместное использование ресурсов
Вытекание
Конвейеризация переменных MATLAB
Балансировка задержки
По умолчанию подсветка контуров обратной связи включена. Этот параметр доступен:
В диалоговом окне «Параметры конфигурации» на вкладке «Создание кода HDL» > «Глобальные настройки» > «Дополнительно» выберите «Выделить контуры обратной связи, запрещающие балансировку и оптимизацию задержек».
Чтобы создать программный сценарий выделения цикла обратной связи, используйте HighlightFeedbackLoops свойство с makehdl или hdlset_param. Например, чтобы создать сценарий выделения цикла обратной связи для модели, myModel, введите:
hdlset_param ('myModel', 'HighlightFeedbackLoops', 'on');
По умолчанию HDL Coder™ создает сценарий для выделения контуров обратной связи и сценарий для очистки выделения контуров обратной связи в модели. Подсветку можно отключить одним из следующих способов:
Щелкните значок clearhighlighting сценарий в окне команд MATLAB
На панели инструментов Simulink выберите Debug > Trace Signal.
Подсвечивание цикла обратной связи не может выделять блоки с именами, содержащими одну кавычку (').
В некоторых случаях подсвечивание цикла обратной связи может выделить подсистему или один блок вместо блока нижнего уровня.