Удалите избыточную логику и оптимизируйте неподключенные порты в проекте

Когда вы используете типы данных с плавающей точкой в Native Floating Point режим, если ваш проект содержит избыточные логические или неподключенные порты, HDL Coder™, удаляет неподключенный порт, или любой компонент или часть HDL-кода, который не способствует выходу.

Удалите избыточную логику

Компоненты, которые не способствуют выходу в проекте, удалены во время генерации HDL-кода. Примеры включают:

  • Блок switch, который получает постоянный вход в порту управления

  • Блок Subsystem без активного выхода

HDL Coder оценивает постоянные условные значения, доступные во время компиляции. Это упрощает проект.

Чтобы проиллюстрировать, как эта оптимизация упрощает ваш проект:

1. Откройте модель hdlcoder_remove_redundant_logic и затем откройте блок DUT.

open_system('hdlcoder_remove_redundant_logic.slx')
set_param('hdlcoder_remove_redundant_logic', 'SimulationCommand', 'update');

2. Откройте DUT Блок Subsystem.

open_system('hdlcoder_remove_redundant_logic/DUT')

3. Сгенерировать HDL-код для проекта, в командной строке MATLAB®, введите:

makehdl('hdlcoder_remove_redundant_logic/DUT')

4. Откройте сгенерированную модель. Дважды кликните DUT Подсистема.

HDL Coder™ оценил условие переключателя во время компиляции, чтобы передать вход от Subsystem_2 к выходу и устраненному Subsystem_1 введите ветвь. В этом примере нет никакого активного выхода, сгенерированного от EnabledSubsystem_1 блок. EnabledSubsystem_1 блок удален во время генерации HDL-кода.

Удаление избыточной логики уменьшает размер кода и избегает потенциальных отказов синтеза с нисходящими инструментами, когда вы развертываете сгенерированный код на целевую платформу. Эта оптимизация улучшает производительность вашего проекта на целевом компьютере.

Оптимизируйте неподключенные порты

Во время генерации HDL-кода неподключенные порты от сгенерированного кода удалены, не удаляя порты из моделей DUT верхнего уровня или подсистем. Эта оптимизация включает удаляющие несвязанные векторные и скалярные порты, порты элемента шины и входы шины. Удаление неподключенных портов улучшает удобочитаемость сгенерированного кода VHDL/Verilog и уменьшает использование области и размер кода. Сокращение избегает, чтобы отказ синтеза, вызванный неиспользуемыми портами в HDL Coder™, сгенерировал код VHDL/Verilog.

Чтобы проиллюстрировать, как неподключенные порты удалены из подсистемы во время генерации HDL-кода:

1. Откройте модель hdlcoder_RemoveUnconnectedPorts содержа порты элемента шины и порт, соединенный с неактивным выходом.

open_system('hdlcoder_RemoveUnconnectedPorts.slx')
set_param('hdlcoder_RemoveUnconnectedPorts', 'SimulationCommand', 'update');

2. Откройте dut Блок Subsystem.

open_system('hdlcoder_RemoveUnconnectedPorts/dut')

3. Откройте mid_Subsystem блок. mid_Subsystem содержит порты элемента шины. Один из выходных сигналов соединяется с блоком Terminator.

open_system('hdlcoder_RemoveUnconnectedPorts/dut/mid_Subsystem')

4. Сгенерировать HDL-код для проекта, в командной строке MATLAB®, введите:

makehdl('hdlcoder_RemoveUnconnectedPorts/dut')

Сгенерированный код mid_Subsystem.v показывает код с оптимизацией неподключенного порта. Здесь, неподключенные порты удалены во время генерации HDL-кода.

Следующее является примером кода с и без оптимизации неподключенного порта.

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

Ограничения

  • Только проекты с плавающей точкой оптимизированы. Избыточные логические или неподключенные порты в проектах Фиксированной точки не затронуты.

  • Только несвязанные порты данных демонтированы. Порты управления не удалены.

  • Порты модели, на которую ссылаются, не удалены.

Похожие темы