Параметры стиля RTL

Вы получаете доступ к параметрам стиля логики межрегистровых пересылок (RTL) во вкладке HDL Code Generation> Global Settings> Coding Style в диалоговом окне Configuration Parameters.

Используйте стиль “rising_edge/falling_edge” для регистров

Задайте, использует ли сгенерированный код VHDL® rising_edge функционируйте или falling_edge функция, чтобы обнаружить переходы часов.

Настройки

Значение по умолчанию: Off

On

Сгенерированный код использует любого rising_edge функционируйте или falling_edge функция.

Например, этот в соответствии с кодом, сгенерированным от блока Unit Delay, использует rising_edge функция, чтобы обнаружить положительные переходы часов:

Unit_Delay1_process : PROCESS (clk, reset)
  BEGIN
    IF reset = '1' THEN
      Unit_Delay1_out1 <= (OTHERS => '0');
    ELSIF rising_edge(clk) THEN
      IF clk_enable = '1' THEN
        Unit_Delay1_out1 <= signed(x_in);
      END IF;
    END IF; 
  END PROCESS Unit_Delay1_process;

Off

Сгенерированный код использует 'event синтаксис.

Например, этот код, сгенерированный от блока Unit Delay, использует clk'event AND clk = '1' обнаружить положительные переходы часов:

Unit_Delay1_process : PROCESS (clk, reset)
  BEGIN
    IF reset = '1' THEN
      Unit_Delay1_out1 <= (OTHERS => '0');
    ELSIF clk'event AND clk = '1' THEN
      IF clk_enable = '1' THEN
        Unit_Delay1_out1 <= signed(x_in);
      END IF;
    END IF; 
  END PROCESS Unit_Delay1_process;

Зависимость

Эта опция включена, когда выходной язык является VHDL.

Информация о командной строке

Свойство: UseRisingEdge
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'off'

Чтобы установить это свойство, используйте функции hdlset_param или makehdl. Чтобы просмотреть значение свойства, используйте функцию hdlget_param.

Минимизируйте промежуточные сигналы

Задайте, оптимизировать ли HDL-код для debuggability или покрытия кода.

Настройки

Значение по умолчанию: Off

On

Оптимизируйте покрытие кода путем минимизации промежуточных сигналов. Например, с этой установкой как прочь, предположите, что сгенерированный код:

const3 <= to_signed(24, 7);
subtractor_sub_cast <= resize(const3, 8);
subtractor_sub_cast_1 <= resize(delayout, 8);
subtractor_sub_temp <= subtractor_sub_cast - subtractor_sub_cast_1;

С этой установкой как на HDL Coder™ оптимизирует выход к:

subtractor_sub_temp <= 24 - (resize(delayout, 8));

Генератор кода удаляет промежуточные сигналы const3, subtractor_sub_cast, и subtractor_sub_cast_1.

Off

Оптимизируйте код для debuggability путем сохранения промежуточных сигналов.

Информация о командной строке

Свойство: MinimizeIntermediateSignals
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'off'

Чтобы установить это свойство, используйте функции hdlset_param или makehdl. Чтобы просмотреть значение свойства, используйте функцию hdlget_param.

Разверните Для - Генерируют Циклы в коде VHDL

Задайте ли VHDL FOR и GENERATE циклы развернуты и не использованы из сгенерированного кода VHDL.

Настройки

Значение по умолчанию: Off

On

Разверните и не используйте FOR и GENERATE циклы из сгенерированного кода VHDL. (В Verilog® код, циклы всегда разворачиваются.)

Off

Включайте FOR и GENERATE циклы в сгенерированном коде VHDL.

Информация о командной строке

Свойство: LoopUnrolling
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'off'

Чтобы установить это свойство, используйте функции hdlset_param или makehdl. Чтобы просмотреть значение свойства, используйте функцию hdlget_param.

Для некоторого Simulink® блоки, по умолчанию, HDL-код сгенерирован при помощи FOR-GENERATE построение цикла, когда вы устанавливаете выходной язык на VHDL. Эти блоки Simulink:

Код сгенерирован при помощи FOR-GENERATE цикл имеет лучшую удобочитаемость кода, уменьшаемые строки кода, и уменьшаемое время генерации кода. Например, считайте код VHDL сгенерированным для того, чтобы изменить форму 2D матрицы в 1D матрицу. Пример показывает код, сгенерированный для блока Reshape с и без FOR-GENERATE циклы.

  • Измените блок без FOR-GENERATE цикл (Unroll for Generate Loops for VHDL code включен):

Reshape_output : PROCESS (In1_signed)
BEGIN
Reshape_out1(0) <= In1_signed(0, 0);
Reshape_out1(1) <= In1_signed(1, 0);
Reshape_out1(2) <= In1_signed(2, 0);
Reshape_out1(3) <= In1_signed(3, 0);
Reshape_out1(4) <= In1_signed(4, 0);
Reshape_out1(5) <= In1_signed(5, 0);
Reshape_out1(6) <= In1_signed(6, 0);
Reshape_out1(7) <= In1_signed(7, 0);
Reshape_out1(8) <= In1_signed(8, 0);
Reshape_out1(9) <= In1_signed(9, 0);
Reshape_out1(10) <= In1_signed(0, 1);
...

  • Измените блок с FOR-GENERATE цикл (Unroll for Generate Loops for VHDL code отключен):

Reshape_out1GEN_LABEL1: FOR d1 IN 0 TO 1 GENERATE
  Reshape_out1GEN_LABEL: FOR d0 IN 0 TO 9 GENERATE
     Reshape_out1(d0 + (d1*10)) <= In1_signed(d0, d1);
  END GENERATE;
END GENERATE;

Советы

  • Если вы используете инструмент автоматизации электронного проектирования (EDA), который не поддерживает GENERATE циклы, выберите опцию развертывания цикла, чтобы не использовать циклы из вашего сгенерированного кода VHDL.

  • Установка опции развертывания цикла не влияет на результаты, полученные из симуляции или синтеза сгенерированного кода VHDL.

Зависимость

Эта опция включена, когда выходной язык является VHDL.

Сгенерируйте параметрированный HDL-код от подсистемы маскированной

Сгенерируйте допускающий повторное использование HDL-код для подсистем, которые имеют те же настраиваемые параметры маски, но с различными значениями.

Настройки

Значение по умолчанию: Off

On

Сгенерируйте один допускающий повторное использование файл HDL для нескольких подсистем маскированных, которые имеют различные значения для параметров маски. HDL Coder поддерживает скаляр, вектор и матричные значения как параметры маски. HDL Coder обнаруживает подсистемы, которые имеют настраиваемые параметры маски, которые с обеспечением совместного доступа.

В подсистеме можно использовать параметр маски только в блоках и перечисленных в таблице параметрах.

Блок ПараметрОграничение
Постоянный Constant value на вкладке Main в диалоговом окне'none'
УсилениеGain на вкладке Main в диалоговом окнеParameter data type должен быть тем же самым для всех блоков Усиления.
Off

Сгенерируйте отдельный файл HDL для каждой подсистемы маскированной.

Информация о командной строке

Свойство: MaskParameterAsGeneric
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'off'

Чтобы установить это свойство, используйте функции hdlset_param или makehdl. Чтобы просмотреть значение свойства, используйте функцию hdlget_param.

Ограничения для значений параметров маски

  • Каждое значение должно быть скаляром, вектором или матрицей.

  • Значения не должны быть комплексными.

  • Значения не должны быть перечисленными данными.

Смотрите также

Сгенерируйте повторно используемый код для подсистем

Схема кодирования перечислимого типа

Задайте схему кодирования, чтобы представлять перечисляемые типы в сгенерированном HDL-коде.

Настройки

Значение по умолчанию: default

Используйте default, onehot, twohot, или binary схема кодирования, чтобы представлять перечислимые типы в сгенерированном HDL-коде.

default

Генератор кода использует десятичное кодирование в перечислимых типах Verilog и VHDL-native в VHDL. Этот пример показывает фрагмент кода Verilog этой схемы кодирования для Stateflow® Chart, который имеет четыре состояния.

parameter 
is_Chart_IN_s_idle = 2'd0, 
is_Chart_IN_s_rx = 2'd1, 
is_Chart_IN_s_wait_0 = 2'd2, 
is_Chart_IN_s_wait_tb = 2'd3;

onehot

Генератор кода использует схему прямого кодирования, где одним битом является high представлять каждую перечислимую величину. Этот пример показывает фрагмент кода Verilog этой схемы кодирования для Chart Stateflow, который имеет четыре состояния.

parameter 
is_Chart_IN_s_idle = 4'b0001, 
is_Chart_IN_s_rx = 4'b0010, 
is_Chart_IN_s_wait_0 = 4'b0100, 
is_Chart_IN_s_wait_tb = 4'b1000;
Эта схема кодирования не поддерживает больше, чем 64 перечислимые величины или количества состояний.

twohot

Генератор кода использует 2D горячую схему кодирования, где двумя битами является high представлять каждую перечислимую величину. Этот пример показывает фрагмент кода Verilog этой схемы кодирования для Chart Stateflow, который имеет четыре состояния.

parameter 
is_Chart_IN_s_idle = 4'b0011, 
is_Chart_IN_s_rx = 4'b0101, 
is_Chart_IN_s_wait_0 = 4'b0110, 
is_Chart_IN_s_wait_tb = 4'b1001;

binary

Генератор кода использует бинарную схему кодирования, чтобы представлять каждую перечислимую величину. Этот пример показывает фрагмент кода Verilog этой схемы кодирования для Chart Stateflow, который имеет четыре состояния.

parameter 
is_Chart_IN_s_idle = 2'b00, 
is_Chart_IN_s_rx = 2'b01, 
is_Chart_IN_s_wait_0 = 2'b10, 
is_Chart_IN_s_wait_tb = 2'b11;

В VHDL сгенерированный код использует CONSTANT типы, чтобы закодировать перечислимые величины не по умолчанию в сгенерированном коде. Например, этот фрагмент кода показывает сгенерированный код VHDL, когда вы используете 2D горячее кодирование состояния для Chart Stateflow, который имеет четыре состояния.

 PACKAGE s_pkg IS
  -- Constants
  -- Two-hot encoded enumeration values for type state_type_is_Chart
  CONSTANT IN_s_idle         : std_logic_vector(3 DOWNTO 0) := 
    "0011";
  CONSTANT IN_s_rx           : std_logic_vector(3 DOWNTO 0) := 
    "0101";
  CONSTANT IN_s_wait_0       : std_logic_vector(3 DOWNTO 0) := 
    "0110";
  CONSTANT IN_s_wait_tb      : std_logic_vector(3 DOWNTO 0) := 
    "1001";

END s_pkg;

Информация о командной строке

Свойство: EnumEncodingScheme
Ввод: символьный вектор
Значение: 'default' | 'onehot' | 'twohot''binary'
Значение по умолчанию: 'default'

Чтобы установить это свойство, используйте функции hdlset_param или makehdl. Чтобы просмотреть значение свойства, используйте функцию hdlget_param.

Для просмотра документации необходимо авторизоваться на сайте