Имена по умолчанию для портов HDL фильтра следующие:
Порт HDL | Имя порта по умолчанию |
---|---|
Входной порт | filter_in |
Выходной порт | filter_out |
Порт Clock | clk |
Часы включают порт | clk_enable |
Порт Reset | reset |
Дробный порт задержки (Опорос фильтрует только), | 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 на диалоговом окне Generate 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
в Verilog. Если вы генерируете код VHDL, альтернативно, можно задать signed/unsigned
, и для портов выходных данных, Same as input data type
. Кодер применяется, вводят SIGNED
или UNSIGNED
на основе типа данных, заданного в проекте фильтра.
Изменить настройки типа данных VHDL для портов входных и выходных данных,
Выберите вкладку Global Settings на диалоговом окне Generate HDL.
Выберите вкладку Ports в панели Additional settings.
Выберите тип данных из меню Input data type или Output data type, идентифицированного в следующей фигуре.
По умолчанию тип выходных данных совпадает с типом входных данных.
Тип для портов Verilog является wire
и не может быть изменен.
Установка Input data type не применяется с двойной точностью к входу, который сгенерирован как тип REAL
для VHDL и wire[63:0]
для Verilog.
Альтернатива командной строки: Используйте функцию 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 диалогового окна Generate 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 диалогового окна Generate 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 диалогового окна Generate HDL.
Если вы не хотите подавлять генерацию сброса от сдвиговых регистров, оставлять набор Remove reset from его значению по умолчанию, которое является None
.
Альтернатива командной строки: Используйте функцию generatehdl
со свойством RemoveResetFrom
подавить генерацию сброса от сдвиговых регистров.