首页 > 代码库 > Spartan6系列之SelectIO深入详解及高级应用简介
Spartan6系列之SelectIO深入详解及高级应用简介
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接口逻辑的时钟资源
Spartan6系列之SelectIO深入详解及高级应用简介