Xilinx FPGA IBUFDS差分输入缓冲器详解:从原理到实战
创作时间:
作者:
@小白创作中心
Xilinx FPGA IBUFDS差分输入缓冲器详解:从原理到实战
引用
CSDN
1.
https://m.blog.csdn.net/qq_45910789/article/details/141898475
本文是一篇关于Xilinx FPGA中IBUFDS差分输入缓冲器的使用指南。文章详细介绍了IBUFDS的使用说明、实例化代码模板,并通过具体的使用示例和仿真结果,帮助读者更好地理解和掌握这一重要组件的使用方法。
前言
本文主要参考资料《Xilinx 7 Series FPGA and Zynq-7000 All Programmable SoC Libraries Guide for HDL Designs》(UG768,v14.7,2013年10月2日)。
一、原语使用说明
IBUFDS是一个支持低压差分信号的输入缓冲器,用于接收差分信号对(如LVDS),并将其转换为单端信号输出。它可以用于时钟信号、数据总线信号等。
差分输入:
IBUFDS
接受两个差分信号(差分信号正输入I和差分信号负输入IB)作为输入,并将其转换为单端输出(单端输出信号O)。
端口示意图如下:
逻辑表和端口描述:
I:差分信号的正输入;
IB:差分信号的负输入;
O:单端输出信号
I和IB端口信号极性相反,说明差分信号对正常工作,输入的差分信号有效。输出端口O输出0/1。
二、原语实例化代码模版
打开Vivado左侧导航栏中的"Language Templates",搜索“IBUFDS”,找到可直接调用的原语模块实例化代码
参数说明:
DIFF_TERM用于配置IBUFDS(输入差分缓冲器)或其他差分输入缓冲器的差分终端。
- "TRUE":启用差分终端。这会自动在差分输入端添加终端电阻,以减少信号噪声、反射并提高信号完整性。适用于需要高信号质量的应用场景。
- "FALSE":不启用差分终端。默认情况下不会添加终端电阻,通常用于对信号质量要求不高的应用或外部电路已经处理了终端匹配的情况。
-TERMIBUF_LOW_PWR用于控制缓冲器的功耗模式。
- "TRUE":启用低功耗模式。可以减少IBUFDS缓冲器的功耗,但低功耗模式通常会略微降低性能,但在大多数情况下,这种性能降低是微不足道的。
- "FALSE":启用最高性能模式。选择这个选项会使IBUFDS缓冲器以最高的性能运行,但功耗会增加。这个模式适合对性能要求很高的应用场景。
-IOSTANDARD用于指定IBUFDS的输入/输出标准。IOSTANDARD决定了信号的电平标准、驱动能力和信号的电气特性。
- "DEFAULT":使用FPGA工具默认的I/O标准。如果没有特别的要求,可以使用默认值较为通用的标准。
- 特定标准:根据实际应用需要,选择具体的I/O标准。具体的标准决定了电压电平和信号的兼容性。例如,"LVCMOS33"、"LVDS_25"、"HSTL_I"等。常见的I/O标准有LVCMOS (Low Voltage CMOS),"LVCMOS33"(3.3V CMOS标准)、"LVCMOS25"(2.5V CMOS标准)、"LVCMOS18"(1.8V CMOS标准);LVDS (Low Voltage Differential Signaling):"LVDS_25"(2.5V LVDS标准)、"LVDS_33"(3.3V LVDS标准)
三、使用示例
1.设计文件代码
module example_ibufds (
input wire rx_sysref_p, // 差分信号正输入
input wire rx_sysref_n, // 差分信号负输入
output wire rx_sysref // 单端输出信号
);
// IBUFDS 实例化
IBUFDS #(
.DIFF_TERM ("TRUE" ), // 启用差分终端以提高信号质量
.IBUF_LOW_PWR("TRUE" ), // 启用低功耗模式
.IOSTANDARD ("LVDS_25") // 指定 LVDS 2.5V I/O 标准
) IBUFDS_inst0 (
.O (rx_sysref ), // 缓冲器输出
.I (rx_sysref_p), // 差分正输入
.IB(rx_sysref_n) // 差分负输入
);
endmodule
2.仿真文件代码
`timescale 1ns / 1ps
module tb_example_ibufds();
// 测试平台中的信号定义
reg rx_sysref_p; // 差分信号正输入
reg rx_sysref_n; // 差分信号负输入
wire rx_sysref; // 单端输出信号
// 实例化 example_ibufds 模块
example_ibufds uut (
.rx_sysref_p(rx_sysref_p),
.rx_sysref_n(rx_sysref_n),
.rx_sysref(rx_sysref)
);
// 初始块,用于生成测试信号
initial begin
// 初始化信号
rx_sysref_p = 0;
rx_sysref_n = 1;
// 生成差分信号
#10;
rx_sysref_p = 1;
rx_sysref_n = 0;
#10;
rx_sysref_p = 0;
rx_sysref_n = 1;
#10;
rx_sysref_p = 1;
rx_sysref_n = 0;
#10;
rx_sysref_p = 0;
rx_sysref_n = 0;
#10;
rx_sysref_p = 1;
rx_sysref_n = 1;
#10;
rx_sysref_p = 0;
rx_sysref_n = 1;
#10;
rx_sysref_p = 1;
rx_sysref_n = 0;
#10;
$stop; // 停止仿真
end
endmodule
3.仿真结果
由于原文中没有提供仿真结果的具体图片或描述,因此这里无法展示仿真结果。建议读者根据上述代码自行进行仿真,以验证IBUFDS的正确使用。
热门推荐
本田XRV显示屏故障的原因及解决方法
PPT倒计时设置指南:四种实用方法详解
禁摩限摩VS市场大战:摩托车,存在是否合理?
煌煌大唐的历史分期:初唐、盛唐、中唐和晚唐怎么划分?
深度分析盘点!C罗距离生涯千球还差115球,梅西制造进球效率更高
用这个公式来算算你的基础代谢
华为手机锁屏功能设置全解析:保障隐私,提升安全
老年人装什么假牙比较好?70岁左右老人纠结装假牙固定的好还是活动的好就看过来!
秦始皇是一个怎样的君主?
新能源汽车B挡是什么意思?
每天喝咖啡超3杯 肠道大变样
梦碎!这三个城市,地铁无望了
男频十大网络文学小说作家,个个都是大神级
绿宝石代表什么?历史意义与象征寓意
中外文化与现代都市完美融合,外媒:国际旅行者必游之地
本田XRV仪表盘故障灯亮起,应该如何解决?
全球航空运力或面临新挑战
吴语传承的必要性:文化价值、社会价值、语言价值、经济价值
HRBP、COE、SSC如何分工协作?一文讲透三支柱模型落地逻辑
探秘四川金口河大峡谷水上公路:特色、历史与旅游指南
DeepSeek给普通人的存钱建议:所有存钱方法中,这条最重要。
胃胀气患者能吃面条吗?医生给出专业建议
edge浏览器怎么倍速看视频? edge浏览器免费倍速播放网页视频的方法
怎么清除底噪并提升音质效果?这种底噪清除方法有哪些注意事项?
学生时间管理指南:从评估优先事项到自我保健
如何解套多单并管理投资风险?这种风险管理方法有哪些实际应用?
108.9亿沙特医药品市场,中国企业的新航道
“双减”背景下提升小学科学核心素养的策略与实践
多家ST股票官宣“摘星脱帽”,投资者如何判断是否值得买入?
win10检测不到打印机怎么办 试试这5个方法