学习笔记——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必须遵循以下规则:
- 必须连接FPGA上的所有VCCO引脚,即使一组未使用。
- 在一个组内关联的所有VCCO线路必须设置为相同的电压水平。
- 分配给任何给定bankI/O的所有标准所使用的VCCO水平必须一致,Xilinx开发软件对此进行检查。
- 如果bank没有VCCO要求,将VCCO连接到可用的电压上,如2.5V或3.3V。一些配置模式有额外的VCCO要求。
4.2当指定给bank输入的标准使用VREF时,则必须遵循以下附加规则:
- 所有VREF引脚必须在一个银行内连接。
- 与该bank相关的所有VREF线必须设置为相同的电压水平。
- 分配给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输入决定)。文章来源:https://www.toymoban.com/news/detail-768655.html
默认情况下,Xilinx ISE开发工具自动将所有未使用的I/O引脚配置为输入引脚,并带有单独的内部下拉电阻到GND。
在某些情况下,不使用FPGA中的一个或多个I/O组,在这些情况下,可能希望将bank相关的VCCO引脚断开连接,以释放一些PCB布局限制(减少焊盘对电源和接地平面的影响,减少信号进出引脚阵列的障碍,确保更多的铜面积)。让未使用的I/O组的VCCO引脚浮动会降低这些引脚和组中的I/O引脚上的ESD保护水平。为了在未使用的组中获得最大的ESD保护,该组中的所有VCCO和I/O引脚都应该连接到相同的电位上,无论是接地、有效的VCCO电压还是浮动平面。文章来源地址https://www.toymoban.com/news/detail-768655.html
6. 待续……
到了这里,关于学习笔记——SPARTAN 6 系列IO资源学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!