HDL Coder™ выполняет оптимизацию, которая удаляет любой компонент или часть HDL-кода, который не способствует выводу.
Например, некоторые компоненты, которые не способствуют выводу в проекте:
Блок switch, который получает постоянный вход в порту управления
Блок Subsystem без активного вывода
HDL Coder™ оценивает постоянные условные значения, доступные во время компиляции. Это упрощает проект.
Чтобы проиллюстрировать, как эта оптимизация упрощает ваш проект:
1. Откройте модель hdlcoder_remove_redundant_logic
.
open_system('hdlcoder_remove_redundant_logic.slx')
2. Откройте блок DUT
.
open_system('hdlcoder_remove_redundant_logic/DUT') set_param('hdlcoder_remove_redundant_logic', 'SimulationCommand', 'update');
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')
2. Откройте блок dut
.
open_system('hdlcoder_RemoveUnconnectedPorts/dut') set_param('hdlcoder_RemoveUnconnectedPorts', 'SimulationCommand', 'update');
3. Откройте блок mid_Subsystem
. mid_Subsystem
содержит порты элемента шины. Один из выходного сигнала соединяется с блоком терминатора строки.
open_system('hdlcoder_RemoveUnconnectedPorts/dut/mid_Subsystem')
4. Сгенерировать HDL-код для проекта, в командной строке MATLAB®, введите:
makehdl('hdlcoder_RemoveUnconnectedPorts/dut')
Сгенерированный код mid_Subsystem.v
показывает код с оптимизацией неподключенного порта. Здесь, неподключенные порты удалены во время генерации HDL-кода.
Следующее является примером кода с и без оптимизации неподключенного порта.
Примечание: Удаление избыточной логики и оптимизации неподключенного порта не влияет на поддержку трассируемости.
Только несвязанные порты данных демонтированы. Порты управления не удалены.
Порты модели, на которую ссылаются, не удалены.