新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > UltraScaleC UltraScale FPGA中IODelay相比7Series FPGA的改变

UltraScaleC UltraScale FPGA中IODelay相比7Series FPGA的改变

作者:时间:2018-07-24来源:网络收藏

IODelay是Xilinx IO结构内,一个很有用处的单元,至少从Spartan6/Virtex5时代开始,就已经集成了这一技术,在很多高速接口互联时,我们都可能找到IODelay的用武之地。在最新的Ultrascale系列中,IODelay这一单元的具体用法,跟7Series中相比产生了一些变化。本文总结下,供读者参考。

本文引用地址:http://www.eepw.com.cn/article/201807/383580.htm

1. 7Series 中IODelay的用法

在7Series中,IODelay都需要配合IOdelayCtrl来使用。其延迟步进阶数总共为64个Taps,每个Tap精度是tREFCLK/64。REFCLK提供3种设置,分别是200Mhz,300Mhz,和400Mhz,所以相对应的延迟精度分别为:5ns/64=78ps,3.333ns/64=52ps,2.5ns/64=39ps。

2.在Ultrascale FPGA中

相比7Series,最大的区别是,IODelayCtrl补偿时,针对的是整个delayline,而不是单个的delay tap element。

IODelay提供了2种使用模式供用户选择,分别是TIME Mode和COUNT Mode

在TIME Mode中,延迟是加入了温度补偿的,因此延迟值比较精确。在COUNT Mode中,不配合使用IDelayCtrl,每个TAP的延迟值在2.5ps-15ps之间随机不固定。一般我们都会使用TIME Mode,因此重点说下这个Mode的使用方法。

在TIME Mode下,我们可以在IP配置初始时指定延迟的具体数值,单位是ps,范围是0-1250ps。这种模式对应的DELAY_TYPE属性是FIXED。

如果在TIME Mode下,我们想动态的调整IODELAY的延迟值该怎么办呢?方法如下,首先需要把DELAY_TYPE属性配置成VARIABLE或者VAR_LOAD,然后遵循以下步骤:

①. Deassert (Low) the EN_VTC pin.

②. Wait a minimum of 10 clock cycles.

③. Use the CE and INC ports to increment or decrement the delay line.

④. Wait a minimum of 5 clock cycles.

⑤. (Option for multiple updates) Increment or decrement of the delayline needs to be performed. Go to step 3, or else proceed to step 6.

⑥. Wait a minimum of 10 clock cycles.

⑦. Assert the EN_VTC pin.



关键词: FPGA

评论


相关推荐

技术专区

关闭