Минимизация разрешений синхроимпульса и сброс параметров сигнала

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