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的正确使用。
热门推荐
天津西北角小吃街:从早点到夜宵,吃货必打卡!
冬日打卡:天津五大道+古文化街+瓷房子
瘦西湖四季美如画,你最爱哪一季?
余秋雨解读:长白山的文化密码
秋冬打卡长白山:高铁直达泡温泉
长白山秋游攻略:避开雾季看天池
长白山深度游:打卡天池、瀑布和滑雪胜地!
宝宝吐奶,新手爸妈如何保持淡定?
妙佑医疗国际:宝宝吐奶全解析
长春市妇产医院教你正确应对宝宝吐奶
妙佑医疗国际推荐:科学喂养避免宝宝吐奶
宝宝吐奶频繁?当心是功能性呕吐!
天津早点火遍全网,西北角成打卡圣地
Nature子刊:阳丽华团队开发声动力学疗法,治疗幽门螺杆菌感染
运动后拉伸放松,这些小技巧你get了吗?
腹式呼吸、冥想和运动:助你远离焦虑
正念呼吸:简单5分钟,让身心彻底放松
等待心脏核磁共振结果:如何缓解焦虑与不安?
心脏核磁共振检查全流程解析:从准备到结果解读
农业农村经济运行稳中向好丨开创高质量发展新局面
纯棉毛巾十大品牌教你延长毛巾寿命
重视消化酶不足引起的消化不良,提高家庭用药管理水平
国际旅游达人“下场”分享眼中的上海 激发国际游客探索热情
从3亿到200亿:白酒企业的品牌故事化革命
瘦西湖夜游即将关闭!抓紧时间打卡五亭桥和白塔
瘦西湖历史文化展馆开馆,千年园林展新颜
瘦西湖春游打卡:佳能M6助你拍出大片
扬州瘦西湖秋色正浓,你打卡了吗?
如何在路由器上屏蔽或限制访问某些网站
七夕节教你重燃爱情之火:克服夫妻沟通障碍