学习笔记——SPARTAN 6 系列IO资源学习笔记

本文详细介绍了Spartan-6FPGA的IO资源,包括支持的单端和差分I/O标准,如LVCMOS、LVDS等。讨论了管脚约束,如管脚绑定、电平标准、驱动强度以及上拉/下拉/保持电阻。此外,还提到了差分终端电阻的使用和IOBs的供电电压管理。文章强调了在设计中正确配置VCCO、VCCINT和VCCAUX电源以及VREF引脚的重要性。
摘要由CSDN通过智能技术生成

学习笔记——SPARTAN 6 系列IO资源学习笔记

参考:《Spartan-6 FPGA SelectIO Resources》User Guide

1.IO资源介绍

所有Spartan-6 fpga都具有可配置的高性能SelectIO驱动器和接收器,支持各种标准接口。每个IOB都包含输入、输出和3态SelectIO驱动程序。这些驱动程序可以配置为各种I/O标准。
•单端I/O标准(LVCMOS, LVTTL, HSTL, SSTL, PCI)
•差分I/O标准(LVDS, RSDS, TMDS,差分HSTL和SSTL)
•差分和VREF输入由VCCAUX提供电源

电路设计为差分输入时,可以选择使用片上或者外部的终端电阻。当Vccaux = 3.3V时,片上差分终止指定为标称值100Ω,当VCCAUX = 2.5V时,可以使用片上差分端接,但需要指定更宽的电阻范围。具体数值请参见《Spartan-6 FPGA Data Sheet》。下图显示了为Spartan-6 fpga中实现的差分接收器使用可选差分终止或外部终止电阻的示例:
在这里插入图片描述
Spartan-6 fpga只有Bank0和Bank2可以用作差分输出,所有Bank均可用作差分输入。
使用片上查分终止电阻原语:

NET<I/O_NAME> DIFF_TERM = "<TRUE/FALSE>";

Xilinx软件库包括一个广泛的原语列表,以支持各种I/O标准。下面是代表大多数可用的单端I/O标准的五个通用原语名称:
• IBUF (input buffer,输入缓冲器)
• IBUFG (clock input buffer,时钟输入缓冲器)
• OBUF (output buffer,输出缓冲器)
• OBUFT (3-state output buffer,三态输出缓冲器)
• IOBUF (input/output buffer,输入/输出缓冲器)
在这里插入图片描述
大多数可用的差分I/O标准的五个通用原语名称:
• IBUFDS (input buffer)
• IBUFGDS (clock input buffer)
• IBUFDS_DIFF_OUT (input buffer with inverted output,带反向输出的输入缓冲器)
• IBUFGDS_DIFF_OUT (clock input buffer with inverted output)
• OBUFDS (output buffer)
• OBUFTDS (3-state output buffer)
• IOBUFDS (input/output buffer)
在这里插入图片描述

2.管脚约束

2.1管脚绑定:

NET <I/O_NAME> LOC = "<EXTERNAL_PORT_IDENTIFIER>";				  //example: NET MY_IO LOC = R7;

2.2管脚电平标准约束:

NET <I/O_NAME> IOSTANDARD = ”< OSTANDARD VALUE>”;

IOSTANDARD对于单端I/O的默认值是LVCMOS25,对于差分I/O的默认值是LVDS_25。

2.3输出驱动强度属性

对于LVTTL和LVCMOS输出缓冲区(OBUF、OBUFT和IOBUF),可以使用drive属性指定所需的驱动器强度(mA)。
约束原语:

NET <I/O_NAME> DRIVE = "<DRIVE_VALUE>";			//DRIVE_VALUE = 2,4,6,8,12,16,24

LVCMOS12只支持2、4、6、8和12 mA DRIVE设置,LVCMOS15只支持2、4、6、8、12和16 mA DRIVE设置。

2.4 IBUF, OBUFT,和IOBUF的上拉/下拉/保持

当使用3态输出(OBUFT)或双向(IOBUF)缓冲器时,输出可以有一个弱的上拉电阻,一个弱的下拉电阻,或一个弱的“保持”电路。对于输入(IBUF)缓冲器,输入可以有一个弱的上拉电阻或一个弱的下拉电阻。

NET <I/O_NAME> <PULLUP/PULLDOWN/KEEPER>;

2.5 差分终端电阻

差分终止(DIFF_TERM)属性是为Spartan-6 FPGA支持的差分输入I/O标准设计的。它用于打开或关闭内置的100Ω差分终端。前面提到当VCCAUX = 2.5V时,可以使用片上差分端接。

NET <IO_NAME> DIFF_TERM = "<TRUE/FALSE>";

3. IOBs的供电电压

IOBs可以通过三个主要FPGA供电(VCCINT、VCCO和vccaux)的组合供电,有时也可以通过双用途VREF引脚供电。VCCO电源,每个I/O组一个,为输出驱动器和一些输入驱动器供电。VCCO引脚上的电压决定输出信号的电压摆幅。所有VCCO引脚应连接到电路板上的电源轨道。如果某个bank未使用,连接VCCO引脚到一个可用的VCCAUX或VCCO上。VCCINT是FPGA内部逻辑的主要电源,VCCINT还支持一些可用的输入驱动程序。VCCAUX是用于各种Spartan-6 FPGA功能的辅助电源,包括一些I/O电路。为了满足完整的直流电平并正确供电,一些输入和输出电路需要将VCCAUX限制在正确的VCCAUX电压电平。VCCAUX电压等级可设置为2.5V或3.3V。

CONFIG VCCAUX = “<2.5/3.3>”;

4.I/O标准bank的兼容性

Spartan-6 fpga允许在同一设备中组合多个I/O标准。虽然输出总是由VCCO供电,但在五个可能的VCCO值之一下可以使用多个标准。此外,输入通常不需要匹配施加到VCCO的电压,在单个器件中使用多个VCCO电平可以实现进一步的灵活性。

每组I/O具有独立的VCCO和VREF。这允许每个bank在VCCO和VREF水平上独立于其他bank的设置。VCCO主要为I/O输出缓冲区提供电源,VREF为HSTL和SSTL输入提供参考电压。VCCO引脚是专用的电源引脚,必须始终使用PCB上的电压轨供电。然而,VREF引脚是双重用途引脚,它们可以用作常规I/O引脚或VREF供电引脚。当某个bank使用VREF供电输入时(例如,对于SSTL或HSTL标准),设计必须使用VREF引脚为FPGA的内部VREF轨提供参考电压。如果SSTL或HSTL输入不用于组中,则该组中的VREF引脚可以用作常规I/O引脚。

4.1在分配I/Obank时,VCCO必须遵循以下规则:

  1. 必须连接FPGA上的所有VCCO引脚,即使一组未使用。
  2. 在一个组内关联的所有VCCO线路必须设置为相同的电压水平。
  3. 分配给任何给定bankI/O的所有标准所使用的VCCO水平必须一致,Xilinx开发软件对此进行检查。
  4. 如果bank没有VCCO要求,将VCCO连接到可用的电压上,如2.5V或3.3V。一些配置模式有额外的VCCO要求。

4.2当指定给bank输入的标准使用VREF时,则必须遵循以下附加规则:

  1. 所有VREF引脚必须在一个银行内连接。
  2. 与该bank相关的所有VREF线必须设置为相同的电压水平。
  3. 分配给bank输入的所有标准使用的VREF水平必须一致,Xilinx开发软件对此进行检查。

5.上电和配置时的I/O引脚

VCCINT (1.2V), VCCAUX和VCCO电源可以按任何顺序应用。在FPGA开始配置过程之前, VCCINT、VCCO Bank 2和VCCAUX必须达到数据表中所示的各自的最低推荐工作电平。此时,所有输出驱动器都处于高阻抗状态。VCCO Bank 2、VCCINT和VCCAUX作为内部上电复位(POR)电路的输入。

HSWAPEN引脚控制从上电到完成配置的所有用户I/O引脚上的内部上拉电阻。在配置过程中,应用于HSWAPEN引脚的低电平使能内部上拉电阻。HSWAPEN引脚本身包含一个内部上拉电阻,当悬空时默认为高。因此,为了在完成配置之前使能用户I/O引脚上的内部上拉电阻,必须将HSWAPEN引脚直接连接到GND,或者由板上的其他设备强制拉低。

一旦通电,FPGA就开始初始化其配置内存。同时,FPGA内部断言全局设置重置(GSR)异步重置所有IOB存储元素到默认的Low状态。

初始化完成并开始配置后,INIT_B输出高电平,对M0和M1输入进行采样以确定配置模式。然后将配置数据加载到FPGA中。在整个配置过程中,I/O驱动器保持在高阻抗状态(有或没有上拉电阻,由HSWAPEN输入决定)。

默认情况下,Xilinx ISE开发工具自动将所有未使用的I/O引脚配置为输入引脚,并带有单独的内部下拉电阻到GND。
在某些情况下,不使用FPGA中的一个或多个I/O组,在这些情况下,可能希望将bank相关的VCCO引脚断开连接,以释放一些PCB布局限制(减少焊盘对电源和接地平面的影响,减少信号进出引脚阵列的障碍,确保更多的铜面积)。让未使用的I/O组的VCCO引脚浮动会降低这些引脚和组中的I/O引脚上的ESD保护水平。为了在未使用的组中获得最大的ESD保护,该组中的所有VCCO和I/O引脚都应该连接到相同的电位上,无论是接地、有效的VCCO电压还是浮动平面。

6. 待续……

Spartan-3 系列架构由以下五个基本的可编程功能单元组成: • 可配置逻辑模块 (CLB) 包含灵活的查找表 (LUT),这些查找表用来实现用作触发器或 锁存器的逻辑单元和存储单元。CLB 可以执行多种逻辑功能,并且可以存储数据。 • 输入 / 输出模块 (IOB) 控制器件的 I/O 引脚与内部逻辑之间的数据流。IOB 支持双向数 据流和三态操作。支持多种信号标准,包括若干高性能差分标准。包括双倍数据速率 (DDR) 寄存器。 • Block RAM 提供 18Kb 双端口模块形式的数据存储。 • 乘法器模块接受两个 18 位二进制数字作为输入,并且计算乘积。Spartan-3A DSP 系 列包括专用的 DSP 乘累加模块。 • 数字时钟管理器 (DCM) 模块为时钟信号的分配、延迟、倍频、分频和相移提供自校准 的全数字解决方案。 以 Spartan-3A 阵列为例,这些单元的组织方式如图 1-1 所示。在 Spartan-3 和 Spartan-3A/3AN/3A DSP 系列中,IOB 呈双环形交错排列在规则的 CLB 阵列周围。 Spartan-3E 平台的 IOB 呈单环形顺次排列。每列 Block RAM 由若干个 18Kb 的 RAM 模块 组成。每个 Block RAM 与一个专用乘法器关联。DCM 的定位方式是器件上端和下端各两 个,较大器件的侧边上也有 DCM。 Spartan-3 系列具有完整的内部连线网络,这些连线将所有的内部功能互连在一起,使信 号可以传送到器件的任何地方。每个功能单元都有相关的开关矩阵网络,可以实现多重的 内部互连。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值