Не используйте генерацию часов, включают логику для односкоростных проектов.
Значение по умолчанию: '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 выбран. Эти случаи:
Регистры внутри Enabled, и Инициированные подсистемы состояния поддерживающие.
Многоскоростные модели.
Кодер всегда испускает часы, включает для следующих блоков:
Генератор Последовательности commseqgen2/PN
dspsigops/NCO
Поддержка HDL блока NCO будет удалена в будущем релизе. Используйте блок NCO HDL Optimized вместо этого.
Волна dspsrcs4/Sine
БПФ hdldemolib/HDL
built-in/DiscreteFir
Децимация dspmlti4/CIC
Интерполяция dspmlti4/CIC
Децимация dspmlti4/FIR
Интерполяция dspmlti4/FIR
Фильтр dspadpt3/LMS
Фильтр dsparch4/Biquad
Если ваш проект использует блок RAM, такой как Dual Rate Dual Port RAM с набором RAM Architecture к Generic RAM without Clock Enable, генератор кода игнорирует установку Minimize clock enables.
Свойство:
MinimizeClockEnables |
| Ввод: символьный вектор |
Значение:
'on' | 'off' |
Значение по умолчанию:
'off' |
Чтобы установить это свойство, используйте hdlset_param или makehdl. Чтобы просмотреть значение свойства, используйте hdlget_param.
Например, чтобы минимизировать Часы Включают сигналы, когда вы генерируете 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 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')