7系列selectio之IOBUF(二)
书接上回,继续7系列的IOBUF的解释说明。
1IBUFDS_DIFF_OUT and IBUFGDS_DIFF_OUT
IBUFDS_DIFF_OUT是一种差分输出的输入缓冲器原语,用于将差分信号从外部引脚输入到FPGA内部逻辑电路,并以差分的形式接收。
“DIFF_TERM”表示添加差分终端,Xilinx内置了100Ω的终端电阻,对于没有外接终端阻抗的,需要选为TRUE,以保证阻抗匹配。支持的IO标准有 LVDS 、LVDS_25 、MINI_LVDS_25 、PPDS_25和RSDS_25。
“IBUF_LOW_PWR”是为TURE表示使能低功耗允许,对于速率较低的,例如Xilinx建议的1.6Gbps,则应该使能低功耗。
“IOSTANDARD”是添加I/O标准的约束,这个可以在xdc中以约束语句set_property添加也可以在这里添加,例如约束为LVDS_25,则可写为LVDS_25。
IBUFDS_DIFF_OUT #( .DIFF_TERM("FALSE"), // Differential Termination, "TRUE"/"FALSE" .IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE" .IOSTANDARD("DEFAULT") // Specify the input I/O standard ) IBUFDS_DIFF_OUT_inst ( .O(O), // Buffer diff_p output .OB(OB), // Buffer diff_n output .I(I), // Diff_p buffer input (connect directly to top-level port) .IB(IB) // Diff_n buffer input (connect directly to top-level port) );
2IBUFDS_DIFF_OUT_IBUFDISABLE
也就是包含了使能信号的差分输入并以差分形式给到用户侧。
原语相较IBUFDS_DIFF_OUT多了一个”USE_IBUFDISABLE“使能信号。
IBUFDS_DIFF_OUT_IBUFDISABLE #( .DIFF_TERM("FALSE"), // Differential Termination, "TRUE"/"FALSE" .IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE" .IOSTANDARD("DEFAULT"), // Specify the input I/O standard .USE_IBUFDISABLE("TRUE") // Set to "TRUE" to enable IBUFDISABLE feature ) IBUFDS_DIFF_OUT_IBUFDISABLE_inst ( .O(O), // Buffer diff_p output .OB(OB), // Buffer diff_n output .I(I), // Diff_p buffer input (connect directly to top-level port) .IB(IB), // Diff_n buffer input (connect directly to top-level port) .IBUFDISABLE(IBUFDISABLE) // Buffer disable input, high=disable );
3IBUFDS_IBUFDISABLE
带有禁用功能的差分输入,单端输出给到下一级模块的原语。
参数与上述一致。
IBUFDS_IBUFDISABLE #( .DIFF_TERM("FALSE"), // Differential Termination .IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE" .IOSTANDARD("DEFAULT"), // Specify the input I/O standard .USE_IBUFDISABLE("TRUE") // Set to "TRUE" to enable IBUFDISABLE feature ) IBUFDS_IBUFDISABLE_inst ( .O(O), // Buffer output .I(I), // Diff_p buffer input (connect directly to top-level port) .IB(IB), // Diff_n buffer input (connect directly to top-level port) .IBUFDISABLE(IBUFDISABLE) // Buffer disable input, high=disable );
4IBUFDS_INTERMDISABLE
与IBUFDS_IBUFDISABLE相比多了一个终端电阻的禁用功能。
如果IBUFDISABLE为高电平,则禁用该引脚,输出”O“输出高电平。如果INTERMDISABLE为高电平,则禁用终端电阻,也就没有了阻抗匹配,所禁用的终端电阻类型为split-termination,也就是戴维南终端电阻。
IBUFDS_INTERMDISABLE #( .DIFF_TERM("FALSE"), // Differential Termination .IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE" .IOSTANDARD("DEFAULT"), // Specify the input I/O standard .USE_IBUFDISABLE("TRUE") // Set to "TRUE" to enable IBUFDISABLE feature ) IBUFDS_INTERMDISABLE_inst ( .O(O), // Buffer output .I(I), // Diff_p buffer input (connect directly to top-level port) .IB(IB), // Diff_n buffer input (connect directly to top-level port) .IBUFDISABLE(IBUFDISABLE), // Buffer disable input, high=disable .INTERMDISABLE(INTERMDISABLE) // Input Termination Disable );
5IBUFDS_DIFF_OUT_INTERMDISABLE
与IBUFDS_INTERMDISABLE类型,只不过是差分输入并输出。
IBUFDS_DIFF_OUT_INTERMDISABLE #( .DIFF_TERM("FALSE"), // Differential Termination, "TRUE"/"FALSE" .IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE" .IOSTANDARD("DEFAULT"), // Specify the input I/O standard .USE_IBUFDISABLE("TRUE") // Set to "TRUE" to enable IBUFDISABLE feature ) IBUFDS_DIFF_OUT_INTERMDISABLE_inst ( .O(O), // Buffer diff_p output .OB(OB), // Buffer diff_n output .I(I), // Diff_p buffer input (connect directly to top-level port) .IB(IB), // Diff_n buffer input (connect directly to top-level port) .IBUFDISABLE(IBUFDISABLE), // Buffer disable input, high=disable .INTERMDISABLE(INTERMDISABLE) // Input Termination Disable );
快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~
有建议、有需求、有疑问、联系我