1. 程式人生 > 實用技巧 >滄小海的《xilinx的A7系列晶片資源學習筆記》之第一部分:I/O BANK(二)

滄小海的《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"