Стиль RTL

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

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

Настройки

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

На

Сгенерированный код использует VHDL функция falling_edge или rising_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'

На

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

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.

Порты вектора Scalarize

Сгладьте векторные порты в структуру скалярных портов в коде VHDL

Настройки

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

На

При генерации кода для векторного порта сгенерируйте структуру скалярных портов.

'off'

При генерации кода для векторного порта сгенерируйте определение типа и объявление порта для векторного порта.

Зависимость

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

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

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

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

Указания по применению

Свойство ScalarizePorts позволяет вам управлять, как HDL Coder генерирует код VHDL для векторных портов.

Например, считайте подсистему vsum в следующей фигуре.

По умолчанию ScalarizePorts является 'off'. Кодер генерирует определение типа и объявление порта для векторного порта In1 как следующее:

PACKAGE simplevectorsum_pkg IS
  TYPE vector_of_std_logic_vector16 IS ARRAY (NATURAL RANGE <>) 
     OF std_logic_vector(15 DOWNTO 0);
  TYPE vector_of_signed16 IS ARRAY (NATURAL RANGE <>) OF signed(15 DOWNTO 0);
END simplevectorsum_pkg;
.
.
.
ENTITY vsum IS
  PORT( In1     :  IN    vector_of_std_logic_vector16(0 TO 9);  -- int16 [10]
        Out1    :  OUT   std_logic_vector(19 DOWNTO 0)  -- sfix20
        );
END vsum;

Под VHDL ввод постановляет, что два типа, объявленные этим способом, не совместимы через модули проекта. Это может вызвать проблемы, если необходимо соединить интерфейсом с двумя или больше сгенерированными модулями VHDL кода.

Можно сгладить такой векторный порт в структуру скалярных портов путем включения ScalarizePorts в команде makehdl, как в следующем примере.

 makehdl(gcs,'ScalarizePorts','on')

Описывание ниже показывает сгенерированные порты.

ENTITY vsum IS
  PORT( In1_0                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_1                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_2                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_3                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_4                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_5                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_6                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_7                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_8                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_9                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        Out1                 :   OUT   std_logic_vector(19 DOWNTO 0)  -- sfix20
        );
END vsum;

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

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

Настройки

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

На

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

'off'

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

Совет

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

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

Зависимость

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

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

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

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

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

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

Настройки

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

На

Сгенерируйте один допускающий повторное использование файл HDL для нескольких подсистем маскированных с различными значениями для параметров маски. 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®, который имеет четыре состояния.

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

Генератор кода использует схему прямого кодирования, где один бит высок, чтобы представлять каждую перечислимую величину. Этот пример показывает verilog фрагмент кода этой схемы кодирования для диаграммы 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 горячую схему кодирования, где два бита высоки, чтобы представлять каждую перечислимую величину. Этот пример показывает verilog фрагмент кода этой схемы кодирования для диаграммы 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 фрагмент кода этой схемы кодирования для диаграммы 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 горячее кодирование состояния для диаграммы 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.