UltraScaleC UltraScale FPGA中IODelay相比7Series FPGA的改變
IODelay是Xilinx FPGA IO結(jié)構(gòu)內(nèi),一個(gè)很有用處的單元,至少?gòu)腟partan6/Virtex5時(shí)代開始,就已經(jīng)集成了這一技術(shù),在很多高速接口互聯(lián)時(shí),我們都可能找到IODelay的用武之地。在最新的Ultrascale系列FPGA中,IODelay這一單元的具體用法,跟7Series中相比產(chǎn)生了一些變化。本文總結(jié)下,供讀者參考。
本文引用地址:http://www.ex-cimer.com/article/201807/383580.htm1. 7Series FPGA中IODelay的用法
在7Series中,IODelay都需要配合IOdelayCtrl來(lái)使用。其延遲步進(jìn)階數(shù)總共為64個(gè)Taps,每個(gè)Tap精度是tREFCLK/64。REFCLK提供3種設(shè)置,分別是200Mhz,300Mhz,和400Mhz,所以相對(duì)應(yīng)的延遲精度分別為:5ns/64=78ps,3.333ns/64=52ps,2.5ns/64=39ps。
2.在Ultrascale FPGA中
相比7Series,最大的區(qū)別是,IODelayCtrl補(bǔ)償時(shí),針對(duì)的是整個(gè)delayline,而不是單個(gè)的delay tap element。
IODelay提供了2種使用模式供用戶選擇,分別是TIME Mode和COUNT Mode
在TIME Mode中,延遲是加入了溫度補(bǔ)償?shù)?,因此延遲值比較精確。在COUNT Mode中,不配合使用IDelayCtrl,每個(gè)TAP的延遲值在2.5ps-15ps之間隨機(jī)不固定。一般我們都會(huì)使用TIME Mode,因此重點(diǎn)說(shuō)下這個(gè)Mode的使用方法。
在TIME Mode下,我們可以在IP配置初始時(shí)指定延遲的具體數(shù)值,單位是ps,范圍是0-1250ps。這種模式對(duì)應(yīng)的DELAY_TYPE屬性是FIXED。
如果在TIME Mode下,我們想動(dòng)態(tài)的調(diào)整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.
評(píng)論