7系列selectio之IOBUF(四)


1IOBUF

IOBUF是可以实现单端信号的输入与输出,将T置为高电平则禁用输出,表示输入。

image.png

”DRIVE“描述输出强度,对于 LVCMOS 和 LVTTL 输出缓存,可以使用 DRIVE 属性指定驱动能够安全地驱动到有效逻辑电平(以 mA 为单位)的负载。默认为12mA。

image.png

”IOSTANDARD“是添加I/O标准的约束,这个可以在xdc中以约束语句set_property添加也可以在这里添加,例如约束为LVCMOS12,则可写为LVCMOS12

”SLEW“该属性描述的是对于输出BUF提供可选的斜率,支持LVCMOS、LVTTL, SSTL、HSTL、MOBILE_DDR、HSUL和lvds的输出buf。斜率的设定有“SLOW”和“FAST”两种情况,默认的是“SLOW”,在速率不高的情况下应选择“SLOW”,以免产生信号反射。

  IOBUF #(
     .DRIVE(12), // Specify the output drive strength
     .IBUF_LOW_PWR("TRUE"),  // Low Power - "TRUE", High Performance = "FALSE"
     .IOSTANDARD("DEFAULT"), // Specify the I/O standard
     .SLEW("SLOW") // Specify the output slew rate
  ) IOBUF_inst (
     .O(O),     // Buffer output
     .IO(IO),   // Buffer inout port (connect directly to top-level port)
     .I(I),     // Buffer input
     .T(T)      // 3-state enable input, high=input, low=output
  );

2IOBUF_DCIEN

IOBUF_DCIEN原语下图所示,由于包含了DCI,所以仅适用于HP I/O BANK。IBUFDISABLE端口可以用于在使用期间屏蔽输入buf。可以通过DCITERMDISABLE来手动禁用DCI功能, 这里添加的终端电阻是split-termination终端电阻,也就是戴维南式的。

image.png

  1. 当USE_IBUFDISABLE属性设置为TRUE并且IBUFDISABLE信号为高电平时,禁用输入buf并将输入buf的输出O引脚强制设置为逻辑高电平。

  2. 如果USE_IBUFDISABLE设置为FALSE,则忽略该输入信号,并将其连接到地。

  3. 当I/O使用分割终端(split-termination)DCI特性时,该原语在DCITERMDISABLE信号为高电平时禁用终端电阻。

  4. 只有三态DCI I/O标准可以用于双向信号。在三态DCI I/O标准中,当驱动器处于活动状态时,DCI终端电阻关闭。

  5. IOBUF_DCIEN原语允许在DCITERMDISABLE信号为高电平时进一步禁用终端电阻。

通过组合这些特性,可以在输入信号空闲一段时间时降低功耗。这意味着当输入信号处于闲置状态时,可以通过禁用输入缓冲器、强制设置输出为逻辑高电平和关闭终端电阻等功能,实现功耗的降低

  IOBUF_DCIEN #(
     .DRIVE(12), // Specify the output drive strength
     .IBUF_LOW_PWR("TRUE"),  // Low Power - "TRUE", High Performance = "FALSE"
     .IOSTANDARD("DEFAULT"), // Specify the I/O standard
     .SLEW("SLOW"),          // Specify the output slew rate
     .USE_IBUFDISABLE("TRUE") // Use IBUFDISABLE function, "TRUE" or "FALSE"
  ) IOBUF_DCIEN_inst (
     .O(O),     // Buffer output
     .IO(IO),   // Buffer inout port (connect directly to top-level port)
     .DCITERMDISABLE(DCITERMDISABLE), // DCI Termination enable input
     .I(I),     // Buffer input
     .IBUFDISABLE(IBUFDISABLE), // Input disable input, high=disable
     .T(T)      // 3-state enable input, high=input, low=output
  );

3IOBUF_INTERMDISABLE

如下图原语可用于HR BANK,IBUFDISABLE能够禁用输入使能,INTERMDISABLE可以禁用输入终端电阻。

image.png

  1. 当将USE_IBUFDISABLE属性设置为TRUE并且IBUFDISABLE信号为高电平时,可以禁用输入缓冲器并将输出O引脚强制设置为逻辑高电平。

  2. 如果USE_IBUFDISABLE设置为FALSE,则会忽略该输入信号,并应将其连接到地。

  3. 如果I/O使用了可选的未校准分割终端特性(IN_TERM),则在驱动器处于活动状态(T为低电平)时,这些终端电阻会被禁用。

  4. 该原语还允许在INTERMDISABLE信号被设置为高电平时禁用终端电阻。

上述特性可以结合使用,以在输入信号空闲一段时间时降低功耗。

  IOBUF_INTERMDISABLE #(
     .DRIVE(12), // Specify the output drive strength
     .IBUF_LOW_PWR("TRUE"),  // Low Power - "TRUE", High Performance = "FALSE"
     .IOSTANDARD("DEFAULT"), // Specify the I/O standard
     .SLEW("SLOW"),          // Specify the output slew rate
     .USE_IBUFDISABLE("TRUE") // Use IBUFDISABLE function, "TRUE" or "FALSE"
  ) IOBUF_INTERMDISABLE_inst (
     .O(O),     // Buffer output
     .IO(IO),   // Buffer inout port (connect directly to top-level port)
     .I(I),     // Buffer input
     .IBUFDISABLE(IBUFDISABLE), // Input disable input, high=disable
     .INTERMDISABLE(INTERMDISABLE), // Input termination disable input
     .T(T)      // 3-state enable input, high=input, low=output
  );

4IOBUFDS

如下图是差分形式的输入/输出原语,当T为高电平则禁用输出buf。

image.png

  IOBUFDS #(
     .DIFF_TERM("FALSE"),     // Differential Termination ("TRUE"/"FALSE")
     .IBUF_LOW_PWR("TRUE"),   // Low Power - "TRUE", High Performance = "FALSE"
     .IOSTANDARD("BLVDS_25"), // Specify the I/O standard
     .SLEW("SLOW")            // Specify the output slew rate
  ) IOBUFDS_inst (
     .O(O),     // Buffer output
     .IO(IO),   // Diff_p inout (connect directly to top-level port)
     .IOB(IOB), // Diff_n inout (connect directly to top-level port)
     .I(I),     // Buffer input
     .T(T)      // 3-state enable input, high=input, low=output
  );






快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~

有建议、有需求、有疑问、联系我

<