По умолчанию HDL- Coder™ генерирует код в стиле, который предназначен для сопоставления с регистрами с разрешениями синхроимпульса, и DUT имеет порт включения синхроимпульса верхнего уровня.
Если вы не хотите генерировать регистры с включенными синхроимпульсами, можно минимизировать логику включения синхроимпульса. Для примера, если ваш целевой компьютер содержит регистры без включения синхроимпульса, можно сэкономить аппаратные ресурсы, минимизировав логику включения синхроимпульса.
Следующий VHDL® код показывает стиль сгенерированного кода по умолчанию, который использует clock enables. The enb
сигнал - активизация синхроимпульса:
Unit_Delay_process : PROCESS (clk, reset) BEGIN IF reset = '1' THEN Unit_Delay_out1 <= to_signed(0, 32); ELSIF clk'EVENT AND clk = '1' THEN IF enb = '1' THEN Unit_Delay_out1 <= In1_signed; END IF; END IF; END PROCESS Unit_Delay_process;
Следующий код VHDL показывает стиль кода, который вы генерируете, если вы минимизируете часы включают:
Unit_Delay_process : PROCESS (clk, reset) BEGIN IF reset = '1' THEN Unit_Delay_out1 <= to_signed(0, 32); ELSIF clk'EVENT AND clk = '1' THEN Unit_Delay_out1 <= In1_signed; END IF; END PROCESS Unit_Delay_process;
Чтобы минимизировать время включения, в HDL Workflow Advisor, на вкладке HDL Code Generation > Set Code Generation Options > Set Optimization Options > General, выберите Minimize clock enables.
Минимизация включения синхроимпульса, в coder.HdlConfig
объект строения, установите MinimizeClockEnables
свойство к true
. Для примера:
hdlCfg = coder.config('hdl') hdlCfg.MinimizeClockEnables = true;
Если вы задаете оптимизацию области, которую реализует кодер, увеличивая тактовую частоту в определенных областях проекта, вы не можете минимизировать включения синхроимпульса. Следующие оптимизации препятствуют минимизации времени:
Совместное использование ресурсов
Отображение ОЗУ
Потоковая передача циклов