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

滄小海的《xilinx的A7系列晶片資源學習筆記》之第一部分:I/O BANK(一)

目錄

2 I/O BANK

2.2 IB的邏輯資源

2.2.1 ILOGIC


這部分內容主要參考是《ug471》,該使用者指南主要有三章內容,其中第二章闡述IOB的電氣特性及相關標準,第三章闡述常規的輸入輸出暫存器、DDR操作以及可程式設計輸入延遲(IDLEAY)和可程式設計輸出延遲(ODELAY)等。第四章講述高階應用SERDES,即“ISERDESE2”和“OSERDESE2”。本文主要講述第三章和第四章內容。

如下圖藍框部分是FPGA的IOB部分,在Xilinx的,FPGA的輸出訊號在做完邏輯處理後會經過該部分的進一步處理輸出,輸入訊號則經過該部分處理輸入進行邏輯運算。這部分包含很多功能模組,例如IN/OUT_FIFO、PHASER_IN/OUT_PHY、各種BUF、IDELAYCTRL、ISERDESE2、OSERDESE2、IDELAYE2以及引腳相關配置。但不是這些內容都會用到,還是看具體需求。

接下來就對一些模組進行詳細闡述,對不怎麼用到的(其實是我不熟悉的)做個大概介紹。


2.1 I/O BANK

FPGA以bank的形式組織在一起,每個BANK的引腳都可以設定不同的電平標準。而且引腳還分為HP和HR不同的BANK,它們之間的不同如下表所示。《UG471

HP和HR的不同結構,主要HR少了一個“ODELAYE2”模組。

每個BANK的引腳又是以兩兩一組的組織形式存在,這樣方便做差分訊號及相關處理。

我們對單個引腳放大,如下圖所示。A是引腳,每一個引腳都有其特定的編號,B和C是相關的控制,一組引腳的這兩個模組的不同組合可以形成不同的BUF,例如I/OBUF、IOBUF和IOBUFDS等等。另外這裡面可以設定上下拉,是通過XDC或者原語實現。

原語的“I/O Components”裡面藍框內容是相關Buffers,這些就是

而這些的實現主要是靠上面所說的“B”和“C”。

2.2 IB的邏輯資源

這部分可以說是與I/O驅動相關的邏輯資源,如下這部分內容。

主要有ILOGIC、IDELAY、IDELAYCTRL、OLOGIC和ODELAY這幾個部分。

2.2.1 ILOGIC

根據下圖可以看出,在一組引腳中有兩個紅框圈主的器件,這個器件是有兩個型別,一個ILOGIC2、一個是IDERDES2。具體這是什麼就看我們的應用了,例如用作ILOGIC2。

如下圖所示,是ILOGIC的兩種模式,對應《UG471》中的第107頁相關描述,第一個圖應該被稱為ILOGIC2,適用於HP,第二個圖是ILOGIC3,適用於HR。二者的區別在於LOGIC2比ILOGIC3少了一個“ZHOLD”,這玩意似乎可以使pad-to-pad保持時間為0,具體使這樣描述的“The ZHOLD delay is automatically matched to the internal clock-distribution delay, and when used, assures that the pad-to-pad hold time is zero.”。ILOGIC2邏輯資源包括了邊沿觸發D型發器、DDR模式輸入、同步和組合邏輯等,文章中主要闡述了DDR取樣。如果遮蔽了暫存器會以組合邏輯的形式直連FPGA邏輯中。

另外,DDR使雙沿資料取樣的意思。主要有三種模組,分別為“OPPOSITE_EDGE”、“SAME_EDGE”和“SAME_EDGE_PIPELINED”。對應的原語如下,如果我們呼叫該原語即可實現雙沿取樣。

1、“OPPOSITE_EDGE”模式的時序圖如下所示,是傳統的取樣方法,上升沿下降沿均取樣,並在即時期輸出。但這種方式輸出到FPGA邏輯資源不好取樣。

2、“SAME_EDGE”模式如下圖所示,這種模式與模式1的差別在於資料對齊了。

3、“SAME_EDGE_PIPELINED”是模式2的升級,我們發現更對齊了,DATA0和DATA1對齊。但我感覺意義不大。