Имена по умолчанию для портов HDL фильтра следующие:
HDL-порт | Имя порта по умолчанию |
---|---|
Input port | filter_in |
Выходной порт | filter_out |
Порт синхроимпорта | clk |
Порт включения синхроимпульса | clk_enable |
Порт сброса | reset |
Порт дробной задержки (только для фильтров Farrow) | filter_fd |
Для примера - объявление VHDL по умолчанию для сущностей filt
выглядит следующим образом.
ENTITY filt IS PORT( clk : IN std_logic; clk_enable : IN std_logic; reset : IN std_logic; filter_in : IN std_logic_vector (15 DOWNTO 0); -- sfix16_En15 filter_out : OUT std_logic_vector (15 DOWNTO 0); -- sfix16_En15 ); END filt;
Чтобы изменить имена портов,
Выберите вкладку Global Settings в диалоговом окне Сгенерировать HDL.
Выберите вкладку Ports на панели Additional settings. Следующий рисунок подчеркивает области имени порта для Input port, Output port, Clock input port, Reset input port, и Clock enable output port.
Введите новые векторы символов в поля имен портов.
Альтернатива командной строки: используйте generatehdl
функция со свойствами InputPort
, OutputPort
, ClockInputPort
, ClockEnableInputPort
, и ResetInputPort
для изменения имен портов фильтра в сгенерированном HDL-коде.
По умолчанию порты входных и выходных данных фильтра имеют тип данных std_logic_vector
в VHDL и введите wire
в Верилоге. Если вы генерируете VHDL- кода, также можно задать signed/unsigned
, и для выходных портов данных, Same as input data type
. Кодер применяет тип SIGNED
или UNSIGNED
на основе типа данных, заданного в создании фильтра.
Для изменения типа данных VHDL для портов входных и выходных данных,
Выберите вкладку Global Settings в диалоговом окне Сгенерировать HDL.
Выберите вкладку Ports на панели Additional settings.
Выберите тип данных из меню Input data type или Output data type, указанного на следующем рисунке.
По умолчанию выход данных совпадает с типом входных данных.
Тип портов Verilog wire
, и не может быть изменен.
Примечание
Установка Input data type не применяется к входу двойной точности, который генерируется как тип REAL
для VHDL и wire[63:0]
для Верилога.
Альтернатива командной строки: используйте generatehdl
функция со свойствами InputType
и OutputType
для изменения типа данных VHDL для портов входа и вывода.
По умолчанию сгенерированный HDL-код для регистров использует логику асинхронного сброса. Выберите асинхронную или синхронную логику сброса в зависимости от типа проектируемого устройства (для примера, FPGA или ASIC) и выбор.
Следующий фрагмент кода иллюстрирует использование асинхронных сбросов. Блок процесса не проверяет наличие активного синхроимпульса перед выполнением сброса.
delay_pipeline_process : PROCESS (clk, reset) BEGIN IF reset = '1' THEN delay_pipeline (0 To 50) <= (OTHERS => (OTHERS => '0')); ELSIF clk'event AND clk = '1' THEN IF clk_enable = '1' THEN delay_pipeline(0) <= signed(filter_in); delay_pipeline(1 TO 50) <= delay_pipeline(0 TO 49); END IF; END IF; END PROCESS delay_pipeline_process;
Чтобы изменить тип сброса на синхронный, выберите Synchronous
из меню Reset type на панели Global settings диалогового окна Генерация HDL.
Следующий код для синхронного сброса. Этот блок процесса проверяет наличие события синхроимпульса, восходящего ребра, перед выполнением сброса.
delay_pipeline_process : PROCESS (clk, reset) BEGIN IF rising_edge(clk) THEN IF reset = '1' THEN delay_pipeline (0 To 50) <= (OTHERS => (OTHERS => '0')); ELSIF clk_enable = '1' THEN delay_pipeline(0) <= signed(filter_in); delay_pipeline(1 TO 50) <= delay_pipeline(0 TO 49); END IF; END IF; END PROCESS delay_pipeline_process;
Альтернатива командной строки: используйте generatehdl
функция со свойством ResetType
для установки стиля сброса для регистров в сгенерированном HDL-коде.
Заданный уровень входного сигнала сброса определяет, должен ли этот сигнал управляться до активного высокого (1) или активного низкого (0), чтобы регистры были сброшены в создании фильтра. По умолчанию кодер устанавливает заданный уровень на активный высокий. Например, следующий фрагмент кода проверяет, reset
ли активно высоко перед заполнением
delay_pipeline
зарегистрироваться:
Delay_Pipeline_Process : PROCESS (clk, reset) BEGIN IF reset = '1' THEN delay_pipeline(0 TO 50) <= (OTHERS => (OTHERS => '0')); . . .
Чтобы изменить настройку на активный низкий, выберите Active-low
из меню Reset asserted level на панели Global settings диалогового окна Генерация HDL.
С помощью этого изменения IF
оператор в предыдущем сгенерированном коде изменяется на
IF reset = '0' THEN
Примечание
Настройка Reset asserted level также определяет уровень сброса для испытательного стенда входных сигналов сброса.
Альтернатива командной строки: используйте generatehdl
функция со свойством ResetAssertedLevel
для установки заданного уровня для входного сигнала сброса.
Для некоторых приложений FPGA желательно избегать генерации сбросов. Опция Remove reset from на панели Global settings диалогового окна Generate HDL позволяет подавить генерацию сбросов из регистров сдвига.
Чтобы подавить генерацию сбросов из регистров сдвига, выберите Shift register
из выпадающего меню Remove reset from на панели Global settings диалогового окна Генерация HDL.
Если вы не хотите подавлять генерацию сбросов из регистров сдвига, оставьте Remove reset from значение по умолчанию, что None
.
Альтернатива командной строки: используйте generatehdl
функция со свойством RemoveResetFrom
подавить генерацию сбросов из регистров сдвига.