端口和重置
命名HDL端口
过滤器HDL端口的默认名称如下:
高密度脂蛋白的港口 | 默认端口名称 |
---|---|
输入端口 | filter_in |
输出端口 | filter_out |
时钟端口 | clk |
时钟使能端口 | clk_enable |
重新设置端口 | 重置 |
分数延迟端口(仅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);filt结束;
修改端口名称
选择全局设置选项卡上的生成HDL对话框。
选择港口页中的附加的设置窗格。下图突出显示了的端口名称字段输入端口,输出端口,时钟输入接口,复位输入口,时钟使能输出端口.
在端口名称字段中输入新的字符向量。
选择命令行:使用generatehdl
函数的属性InputPort
,OutputPort
,ClockInputPort
,ClockEnableInputPort
,ResetInputPort
在生成的HDL代码中更改过滤器端口的名称。
为数据端口指定HDL数据类型
缺省情况下,过滤器输入和输出数据端口具有数据类型std_logic_vector
在VHDL和类型线
Verilog。如果您正在生成VHDL代码,您也可以指定签署/无符号
,对于输出数据端口,与输入数据类型相同
.编码器应用类型签署
或无符号
基于筛选器设计中指定的数据类型。
要更改输入和输出数据端口的VHDL数据类型设置,
选择全局设置选项卡上的生成HDL对话框。
选择港口页中的附加的设置窗格。
控件中选择数据类型输入数据类型或输出数据类型菜单,如下图所示。
默认情况下,输出数据类型与输入数据类型相同。
Verilog端口类型为
线
,并且不能被改变。请注意
的设置输入数据类型不适用于双精度输入,这是生成的类型
真正的
用于VHDL和线(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 PROCESS delay_pipeline_process;
如果要更改重置类型为同步,请选择同步
从重置类型菜单中的全局设置面板的生成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 PROCESS delay_pipeline_process;
选择命令行:使用generatehdl
函数的属性ResetType
在生成的HDL代码中为寄存器设置重置样式。
设置复位输入信号的断言电平
复位输入信号的断言电平决定了该信号是否必须被驱动到有源高电平(1)或有源低电平(0),以便在滤波器设计中寄存器被重置。默认情况下,编码器将断言级别设置为活动高。例如,下面的代码片段检查是否重置
在填充delay_pipeline
注册:
Delay_Pipeline_Process: PROCESS (clk, reset) BEGIN IF reset = '1' THEN delay_pipeline(0 TO 50) <= (OTHERS => (OTHERS => '0'));……
若要将设置更改为活动低,请选择校验
从重置断言级别菜单中的全局设置面板的生成HDL对话框。
随着这一变化,如果
语句中生成的代码更改为
如果重置= '0'那么
请注意
的重置断言级别设置也决定了试验台复位输入信号的复位电平。
选择命令行:使用generatehdl
函数的属性ResetAssertedLevel
为复位输入信号设置断言的电平。
抑制复位逻辑的产生
对于某些FPGA应用,最好避免产生复位。的删除重置选项中的全局设置面板的生成HDL对话框,让您抑制产生重置从移位寄存器。
若要抑制移位寄存器产生重置,请选择移位寄存器
从删除重置的下拉菜单全局设置面板的生成HDL对话框。
如果不想抑制移位寄存器的重置生成,请离开删除重置设置为默认值,即没有一个
.
选择命令行:使用generatehdl
函数的属性RemoveResetFrom
抑制移位寄存器产生的重置。