Задайте, использует ли сгенерированный код VHDL®
rising_edge
или falling_edge
функция, чтобы обнаружить переходы часов.
Значение по умолчанию: 'off'
Сгенерированный код использует VHDL 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;
Сгенерированный код использует '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
.
Оптимизируйте для debuggability путем сохранения промежуточных сигналов.
Свойство:
MinimizeIntermediateSignals |
Ввод: символьный вектор |
Значение:
'on' | 'off' |
Значение по умолчанию:
'off' |
Чтобы установить это свойство, используйте hdlset_param
или makehdl
. Чтобы просмотреть значение свойства, используйте hdlget_param
.
Сгладьте векторные порты в структуру скалярных портов в коде VHDL
Значение по умолчанию: '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 FOR
и GENERATE
циклы развернуты и не использованы из сгенерированного кода VHDL.
Значение по умолчанию: 'off'
Разверните и не используйте FOR
и GENERATE
циклы из сгенерированного кода VHDL. (В коде Verilog® всегда разворачиваются циклы.)
Включайте FOR
и GENERATE
циклы в сгенерированном коде VHDL.
Если вы используете инструмент автоматизации электронного проектирования (EDA), который не поддерживает GENERATE
циклы, выберите эту опцию, чтобы не использовать циклы из вашего сгенерированного кода VHDL.
Установка этой опции не влияет на результаты, полученные из симуляции или синтеза сгенерированного кода VHDL.
Эта опция включена, когда выходной язык (заданный опцией Language ) является VHDL.
Свойство:
LoopUnrolling |
Ввод: символьный вектор |
Значение:
'on' | 'off' |
Значение по умолчанию:
'off' |
Чтобы установить это свойство, используйте hdlset_param
или makehdl
. Чтобы просмотреть значение свойства, используйте hdlget_param
.
Сгенерируйте допускающий повторное использование HDL-код для подсистем теми же настраиваемыми параметрами маски, но различными значениями.
Значение по умолчанию: 'off'
Сгенерируйте один допускающий повторное использование файл HDL для нескольких подсистем маскированных с различными значениями для параметров маски. HDL Coder автоматически обнаруживает подсистемы настраиваемыми параметрами маски, которые с обеспечением совместного доступа.
В подсистеме можно использовать параметр маски только в следующих блоках и параметрах.
Блок | Параметр | Ограничение |
---|---|---|
Постоянный | Constant value на вкладке Main диалогового окна | 'none' |
Усиление | Gain на вкладке Main диалогового окна | Parameter data type должен быть тем же самым для всех блоков Усиления. |
Сгенерируйте отдельный файл 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
Генератор кода использует схему прямого кодирования, где один бит высок, чтобы представлять каждую перечислимую величину. Этот пример показывает 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 горячую схему кодирования, где два бита высоки, чтобы представлять каждую перечислимую величину. Этот пример показывает 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
.