1. 什么是I/O Tile?
對Spartan-6系列FPGA來說,一個IO Tile包括2個IOB、2個ILOGIC、2個OLOGIC、2個IODELAY。

圖 1Spartan-6系列IO Tile結構圖

圖 2Spartan-6 FPGA I/O Banks
1.1. IOB結構介紹
每個IOB包含了輸入、輸出、三態驅動器;這些驅動器可以配置為不同的電平標准如LVTTL、LVCMOS等;差分IO會用到1個IO Tile里的兩個IOB。
每個IOB都被直接連接到了ILOGIC和OLOGIC,ILOGIC和OLOGIC可以被配置成ISERDES或OSERDES,。

圖 3基本IOB結構圖
1.1.1. IOB內部終端電阻
高速IO電平標准的使用可以優化電平轉換特性和信號完整性,在高速IO電平標准中往往需要使用終端電阻。終端電阻的位置應該距離接收器越近越好。
Spartan-6 FPGA為差分IO和單端IO提供了片內終端電阻,這個終端電阻位於IOB內部,使用這些終端電阻,可以避免FPGA外部再引腳處再接電阻。
- 差分IO的終端電阻
Spartan-6系列為差分IO提供了100Ω的終端電阻,差分引腳的終端電阻可以通過約束文件使之使能或不使能。
圖 4差分引腳使能終端電阻
圖 5差分引腳不使能終端電阻
- 單端引腳終端電阻
單端引腳的輸入終端電阻和輸出阻抗都是可編程控制的,如下圖所示:左邊FPGA的輸出使能了50Ω的輸出阻抗,右邊的FPGA使能了輸入50%分壓電阻;在高速接口應用中,使能輸出阻抗可以減少電磁反射,Spartan-6系列FPGA輸出阻抗可選值為None、25Ω、50Ω、75Ω;輸入阻抗可設置為25%、50%、75%分壓。

圖 6單向SSTL接口使用片上終端電阻
1.1.2. IOB內部可例化的原語
IOB內部有多種輸入輸出緩沖資源(buffer resource),他們可以原語的形式調用,在Spartan-6系列里,單端IO標准的原語如下5個:
| 原語 |
功能 |
| IBUF |
輸入緩沖 |
| IBUFG |
時鍾輸入緩沖 |
| OBUF |
輸出緩沖 |
| OBUFT |
輸出三態緩沖 |
| IOBUF |
輸入輸出緩沖 |
同時有7個差分IO標准的原語
| 原語 |
功能 |
| IBUFDS |
輸入緩沖 |
| IBUFGDS |
時鍾輸入緩沖 |
| IBUFDS_DIFF_OUT |
取反輸出緩沖 |
| IBUFGDS_DIFF_OUT |
時鍾取反輸出緩沖 |
| OBUFDS |
輸出緩沖 |
| OBUFTDS |
三態輸出緩沖 |
| IOBUFDS |
輸入輸出IO緩沖 |
1.1.3. IOB內可用IO電平標准
IOB支持多種電平標准,用戶可以自由靈活地為自己的設計選擇合適的IO電平標准,Spartan-6系列支持的IO電平標准如下
| 標准 |
解釋 |
用途及廠商 |
輸入緩沖 |
輸出緩沖 |
| 單端IO電平標准 |
||||
| LVTTL |
Low Voltage TTL |
General purpose 3.3V |
LVTTL |
Push-Pull |
| LVCMOS |
Low Voltage CMOS |
General purpose |
CMOS |
Push-Pull |
| PCI |
Peripheral Component Interconnect |
PCI bus |
LVTTL |
Push-Pull |
| I2C |
Inter Integrated Circuit |
NXP |
CMOS |
Open drain |
| SMBUS |
System Management Bus |
Intel |
CMOS |
Open drain |
| SDIO |
Secure Digital Input Output |
SD Card Assoc, Memory Card |
CMOS |
Push-Pull |
| Mobile DDR |
Low Power DDR |
|
CMOS |
Push-Pull |
| HSTL |
High-Speed Transceiver Logic |
Hitachi SRAM; IBM; three of four classes supported |
Vref based |
Push-Pull |
| HSTL18 |
High-Speed Transceiver Logic |
Hitachi SRAM; IBM; three of four classes supported |
Vref based |
Push-Pull |
| SSTL3 |
Stub Series Terminated Logic for 3.3V |
SDRAM bus; Hitachi and IBM; two classes |
Vref based |
Push-Pull |
| SSTL2 |
SSTL for 2.5V |
DDR SDRAM |
Vref based |
Push-Pull |
| SSTL18 |
SSTL for 1.8V |
DDR SDRAM |
Vref based |
Push-Pull |
| SSTL15 |
SSTL for 1.5V |
DDR SDRAM |
Vref based |
Push-Pull |
| 差分IO電平標准 |
||||
| LVDS25 LVDS33 |
Low Voltage Differential Signaling |
High-speed interface, backplane, video; National, TI |
Differential Pair |
Differential Pair |
| BLVDS |
Bus LVDS |
Bidirectional, multipoint LVDS |
Differential Pair |
Pseudo Differential Pair |
| DISPLAY PORT |
Auxiliary channel interface for DISPLAY PORT |
Flat panel displays |
Differential Pair |
Pseudo Differential Pair |
| LVPECL |
Low Voltage Positive ECL |
High-speed clocks |
Differential Pair |
N/A |
| MINI_LVDS |
mini-LVDS |
Flat panel displays |
Differential Pair |
Differential Pair |
| RSDS |
Reduced Swing Differential Signaling |
Flat panel displays |
Differential Pair |
Differential Pair |
| TMDS |
Transition Minimized Differential Signaling |
Silicon Image; DVI/HDMI |
Differential Pair |
Differential Pair |
| PPDS |
Point-to-Point Differential Signaling |
LCDs |
Differential Pair |
Differential Pair |
| Differential Mobile DDR |
Differential LPDDR for CK/CK# |
|
Differential Pair |
Pseudo Differential Pair |
| DIFF_HSTL_I DIFF_HSTL_III DIFF_HSTL_IV DIFF_HSTL_I_18 DIFF_HSTL_III_18 DIFF_HSTL_IV_18 |
Pseudo Differential HSTL |
SRAM |
Differential Pair |
Pseudo Differential Pair |
| DIFF_SSTL3_I DIFF_SSTL3_II DIFF_SSTL2_I DIFF_SSTL2_II DIFF_SSTL18_I DIFF_SSTL18_II DIFF_SSTL15_II |
Pseudo Differential SSTL |
DDR, DDR2, DDR3 SDRAM |
Differential Pair |
Pseudo Differential Pair |
1.1.4. FPGA配置后未使用引腳狀態
在默認情況下,在FPGA配置完成后,所有未使用的引腳將被配置成輸入,並在IOB內部經下拉電阻接地,這種未使用引腳在配置后的狀態可以通過UnusedPin BitGen option進行設定。
1.2. SelectIO 的邏輯資源
SelectIO的邏輯資源包括基本資源和高級資源,其中,基本資源包括:
- Combinatorial input/output,組合輸入/輸出
- 3-state output control,三態輸出控制
- Registered input/output,寄存器輸入輸出
- Registered 3-state output control,寄存器三態輸出控制
- Double Data Rate (DDR) input/output,雙倍數據率輸入輸出
- DDR output 3-state control,雙倍數據率三態輸出控制
高級資源包括:
- IODELAY2,為用戶提供精准的延時控制
- NONE, C0, and C1 output DDR mode,輸出雙倍數據輸出
- NONE, C0, and C1 input DDR mode,輸入雙倍數據輸入
- ISERDES,輸入串並轉換
- OSERDES,輸出並串轉換
selectIOn邏輯資源被組合在一個IO Tile內部,如下圖所示,在單端模式中,master I/O buffer驅動P Pad,slave I/O buffer驅動N Pad;在差分模式中,master I/O buffer和slave I/O buffer組合起來使用,可以完成串並或者並串轉換。
圖 7一個I/OTile里的selectIO邏輯資源
1.3. Selection資源中可用的時鍾資源
所有IO的數據采集和轉換(包括串並轉換和並串轉換)、DDR傳輸等都需要一個內部SDR時鍾,為了實現這些功能,I/O接口Tile需要一個本地的時鍾倍頻器來獲取SDR時鍾。
進行DDR傳輸的倍頻器需要兩個輸入時鍾,這兩個輸入時鍾必須是下面三種情況之一:
- 一個全局時鍾和它的局部(IO接口資源里)取反時鍾
- 兩個相位相差180°的全局時鍾
- 兩個相位相差180°的I/O時鍾

圖 8IO接口邏輯的時鍾資源
