写在前面
攻其事必先利其器,本文主要翻译节选自UG471,主要对7系列的xilinx FPGA IO资源的buffer源语进行简要说明,了解buffer的基本结构。
7 系列 FPGA SelectIO原语
Xilinx 软件库包含大量原语,以支持 7 系列 FPGA I/O 原语中可用的各种 I/O 标准。 以下通用原语都可以支持大多数可用的单端 I/O 标准。
- IBUF(输入缓冲器)
- IBUF_IBUFDISABLE(具有缓冲器禁用控制的输入缓冲器)
- IBUF_INTERMDISABLE(具有缓冲器禁用和IN_TERM禁用控制的输入缓冲器)
- IBUFG(时钟输入缓冲器)
- IOBUF(双向缓冲器)
- IOBUF_DCIEN(具有DCI禁用的双向缓冲器 和输入缓冲器禁用)
- IOBUF_INTERMDISABLE(双向缓冲器,带有 IN_TERM 禁用和输入缓冲器禁用)
- OBUF(输出缓冲器)
- OBUFT(三态输出缓冲器)
这八个通用原语都可以支持大多数可用的差分 I/O 标准:
- IBUFDS(差分输入缓冲器)
- IBUFDS_DIFF_OUT(具有互补输出的差分输入缓冲器)
- IBUFDS_DIFF_OUT_IBUFDISABLE(具有互补输出和缓冲器禁用的差分输入缓冲器)
- IBUFDS_DIFF_OUT_INTERMDISABLE(具有互补输出、缓冲器禁用和 IN_TERM 禁用的差分输入缓冲器)
- IBUFDS_IBUFDISABLE ( 带缓冲器禁用控制的差分输入缓冲器)
- IBUFDS_INTERMDISABLE(不同 具有缓冲器禁用和 IN_TERM 禁用的 ial 输入缓冲器)
- IBUFGDS(差分时钟输入缓冲器)
- IBUFGDS_DIFF_OUT(具有互补输出的差分时钟输入缓冲器)
- IOBUFDS(差分双向缓冲器)
- IOBUFDS_DCIEN(具有 DCI 禁用和输入缓冲器禁用的差分双向缓冲器 )
- IOBUFDS_DIFF_OUT(具有来自输入缓冲器的互补输出的差分双向缓冲器)
- IOBUFDS_DIFF_OUT_DCIEN(具有来自输入缓冲器的互补输出的差分双向缓冲器,具有 DCI 禁用和输入缓冲器禁用)
- IOBUFDS_DIFF_OUT_INTERMDISABLE(具有来自输入缓冲器的互补输出的差分双向缓冲器 带 IN_TERM 禁用和缓冲器禁用)
- IOBUFDS_INTERMDISABLE(带缓冲器禁用和 IN_TERM 禁用的差分双向缓冲器)
- OBUFDS(差分输出缓冲器)
- OBUFTDS(差分三态输出缓冲器)
IBUF and IBUFG
用作 7 系列设备输入的信号必须使用输入缓冲器 (IBUF)。 通用 7 系列 FPGA IBUF 原语如下图所示。
IBUF 和 IBUFG 原语是相同的。 当输入缓冲器用作时钟输入时使用 IBUFG。 在赛灵思软件工具中,一个 IBUFG 自动放置在时钟输入位置。
IBUF_IBUFDISABLE
下图所示的 IBUF_IBUFDISABLE 原语是一个带有禁用端口的输入缓冲器,可在不使用输入时用作额外的节能功能。
当 USE_IBUFDISABLE 属性设置为 TRUE 并且 IBUFDISABLE 信号被置为高电平时,IBUF_IBUFDISABLE 原语可以禁用输入缓冲器并强制到结构的 O 输出为逻辑高电平。 如果 USE_IBUFDISABLE 设置为 FALSE,此输入将被忽略并应接地。 此功能可用于在 I/O 空闲时降低功耗。 使用 VREF 电源轨(如 SSTL 和 HSTL)的输入缓冲器从 IBUFDISABLE 设置为 TRUE 中获益最多,因为它们往往具有比非 VREF 标准(如 LVCMOS 和 LVTTL)更高的静态功耗。
IBUF_INTERMDISABLE
下图中所示的 IBUF_INTERMDISABLE 原语在 HR I/O bank 中可用,它与 IBUF_IBUFDISABLE 原语相似,因为它有一个 IBUFDISABLE 端口,可用于在不使用缓冲区期间禁用输入缓冲区 . IBUF_INTERMDISABLE 原语还有一个 INTERMDISABLE 端口,可用于禁用可选的未校准拆分终端功能。
当 USE_IBUFDISABLE 属性设置为 TRUE 并且 IBUFDISABLE 信号置为高电平时,IBUF_INTERMDISABLE 原语可以禁用输入缓冲器并强制到结构的 O 输出为逻辑高电平。 如果 USE_IBUFDISABLE 设置为 FALSE,此输入将被忽略并应接地。 如果 I/O 使用可选的未校准拆分终端功能 (IN_TERM),则只要驱动器处于活动状态(T 为低电平),这些终端脚就会被禁用。 IBUF_INTERMDISABLE 原语还允许在 INTERMDISABLE 信号被置为高电平时禁用终端支路。
每当输入空闲时,这些功能可以结合起来降低功耗。 使用 VREF 电源轨(如 SSTL 和 HSTL)的输入缓冲器从 IBUFDISABLE 信号设置为 TRUE 中获益最多,因为它们往往具有比非 VREF 标准(如 LVCMOS 和 LVTTL)更高的静态功耗。
IBUFDS and IBUFGDS
差分原语对应的用法和规则与单端 SelectIO 原语类似。 差分 SelectIO 基元有两个引脚与器件焊盘相连,以显示差分对中的 P 和 N 通道引脚。 N 通道引脚具有 B 后缀。 IBUFDS 和 IBUFGDS 原语相同,当差分输入缓冲器用作时钟输入时使用 IBUFGDS。下图显示了差分输入缓冲器原语。
IBUFDS_DIFF_OUT and IBUFGDS_DIFF_OUT
下图显示了具有互补输出(O 和 OB)的差分输入缓冲器原语。 IBUFDS_DIFF_OUT 和 IBUFGDS_DIFF_OUT 原语相同,IBUFGDS_DIFF_OUT 用于时钟输入。 这些原语仅推荐给有经验的赛灵思设计人员使用。
IBUFDS_DIFF_OUT_IBUFDISABLE
下图中所示的 IBUFDS_DIFF_OUT_IBUFDISABLE 原语是一个差分输入缓冲器,具有互补差分输出和一个禁用端口,可在不使用输入时用作额外的节能功能。
当 USE_IBUFDISABLE 属性设置为 TRUE 且 IBUFDISABLE 信号置为高电平时,IBUFDS_DIFF_OUT_IBUFDISABLE 原语可以禁用输入缓冲器并强制 O 和 OB 输出到结构高电平。 如果 USE_IBUFDISABLE 设置为 FALSE,此输入将被忽略并应接地。 此功能可用于在 I/O 空闲时降低功耗。
IBUFDS_IBUFDISABLE
下图所示的 IBUFDS_IBUFDISABLE 原语是一个差分输入缓冲器,带有一个禁用端口,可在不使用输入时用作额外的节能功能。
当 USE_IBUFDISABLE 属性设置为 TRUE 并且 IBUFDISABLE 信号被置为高电平时,IBUFDS_IBUFDISABLE 原语可以禁用输入缓冲器并强制到架构的 O 输出为逻辑高电平。 如果 USE_IBUFDISABLE 设置为 FALSE,此输入将被忽略并应接地。 此功能可用于在 I/O 空闲时降低功耗。
IBUFDS_INTERMDISABLE
下图中所示的 IBUFDS_INTERMDISABLE 原语在 HR I/O bank 中可用,它与 IBUFDS_IBUFDISABLE 原语类似,因为它有一个 IBUFDISABLE 端口,可用于在缓冲区未运行期间禁用输入缓冲区 用过的。 IBUFDS_INTERMDISABLE 原语还有一个 INTERMDISABLE 端口,可用于禁用可选的未校准拆分终端功能。
当 USE_IBUFDISABLE 属性设置为 TRUE 并且 IBUFDISABLE 信号置为高电平时,IBUFDS_INTERMDISABLE 原语可以禁用输入缓冲区并强制 O 输出到结构高电平。 如果 USE_IBUFDISABLE 设置为 FALSE,则 IBUFDISABLE 输入将被忽略并应接地。 如果 I/O 使用可选的未校准拆分终端功能 (IN_TERM),则只要 INTERMDISABLE 信号置为高电平,此原语就会禁用终端支路。 每当输入空闲时,这些功能都可以结合起来降低功耗。
IBUFDS_DIFF_OUT_INTERMDISABLE
下图中显示的 IBUFDS_DIFF_OUT_INTERMDISABLE 原语在 HR I/O bank 中可用,它与 IBUFDS_IBUFDISABLE 原语相似,因为它有一个IBUFDISABLE 端口,可用于在不使用缓冲区期间禁用输入缓冲区。 IBUFDS_DIFF_OUT_INTERMDISABLE 原语还有一个 INTERMDISABLE 端口,可用于禁用可选的未校准拆分终端功能。
当 USE_IBUFDISABLE 属性设置为 TRUE 并且 IBUFDISABLE 信号置为高电平时,IBUFDS_DIFF_OUT_INTERMDISABLE 原语可以禁用输入缓冲区并强制 O 和 OB 输出到结构高电平。 如果 USE_IBUFDISABLE 设置为 FALSE,则 IBUFDISABLE 输入将被忽略并应接地。 如果 I/O 使用可选的未校准拆分终端功能 (IN_TERM),则只要 INTERMDISABLE 信号置为高电平,此原语就会禁用终端支路。每当输入空闲时,这些功能都可以结合起来降低功耗。
IOBUF
当双向信号需要输入缓冲器和具有高电平有效三态 T 引脚的三态输出缓冲器时,需要 IOBUF 原语。 下图显示了一个通用的 7 系列 FPGA IOBUF。 T 引脚上的逻辑高电平禁用输出缓冲器。
IOBUF_DCIEN
下图所示的 IOBUF_DCIEN 原语在 HP I/O bank 中可用。 它有一个 IBUFDISABLE 端口,可用于在不使用缓冲区期间禁用输入缓冲区。 IOBUF_DCIEN 原语还有一个 DCITERMDISABLE 端口,可用于手动禁用可选的 DCI 拆分终止功能。
当 USE_IBUFDISABLE 属性设置为 TRUE 且 IBUFDISABLE 信号置为高电平时,IOBUF_DCIEN 原语可以禁用输入缓冲器并强制到架构的 O 输出为逻辑高电平。 如果 USE_IBUFDISABLE 设置为 FALSE,此输入将被忽略并应接地。 如果 I/O 使用分离端接 DCI 功能,则只要 DCITERMDISABLE 信号被置为高电平,该原语就会禁用端接支路。 只有三态 DCI I/O 标准可用于双向信号。
使用三态 DCI I/O 标准,只要驱动器处于活动状态,DCI 终端支路就会关闭。 IOBUF_DCIEN 原语还允许在 DCITERMDISABLE 信号被置为高电平时禁用终端支路。 只要输入空闲一段时间,这些功能就可以结合起来降低功耗。