7系列selectio之DELAYE相关
IDELAYE2
每个引脚都有对应的IDELAY2模块,如下图所示,它的作用就是对输入信号进行指定时间的延迟。
这个“IDLEAYE2”是可旁路的,可以直接从IOB到LOGICE2,也可以经IDELAYE2。
如下图是IDLEAYE2的原语,简单介绍下各个参数和接口信号
一、参数部分
1、CINVCTRL_SEL:
调整输入时钟“C”的极性。
2、DELAY_SRC
数据源的选择,是内部数据还是来自IO的数据。也就是“DATAIN”和“IDATAIN”选择
3、HIGH_PERFORMANCE_MODE
减少输出抖动,默认~
4、IDELAY_TYPE
用来设置延时类型,有FIXED、VARIABLE、VAR_LOAD和VAR_LOAD_PIPE四种。主要分为三类,一是FIXED是设置抽头延迟值固定为IDELAY_VALUE属性设置确定的抽头数,配置后无法更改。二是VARIABLE是将其设置为可变抽头,可以通过设置CE = 1和INC = 1来增加,也可以通过CE = 1和INC = 0来减少,递增/递减操作与C同步。三是VAR_LOAD和VAR_LOAD_PIPE,当IDELAY_TYPE属性设置为VAR_LOAD或VAR_LOAD_PIPE时,可变抽头延迟可以更改并动态加载。可以通过设置CE = 1和INC = 1来增加抽头延迟,或者通过CE = 1和INC = 0来减小抽头延迟,递增/递减操作与C同步。在此模式下,LD引脚加载CNTVALUEIN中显示的值。VAR_LOAD模式或先前在VAR_LOAD_PIPE模式下写入管道寄存器的值。 这样可以动态设置抽头值。
5、PIPE_SEL
通道模式选择。仅当使用VAR_LOAD_PIPE操作模式时,才应将此属性设置为TRUE。
6、REFCLK_FREQUENCY
设置时序分析器用于静态时序分析的抽头值,可以为 190到210、290 到310,390到410这几种,但不同系列不一定都能设置,例如A7就不能设置390到410MHZ。
7、SIGNAL_PATTERN
时钟和数据信号具有不同的电气特性,因此在IDELAY链中累积了不同的抖动量。 通过设置SIGNAL_PATTERN属性,用户可以使时序分析器在计算时序时适当考虑抖动。 时钟信号本质上是周期性的,没有连续的1或0的长序列,而数据本质上是随机的,并且可以具有1和0的长序列和短序列。
8、IDELAY_VALUE
IDELAY_VALUE属性指定抽头延迟的初始数量。可能的值为0到31之间的任何整数。默认值为零。 重置抽头延迟时(通过置位LD引脚),抽头延迟的值将恢复为IDELAY_VALUE。 在可变模式下,此属性确定延迟线的初始设置。 在VAR_LOAD或VAR_LOAD_PIPE模式下,不使用此属性,因此延迟线的初始值始终为零。
二、接口信号部分
1、CNTVALUEOUT
用于报告已加载的抽头值。
2、DATAOUT
经过延迟的数据输出
3、C
IDELAYE2原语的所有控制输入(REGRST,LD,CE和INC)都与时钟输入(C)同步。当以VARIABLE,VAR_LOAD或VAR_LOAD_PIPE模式配置IDELAY时,必须将时钟连接到该端口。 C可以在本地取反,并且必须由全局或区域时钟缓冲器提供。 如果ODELAYE2原语与IDELAYE2原语在同一I / O库中使用,则C必须对两个原语使用相同的时钟网络。
4、CE和INC
可参考参数设置的“IDELAY_TYPE”部分说明
5、CINVCTRL
CINVCTRL引脚用于动态切换C引脚的极性。 这是在毛刺不是问题的应用中使用的。 切换极性时,请勿在两个时钟周期内使用IDELAY控制引脚。
6、CNTVALUEIN
CNTVALUEIN引脚用于动态切换可加载抽头值
7、DATAIN和IDATAIN
是输入信号,DATAIN是来自IOB,IDATAINDATAIN输入由FPGA逻辑直接驱动,提供逻辑可访问的延迟线。
8、LD
在VARIABLE模式下,LD加载由IDELAY_VALUE属性设置的值。IDELAY_VALUE属性的默认值为零。
在VAR_LOAD模式下,LD加载由CNTVALUEIN设置的值。
在VAR_LOAD_PIPE模式,IDELAY加载端口LD加载当前在管道寄存器中的值。 流水线寄存器中存在的值将是新的抽头值。
使用默认值时,LD端口充当ILDELAY的异步复位。LD信号为高电平有效信号,并与输入时钟信号(C)同步。
9、LDPIPEEN
使能加载pipeline register
10、REGRST
在VAR_LOAD_PIPE模式下,复位pipeline register。
例如使用IDLEAY2的“FIXED”模式
REFCLK_FREQUENCY设为200M,IDELAY_VALUE这为0,可看下时序图如下,无相位差
DELAY_VALUE=1,相差78ps
DELAY_VALUE=2,相差156ps
DELAY_VALUE=31,相差2418ps
故延时公式为(以PS为单位)((1000/(REFCLK_FREQUENCY*2))/32)* IDELAY_VALUE
2.2.3 IDELAYCTRL
每一个BANK都有一个IDELAYCTRL,如下图所示,用来对该BANK的所有IDLEAYE2和ODLEAYE2的校准。在实例化I/ODELAY2后就必须实例化IDELAYCTRL用于校准。
如下是IDELAYCTRL的原语
IDELAYCTRL IDELAYCTRL_inst (
.RDY(RDY), // 1-bit output: Ready output
.REFCLK(REFCLK), // 1-bit input: Reference clock input
.RST(RST) // 1-bit input: Active high reset input
);
1、RST:
高电平异步复位,如下图是要求的复位时序,复位释放后延时一段时间将RDY信号拉高表示复位完成。
2、RDY:
表示IDELAYCTRL的校准功能可用了,一般RDY信号拉高后我们可以接收IDELAY的信号,但需注意,如果参考时钟连续几个周期的高电平或低电平出现,如上图所示,RDY信号就会被拉到,我们需要复位,待时钟稳定后,RDY信号会拉高。
3、REFCLK
输入信号,参考时钟。这个参考时钟并非I/O DELAY的输入时钟,而是由BUFG或BUFH产生的时钟,且设定值也不是可以随意给的,要求是190-210, 290-310,390-410这三个范围之间。A7系列只能前两个
快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~
有建议、有需求、有疑问、联系我