SelectIO资源

Spartan-6有丰富的I/O资源,包括SelectIO和RocketIO。

Spartan-6每个I/O片(Tile)包含两个IOB、两个ILOGIC2、两个OLOGIC2和两个IODELAY2,见图2-37。

在这一小节里,分以下几个方面介绍Spartan-6的SelectIO资源。

SelectIO的电气特性。SelectIO的逻辑资源(ILOGIC2、OLOGIC2)。SelectIO的高级逻辑资源(ISERDES、OSERDES、Bitslip)。 图2-37 I/O片结构图

一、 SelectIO IOB的电气特性

所有的Spartan-6 FPGA有高性能的可配置SelectIO驱动器与接收器,支持非常广泛的接口标准。可以通过编程控制I/O的输出强度、斜率以及片上终端OCT。

每个IOB包含输入、输出和三态SelectIO驱动器。这些驱动器可以按照各种I/O标准配置。

单端I/O标准(LVCMOS、LVTTL、HSTL、SSTL、PCI)。差分I/O标准(LVDS、RSDS、TMDS、差分HSTL和SSTL)。

注意:差分输入和VREF相关输入是由VCCAUX供电。

Xilinx软件库提供了很多Spartan-6 I/O的原语,包括用于单端信号的IBUF(输入缓冲器)、IBUFG(时钟输入缓冲器)、OBUF(输出缓冲器)、OBUFT(三态输出缓冲器)和IOBUF(输入/输出缓冲器);以及用于差分信号的IBUFDS(输入缓冲器)、IBUFGDS(时钟输入缓冲器)、OBUFDS(输出缓冲器)、OBUFTDS(三态输出缓冲器)和IOBUFDS(输入/输出缓冲器)。

二、 SelectIO的逻辑资源

SelectIO的逻辑资源是指I/O驱动器与接收器之后的逻辑,包含了Spartan-6 FPGA的所有基本I/O逻辑资源,如图2-38所示。其中包括的资源如下。

组合输入/输出。三态输出控制。寄存器输入/输出。寄存器三态输出控制。双倍数据速率(DDR)输入/输出。DDR输出三态控制。IODELAY2提供对高分辨率可调延迟单元的控制。支持NONE、C0和C1三种对齐模式的DDR输出。支持NONE、C0和C1三种对齐模式的DDR输入。ISERDES。OSERDES。 图2-38 I/O片内的SelectIO逻辑资源

一个I/O片(IOI)管理两个IOB。IOI包含两个单端输入/输出,或者一个差分输入/输出的完整电路和一个内部互联模块。两个IOB组合在一起是为支持高速的差分接口。

在单端模式下,主IOB驱动引脚P,从IOB驱动引脚N。在差分模式下,主从IOB组合在一起可以实现串并转换,其数据速率是单端模式下的1~2倍。每个I/O支持3种配置模式:锁存型I/O、非锁型I/O和寄存器型I/O。I/O还可以配置为2:1/3:1/4:1的SERDES。锁存/寄存器时钟来自GCLK驱动的全局时钟网络或者高速I/O时钟网络。

IODELAY2是一种可选资源,设计者可以根据需要在输入/输出路径上加入此延时模块,IODELAY2的延时是可编程的,可以通过DRP指定或者通过例化IODELAY2原语指定。此延时可以是固定延时,也可以是可变延时。

三、 ILOGIC2资源

图2-39所示为ILOGIC2逻辑框图,它可支持以下功能。

边沿触发D型触发器。IDDR(NONE、C0或C1)模式。锁存器。异步/组合逻辑。 图2-39 ILOGIC2逻辑框图

(1) 异步/组合逻辑。

当有下列情况之一时,软件会自动生成组合通路,使输入驱动器与FPGA内部逻辑资源直接连接。

FPGA的输入数据与内部逻辑直接相连,而没有用寄存器。“打包I/O寄存器/锁存器到IOB中”的属性设置为OFF。

(2) IDDR模式。

Spartan-6器件的ILOGIC2中有专用寄存器来实现输入双倍数据速率(DDR)寄存器。可以通过例化IDDR2的原语来使用此功能。

IDDR2的属性DDR_ALIGNMENT有3种模式:NONE、C0和C1。

在NONE模式下,输入DDR时序如图2-40所示。寄存器在C0上升沿将输入数据D寄存到Q0,C1上升沿将下一输入数据D寄存到Q1。

图2-40 DDR_ALIGNMENT=NONE时输入DDR时序示意图

在某些情况下,输入数据必须同步到一个时钟域里,通常C0同步。但是在频率比较高的情况下,这种同步相对比较困难,因为有效时间仅为时钟周期的一半(50%占空比的情况下)。Spartan-6器件中的IDDR2包含了专用的逻辑,可以在ILOGIC2内部进行时钟域的同步。

当DDR_ALIGNMENT为C0(或C1),信号Q0(Q1)在C1(C0)再次寄存,通过内部互联将输入数据同步到同一时钟域。时序图如图2-41所示。

图2-41 DDR_ALIGNMENT=C0\C1 的输入DDR

IDDR 的原语如图2-42 所示。

图2-42 IDDR2 的原语

四、 OLOGIC2 资源

如图2-43所示,OLOGIC2主要由两部分组成,分别是输出数据路径和三态控制路径。

这两个部分可以配置成以下模式。

边沿触发D 型触发器。DDR 模式(NONE、C0 或C1 同步方式)。电平敏感锁存器。异步/组合逻辑。 图2-43 OLOGIC2 逻辑模块

(1) 组合数据输出和三态控制路径。

当有下列情况之一时,软件会自动生成组合通路,将FPGA 内部数据直接输出到输出驱动器或驱动器的控制端。

FPGA 内部逻辑数据直接输出到输出驱动器或驱动器的三态控制端,而没有经过寄存器。“打包I/O 寄存器/锁存器到IOB 中”的属性设置为OFF。

(2) ODDR模式。

Spartan-6器件的OLOGIC2中具有专用寄存器,用来实现DDR输出寄存器。例化ODDR2原语可以使用此功能。当使用OLOGIC2时,会自动使用多路复用器,多路复用器的控制端产生于时钟信号,不需要手动控制。ODDR2 有两个时钟输入,相位差180°。

ODDR2 支持以下操作模式。

NONE 模式:允许设计人员在C0 和C1 时钟的上升沿将两个数据通过DDR多路复用器送至输出引脚,如图2-44所示。 图2-44 DDR_ALIGNMENT=NONE 下的ODDR2 C0模式:在时钟C0上升沿时,将两个数据通过DDR多路复用器送至输出引脚。C1模式:在时钟C1上升沿时,将两个数据通过DDR多路复用器送至输出引脚。

ODDR原语如图2-45所示。

图2-45 ODDR原语

五、 可编程延迟单元IODELAY2

每个IOB包含一个延时单元,可以配置成输入延时或者输出延时,当引脚用作双向口时,还可以通过T端来控制输入/输出延时的切换。Spartan-6中IODELAY2的延时不会自动补偿温度或电压带来的延时差异,但是用户可以通过精确计算,来设置IODELAY2的具体延时值。

图2-46所示为延时单元的结构图。8位延时值对应0~255个延时Tap,该延时值最低三位控制RING晶振的起始点。该晶振由输入信号触发,经过0~7个Tap的延时之后,其输出作为时钟,用来钟控5位计数器。5位计数器中装载了延时值的高5位,它会一直在0~31循环,直到它的输出翻转到最初输入到该模块时的输入值Data Input。延时精度范围为1~255TAP。

图2-46 延时单元的结构图

此延时单元有两个局限,第一,延时最大值为1个位周期,超过此限制,接收数据会出错;第二,在下一个边沿到来之前,必须完成对第一个边沿的处理,这种情况会发生在接收高速数据流时。

如何避免上述两个局限呢?

对于第一个限制,通过确保延时值小于一个输入数据的位周期(1UI)就可以避免,通常设置为0.5UI,使数据采样点位于眼图的中心。

对于第二个限制,可以通过图2-47所示的两个延时链解决。一个延迟链延时输入数据的正值部分,另一个延时链延时输入数据的负值部分,这个处理机制的价值在于:通过设置两个延迟链的不同延时值,校正了输入数据的占空比。读者可以在设计中调用IODRP2原语使用此功能。

图2-47 每个延时模块使用两个延时链

六、 SelectIO的高级特性

除了上述SelectIO资源之外,Spartan-6还提供了更高级的逻辑特性,介绍如下。

(1) 串并转换器ISERDES2。

图2-48和图2-49分别为ISERDES2接收串行数据时的逻辑框图和时序图,利用ISERDES2将串行数据接收为4位并行数据。从时序图中可以看到,Bitslip为4位数据的同步使能控制信号。

图2-48 ISERDES2逻辑框图 图2-49 ISERDES2时序图(1:4)

ISERDES2可以实现1:2、1:3或1:4串并转换器功能,而且通过级联的方式还可以实现1:5、1:6、1:7、1:8串并转换器功能。

(2) 并串转换器OSERDES2。

图2-50与图2-51分别为OSERDES2的逻辑框图和时序图,利用OSERDES2将4位并行数据转换为串行数据输出。
一个OSERDES2可以实现2:1、3:1、4:1并口转换功能。当用差分输出时,相关的2个IOB中的OSERDES2可以级联,从而可以实现5:1、6:1、7:1和8:1并串转换功能。

设计者可以在HDL设计中,例化ISERDES2/OSERDES2原语来实现输入数据解串和输出数据串行化操作。

利用这些资源,可以很方便地实现高速串行数据的收发,例如用它实现LVDS接口。

更多资料请参考附带光盘中的《Spartan-6 IO资源用户手册》。

图2-50 OSERDES2逻辑框图 图2-51 OSERDES2时序图(4:1)

点击打开链接

Spartan-6的SelectIO资源相关推荐

  1. Xilinx 7series FPGA SelectIO资源--ODDR

    OLOGIC 资源 OLOGIC块在FPGA内的位置紧挨着IOB,其作用是FPGA通过IOB发送数据到器件外部的专用同步块.OLOGIC 资源的类型有OLOGIC2(位于HP I/O banks)和O ...

  2. 赛灵思中文版技术文档资源汇总(持续更新)

    2022年8月21日更新: AI 引擎内核编码 最佳实践指南 (UG1079) v2022.1 Versal ACAP AI 引擎编程环境 用户指南 (UG1076) v2022.1 Vitis AI ...

  3. Virtex-6中的SelectIO模块

    SelectIO模块 Virtex-6每个I/O片(I/O Tile)包含两个IOB.两个ILOGIC.两个OLOGIC 和两个IODELAY,如图5-24 所示. 图5-24 I/O 片结构图 本小 ...

  4. xilinx7中管脚mrcc和srcc_Xilinx 7系列FPGA架构之SelectIO结构(一)

    引言:从本文开始我们介绍Xilinx 7系列FPGA的SelectIO资源结构及使用,我们在进行FPGA外设硬件及软件设计时,如ADC.PHY.DDR3等,通常会涉及到该资源.本节我们介绍以下知识点: ...

  5. 【正点原子FPGA连载】 第一章 MPSoC简介 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  6. Xilinx 7系列FPGA PCB设计指导(二)

    引言:我们继续介绍FPGA PCB设计相关知识,本章介绍7系列FPGA的配电系统(PDS),包括去耦电容器的选择.放置和PCB几何结构,并为每个7系列FPGA提供了一种简单的去耦方法.另外,还介绍了P ...

  7. Xilinx IOdelay--Virtex-5介绍

    前言 1.IDELAYCTRL原语 可以参考virtex-5用户手册 补充介绍,资料来自百度文库 2.IODELAY 3.IDELAYCTRL 参考文献     1. Xilinx SelectIO资 ...

  8. 【正点原子FPGA连载】第一章 ZYNQ简介 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  9. 穿越时空的爱恋-Z80 CPU的前世今生

    穿越时空的爱恋-Z80 CPU的前世今生 它是1976年推出时,与6502 CPU 一起,引发了一系列项目,导致了 80 年代初期的家用计算机革命.同时你能想象在CPU更新迭代速度这么快的时代,直到今 ...

最新文章

  1. android 提供服务,GitHub - FamliarMan/AndroidServiceProvider: 为模块化提供的一个服务发现库...
  2. 事关人类生存?为什么要探寻AI系统的可解释性?
  3. 关于随机验证码的一些小见解。
  4. 求旋转数组的最小数字C++
  5. spring中stereotype注解Component,Repository,Service,Controller
  6. root 进入ssh 出现问题
  7. 数据库设计_数据库设计(一)分析及逻辑设计
  8. MATLAB solve函数计算得到lambertw函数,用vpa转换即可
  9. mysql-generator用法_【原创】MyBatis Generator使用小记
  10. 用ZedGraph作图表(一)
  11. Borg Maze POJ - 3026 (BFS + 最小生成树)
  12. vue项目 构建 打包 发布 三部曲
  13. 七牛sdk 上传视频 - 前端
  14. 全网最简单Win10桌面美化教程,只需4步!!
  15. bzoj2101:[USACO2010 DEC]TREASURE CHEST 藏宝箱
  16. dubbo环境的简单搭建
  17. 阿里云ECS(centos)中安装Tomcat
  18. 操作系统设备管理知识点总结
  19. netstat -ano|findstr
  20. JVM基础知识学习笔记

热门文章

  1. java 判断数的位数_Java判断数字位数的两种方法
  2. go 通道 返回_GCTT 出品 | Go 语言的缓冲通道:提示和技巧
  3. pta 输出三角形字符阵列_PTA实验6-8 简单计算器 (20分)
  4. php自动post系统,php自动过滤POST,GET传参
  5. linux系统下如何github,Linux系统下如何安装和使用GitHub
  6. graphic头文件函数_graphics.h头文件详解
  7. Jasperreport导出pdf内容展示不完全处理
  8. eclipse java luna,java-如何在Eclipse Luna中配置Lombok
  9. 2021年春季学期-信号与系统-第七次作业参考答案-第一小题
  10. 2021年春季学期-信号与系统-第三次作业参考答案-第六道题