滄小海的《xilinx的A7系列晶片資源學習筆記》之第一部分:I/O BANK(二)
2.2.2 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的校準。
時序圖如下所示,高電平復位,時鐘即為延時所用的時鐘。
2.2.4 OLOGIC
如下圖所示,每個IOB都有一個OLOGICE2,對於HP則是OLOGICE3。
如下圖可以看出OLOGIC的兩條輸出路徑,一是經過觸發器,另一是邏輯輸出。
主要闡述下輸出的DDR模式,這個與IOGICE2類似。原語如下:
DDR_CLK_EDGE:
可以選擇"OPPOSITE_EDGE" 和"SAME_EDGE"