Эта страница описывает параметры, которые находятся на вкладке 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 resettableHDL 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')