На этой странице описываются параметры, которые находятся на вкладке Создание кода HDL > Глобальные настройки > Порты диалогового окна Параметры конфигурации.
Исключите генерацию логики включения синхронизации для односкоростных конструкций.
По умолчанию: Откл.
Для односкоростных моделей исключите генерацию логики включения синхронизации, где это возможно. Следующий пример кода 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™ выдает тактовый сигнал, даже если выбран параметр Минимизировать тактовый сигнал. Это следующие случаи:
Регистрируется в подсистемах Enabled, State-Enabled и Triggered.
Многоскоростные модели.
Кодер всегда выдает тактовый сигнал для следующих блоков:
commseqgen2/PN Генератор последовательностей
dspsigops/NCO
Примечание
Поддержка HDL для блока NCO будет удалена в следующем выпуске. Вместо этого используйте блок NCO HDL Optimized.
dspsrcs4/Sine Волна
hdldemolib/HDL БПФ
встроенный/Фир
dspmlti4/CIC Прореживание
dspmlti4/CIC Интерполяция
dspmlti4/FIR Прореживание
dspmlti4/FIR Интерполяция
dspadpt3/LMS Фильтр
dsparch4/Biquad Фильтр
Примечание
Если в проекте используется блок ОЗУ, например двухскоростная двухпортовая ОЗУ с архитектурой ОЗУ, установленной на 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.
По умолчанию: Откл.
Если этот параметр включен, генератор кода пытается свернуть или удалить логику глобального сброса из кода HDL. Этот фрагмент кода соответствует коду Verilog, сгенерированному для блока задержки в модели Simulink ®. Фрагмент кода показывает, что кодер HDL удалил логику сброса.
always @(posedge clk)
begin : Delay_Synchronous_process
if (enb) begin
Delay_Synchronous_out1 <= DataIn;
end
end
При отключении этого параметра кодер HDL генерирует логику глобального сброса в коде HDL. Этот фрагмент кода Verilog показывает логику сброса, сформированную для блока задержки.
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
При выборе параметра Минимизировать глобальные сброса сгенерированный код HDL содержит регистры, не имеющие порта сброса. Если эти регистры не инициализированы, в результатах моделирования ЛПВП могут возникнуть возможные числовые несоответствия. Чтобы избежать несовпадений моделирования, можно инициализировать регистры с помощью настройки инициализации Без сброса регистров.
По умолчанию параметр инициализации регистров без сброса имеет значение Generate initialization inside module, что означает, что генератор кода инициализирует регистры как часть кода HDL, сгенерированного для DUT. Чтобы инициализировать регистры с помощью сценария, установите для параметра No-reset regists initialization значение Generate an external script. Необходимо использовать нулевое начальное значение для блоков в модели Simulink.
Иногда при выборе опции Минимизировать глобальные сброса (Minimize global resets) кодер HDL генерирует логику сброса, если имеется:
Блоки с состоянием, имеющими ненулевое начальное значение, например блок задержки с ненулевым начальным условием.
Перечислимые типы данных для блоков с состоянием.
Блоки подсистем с BlackBox Архитектура HDL, в которой запрашивается сигнал сброса.
Многоскоростные модели с архитектурой контроллера синхронизации default.
Если для архитектуры контроллера синхронизации установлено значение resettableКодер HDL генерирует порт сброса для контроллера синхронизации. Если для параметра Минимизировать сигналы глобального сброса установлено значение 'on'генератор кода удаляет этот порт сброса.
Таблица правды
Диаграмма
Функциональный блок MATLAB
Свойство:
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')