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深入详解及高级应用简介的更多相关文章

  1. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  2. Hexo系列(三) 常用命令详解

    Hexo 框架可以帮助我们快速创建一个属于自己的博客网站,熟悉 Hexo 框架提供的命令有利于我们管理博客 1.hexo init hexo init 命令用于初始化本地文件夹为网站的根目录 $ he ...

  3. RabbitMQ详解(一)------简介与安装(Docker)

    RABBITMQ详解(一)------简介与安装(DOCKER) 刚刚进入实习,在学习过程中没有接触过MQ,RabbitMQ 这个消息中间件,正好公司最近的项目中有用到,学习了解一下. 首先什么是MQ ...

  4. 官网实例详解-目录和实例简介-keras学习笔记四

    官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras   版权声明: ...

  5. yum的repo文件详解、以及epel简介、yum源的更换、常用yum命令

    https://www.cnblogs.com/nineep/p/6795692.html       yum的repo文件详解.以及epel简介.yum源的更换 常用命令如下: yum list  ...

  6. Signalr系列之虚拟目录详解与应用中的CDN加速实战

    目录 对SignalR不了解的人可以直接移步下面的目录 SignalR系列目录 前言 前段时间一直有人问我 在用SignalR 2.0开发客服系统[系列1:实现群发通讯]这篇文章中的"/Si ...

  7. 转载爱哥自定义View系列--文字详解

    FontMetrics FontMetrics意为字体测量,这么一说大家是不是瞬间感受到了这玩意的重要性?那这东西有什么用呢?我们通过源码追踪进去可以看到FontMetrics其实是Paint的一个内 ...

  8. 转载爱哥自定义View系列--Paint详解

    上图是paint中的各种set方法 这些属性大多我们都可以见名知意,很好理解,即便如此,哥还是带大家过一遍逐个剖析其用法,其中会不定穿插各种绘图类比如Canvas.Xfermode.ColorFilt ...

  9. kubernetes系列07—Pod控制器详解

    本文收录在容器技术学习系列文章总目录 1.Pod控制器 1.1 介绍 Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无 ...

随机推荐

  1. php删除数组中指定值的元素

    php删除数组中指定值的元素 /** * 删除数组中指定值的元素 * @author: ibrahim * @param array $arr 数组 * @param string $val 值 * ...

  2. vSphere,ESXi,vCenter之间的关系

    vSphere是什么? vSphere 是VMware公司公布的一整套产品包,包括类似于VMware ESXi hypervisor.VMware vCenter Server等产品 ESXi是什么? ...

  3. b-is-in- (1267, "Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='") SELECT id FROM qqzoneshuoshuo WHERE words=

    db-is-in- (1267, "Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci, ...

  4. QVariant(相当于是Java里面的Object,是万能的容器,但要注册)

    这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值 ...

  5. 查看jvm常用命令

    jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. jstat:一个极强 ...

  6. What does jQuery.fn mean?

    n jQuery, the fn property is just an alias to the prototype property. The jQuery identifier (or $) i ...

  7. 8-12 canvas专题-阶段练习一(上)

    8-12 canvas专题-阶段练习一(上) <!DOCTYPE html> <html lang="zh-cn"> <head> <me ...

  8. 推理集 —— death

    事故: 自杀: 他杀: 1. 跳楼 头向下死得比较快,没那么痛苦. 脚向下,不会立刻死亡,痛苦至极.死亡原因可能不是跳楼,而是失血过多而死 扑下去, 同头向下. 仰着跌下去,同头向下.. 跳楼最好头先 ...

  9. ORACLE分区表发挥性能

    1.1 分区表PARTITION table 在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能. 1.1.1 分区表的建立: 某公司的每年产生巨大的销售记录,DBA向公司建议 ...

  10. Flask的多app应用,多线程如何体现

    一.多app应用 在一个py文件中创建多个Flask的app对象 from werkzeug.wsgi import DispatcherMiddleware from werkzeug.servin ...