7系列selectio之IOBUF(四)
1IOBUF
IOBUF是可以实现单端信号的输入与输出,将T置为高电平则禁用输出,表示输入。
”DRIVE“描述输出强度,对于 LVCMOS 和 LVTTL 输出缓存,可以使用 DRIVE 属性指定驱动能够安全地驱动到有效逻辑电平(以 mA 为单位)的负载。默认为12mA。
”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终端电阻,也就是戴维南式的。
当USE_IBUFDISABLE属性设置为TRUE并且IBUFDISABLE信号为高电平时,禁用输入buf并将输入buf的输出O引脚强制设置为逻辑高电平。
如果USE_IBUFDISABLE设置为FALSE,则忽略该输入信号,并将其连接到地。
当I/O使用分割终端(split-termination)DCI特性时,该原语在DCITERMDISABLE信号为高电平时禁用终端电阻。
只有三态DCI I/O标准可以用于双向信号。在三态DCI I/O标准中,当驱动器处于活动状态时,DCI终端电阻关闭。
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可以禁用输入终端电阻。
当将USE_IBUFDISABLE属性设置为TRUE并且IBUFDISABLE信号为高电平时,可以禁用输入缓冲器并将输出O引脚强制设置为逻辑高电平。
如果USE_IBUFDISABLE设置为FALSE,则会忽略该输入信号,并应将其连接到地。
如果I/O使用了可选的未校准分割终端特性(IN_TERM),则在驱动器处于活动状态(T为低电平)时,这些终端电阻会被禁用。
该原语还允许在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。
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
);
快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~
有建议、有需求、有疑问、联系我