Эта страница описывает параметры, которые находятся на вкладке HDL Code Generation > Global Settings > Ports диалогового окна Параметров конфигурации.
Опущите генерацию логики включения синхроимпульса для односкоростных проектов.
По умолчанию: Off
Для односкоростных моделей опускайте генерацию логики включения синхроимпульса, где это возможно. Следующий VHDL® пример кода не определяет и не исследует сигнал включения синхроимпульса. Когда тактовый сигнал (clk
) идет высоко, ток значения сигналов выхода.
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;
Сгенерируйте логику включения синхроимпульса. Следующий экстракт кода VHDL представляет регистр с разрешением синхроимпульса (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;
В некоторых случаях HDL Coder™ излучает часы, даже когда Minimize clock enables выбран. К таким случаям относятся:
Регистры внутри Включено, Включено состояние и Триггируемые подсистемы.
Многоскоростные модели.
Кодер всегда излучает часы для следующих блоков:
commseqgen2/PN генератор последовательности
dspsigops/NCO
Примечание
Поддержка HDL для блока NCO будет удалена в следующем релизе. Вместо этого используйте блок NCO HDL Optimized.
dspsrcs4/Sine волны
hdldemolib/HDL FFT
встроенный/DiscreteFir
dspmlti4/CIC десятикратное уменьшение
dspmlti4/CIC интерполяция
dspmlti4/FIR десятикратное уменьшение
dspmlti4/FIR интерполяция
dspadpt3/LMS фильтр
dsparch4/Biquad фильтр
Примечание
Если ваш проект использует блок оперативной памяти, такой как Dual Rate Dual Port RAM с RAM Architecture, установленным на Generic RAM without Clock Enable
генератор кода игнорирует настройку Minimize clock enables.
Свойство:
MinimizeClockEnables
|
Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'off'
|
Чтобы задать это свойство, используйте hdlset_param
или makehdl
. Чтобы просмотреть значение свойства, используйте hdlget_param
.
Например, чтобы минимизировать сигналы Clock Enable, когда вы генерируете HDL-код для symmetric_fir
подсистема внутри sfir_fixed
модель, использовать любой из этих методов.
Передайте свойство как аргумент в makehdl
функция.
makehdl('sfir_fixed/symmetric_fir', ... 'MinimizeClockEnables','on')
Когда вы используете hdlset_param
можно задать параметр на модели, а затем сгенерировать HDL-код используя makehdl
.
hdlset_param('sfir_fixed','MinimizeClockEnables','on') makehdl('sfir_fixed/symmetric_fir')
Пропустите генерацию логики сброса в HDL-коде.
По умолчанию: Off
Когда вы включаете эту настройку, генератор кода пытается минимизировать или удалить глобальную логику сброса из HDL-кода. Этот фрагмент кода соответствует коду Verilog, сгенерированному для блока Delay в Simulink® модель. Фрагмент кода показывает, что HDL Coder удалил логику сброса.
always @(posedge clk) begin : Delay_Synchronous_process if (enb) begin Delay_Synchronous_out1 <= DataIn; end end
Когда вы отключаете этот параметр, HDL Coder генерирует глобальную логику сброса в HDL-коде. Этот фрагмент кода Verilog показывает логику сброса, сгенерированную для блока Delay.
always @(posedge clk or posedge reset) begin : Delay_Synchronous_process if (reset == 1'b1) begin Delay_Synchronous_out1 <= 1'b0; end else begin if (enb) begin Delay_Synchronous_out1 <= DataIn; end end end
Если вы выбираете Minimize global resets, сгенерированный HDL-код содержит регистры, которые не имеют порта сброса. Если вы не инициализируете эти регистры, в результатах симуляции HDL могут быть потенциальные числовые несоответствия. Чтобы избежать несоответствий симуляции, можно инициализировать регистры с помощью настройки инициализации регистров No-reset.
По умолчанию настройка No-reset registers initialization имеет значение Generate initialization inside module
, что означает, что генератор кода инициализирует регистры как часть HDL-кода, сгенерированного для DUT. Чтобы инициализировать регистры со скриптом, установите No-reset registers initialization равным Generate an external script
. Необходимо использовать нулевое начальное значение для блоков в модели Simulink.
Иногда, когда вы выбираете Minimize global resets, HDL Coder генерирует логику сброса, если у вас есть:
Блоки с состоянием, которое имеет ненулевое начальное значение, такое как Delay блок с ненулевыми Initial Condition.
Перечисленные типы данных для блоков с состоянием.
Subsystem блоки с BlackBox
Архитектура HDL, в которой вы запрашиваете сигнал сброса.
Многоскоростные модели с Timing controller architecture значением default
.
Если вы задаете Timing controller architecture resettable
HDL Coder генерирует порт сброса для контроллера синхронизации. Если вы задаете Minimize global reset signals 'on'
генератор кода удаляет этот порт сброса.
Truth Table
Chart
MATLAB Function блок
Свойство:
MinimizeGlobalResets
|
Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'off'
|
Чтобы задать это свойство, используйте hdlset_param
или makehdl
. Чтобы просмотреть значение свойства, используйте hdlget_param
.
Например, чтобы минимизировать глобальные сигналы сброса, когда вы генерируете HDL-код для symmetric_fir
подсистема внутри sfir_fixed
модель, использовать любой из этих методов.
Передайте свойство как аргумент в makehdl
функция.
makehdl('sfir_fixed/symmetric_fir', ... 'MinimizeGlobalResets','on')
Когда вы используете hdlset_param
можно задать параметр на модели, а затем сгенерировать HDL-код используя makehdl
.
hdlset_param('sfir_fixed','MinimizeGlobalResets','on') makehdl('sfir_fixed/symmetric_fir')