Xilinx FPGA 原语解析(二):IBUFDS差分输入缓冲器(示例源码及仿真)

目录

前言:

一、原语使用说明

二、原语实例化代码模版

三、使用示例

1.设计文件代码

2.仿真文件代码

3.仿真结果


前言:

本文主要参考资料xilinx手册,《Xilinx 7 Series FPGA and Zynq-7000 All Programmable SoC Libraries Guide for HDL DesignsUG768 (v14.7) October 2, 2013


一、原语使用说明


IBUFDS是一个支持低压差分信号的输入缓冲器,用于接收差分信号对(如LVDS),并将其转换为单端信号输出。它可以用于时钟信号、数据总线信号等。

差分输入IBUFDS 接受两个差分信号(差分信号正输入I和差分信号负输入IB)作为输入,并将其转换为单端输出(单端输出信号O)。

端口示意图如下:

逻辑表和端口描述:

  • I: 差分信号的正输入;IB: 差分信号的负输入;O: 单端输出信号
  • 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; // 停止仿真endendmodule

3.仿真结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/419774.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全志A527 A133 A523 T527 T133 H6 H8应用无法开启后台服务

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改4.1 代码修改方法14.2 代码修改方法24.3 代码修改方法35.彩蛋1.前言 像全志的很多平台,普通的app并不能正常的启动后台的服务,这样对于应用层很困扰,无法启动后台的服务,功能就不能正常使用…

【自考zt】【软件工程】【21.10】

关键字: 软件需求基本性质、软件系统需求挑战、耦合(高内容,低无直接)、内聚(初始化时间)、uml包、rup边界类、测试首要目标、单元测试最后工作、性能需求 软件开发本质、软件需求规约三种风格、提炼、用…

【MySQL】MySQL库的操作

目录 创建数据库字符集和效验规则查看系统默认字符集和效验规则查看数据库支持的字符集查看数据库支持的字符集效验规则字符集对数据库的影响 操纵数据库查看数据库显示创建语句修改数据库数据库删除总结 数据库的备份和恢复备份恢复注意事项 查看数据库的连接情况 创建数据库 …

【C++】 Vector

文章目录 1 背景2 什么是 vector?3 vector 特性4 基本函数实现5 基本用法6 例子在 vector 最后移除和插入数据clear() 清除 vector 中所有数据排序访问(直接数组访问&迭代器访问)二维数组两种定义方法 7、参考 1 背景 C 中的容器&#x…

图片转pdf格式怎么弄?非常值得推荐的图片转PDF方法

图片转pdf格式怎么弄?在数字化办公和日常生活中,将图片转换成 PDF 格式已经成为一种常见而有效的处理方式。这种转换不仅能够将多张图片汇总到一个文件中,从而简化管理和共享的过程,还能够确保图像的原始质量和格式不会因不同设备…

WPS如何查看已添加到词典的单词

WPS Office(12.1.0.17827) ① 点击文件,在文件中找到选项 ② 找到拼写检查并点击自定义词典 ③ 如果要删除已添加到词典的"错词",则点击修改 ④ 选择"错词", 点击删除

STM32重定义printf,实现串口打印

在“usart.c”文件中加入以下代码 #ifdef __GNUC__#define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endifPUTCHAR_PROTOTYPE{HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);return ch; }…

快速搞定会议记录,别错过这四款语音识别转文字!

作为一个偶尔需要在办公室做会议记录和采访录音整理的打工人。我表示,真的不想要练手速了,尤其是很多人在讲话的时候并不会在意别人来不来得及记录,只在意自己讲不讲的完,好在后面我找了几款语音识别转文字的工具,可算…

52%回报率背后:GPT-4o量化交易机器人的30天实战传奇

_本文介绍了如何利用GPT-4o,结合量化交易技术创建盈利的交易机器人策略,并通过回溯测试验证这一策略的有效性。 量化交易可以盈利,但只有拥有丰富资源、拥有编码和数学技能的交易者或大型机构才能使用。 但时代变了!现在有了 Cha…

idear获取git项目

最近想下载个ruoyi项目来包装简历,结果打开idear总是上一个项目,找不到get for vcs只好自己捣鼓了,顺便记录留着下次用。 步骤: 1. 2. 3.输入我们想访问的地址 eg: 点击克隆,我们就能获取项目到本地了。

【零基础必看的数据库教程】——SQL WHERE 子句

WHERE 子句用于提取那些满足指定条件的记录,过滤记录。 SQL WHERE 语法: SELECT column1, column2, ... FROM table_name WHERE condition; 参数说明: column1, column2, ...:要选择的字段名称,可以为多个字段。如…

网络层ip协议

一.概念 ip协议主要是为了在复杂的网络环境中确定一个合适的路径来传输主机间的数据。简单来说就是用来确定主机的位置。 ip协议中的一些设备如下: 主机: 配有 IP 地址, 但是不进行路由控制的设备;路由器: 即配有 IP 地址, 又能进行路由控制;节点: 主机和路由器的统…

浅谈OLTP 与 OLAP 数据建模的差异

OLTP 与 OLAP:常见工作流 联机分析处理 (OLAP) 和联机事务处理 (OLTP) 是两种主要的数据处理系统。两者之间存在多种差异。 OLTP 系统旨在处理来自多个用户的多个事务,它们通常用于许多应用程序的后端。例如,在线商务网站将使用 OLTP 系统来…

Spring6梳理7——依赖注入之特殊类型属性

目录 ①字面量赋值 ②null值 ③xml实体 ④CDATA节 ①字面量赋值 什么是字面量? int a10; 字面量是在源代码中用来表示固定值的表示法。几乎所有的计算机编程语言都支持基本值的字面量表示,例如整数、浮点数和字符串。许多语言还支持布尔类…

网络运维管理:确保企业网络系统稳定运行之道

在当今数字化时代,企业网络系统的稳定运行和高效管理是企业业务持续发展和创新的关键。网络运维管理的核心目标正是确保网络设备和服务的高可用性、优化网络性能、保护网络安全、快速解决网络故障以及有效管理网络配置。本文将深入探讨网络运维管理系统的关键组件、…

CSS - 搜索框小动效

点击搜索框动画变长&#xff0c;搜索框有内容不变&#xff0c;无内容失去焦点&#xff0c;变回原来模样。<div :class"type true ? s_r_z : s_r" click"onChange"><div class"input_s"><input blur"handleBlur" v-mo…

计算机毕业设计选题推荐-流浪动物领养管理系统-Java/Python项目实战(亮点:数据可视化分析、智能推荐)

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

uniapp 各个端接入腾讯滑动行为验证码示例

验证调起页面&#xff1a; <template><view class"app"><text>{{ obj.ret }}</text><button click"varify">验证</button></view> </template><script>export default{data(){return{obj: {}}},on…

黑马大事件项目开发

项目介绍 演示网站&#xff1a; https://fe-bigevent-web.itheima.net/login 实现 1&#xff09;创建项目 npm init vuelatest2&#xff09;安装项目需要的依赖 npm install element-plus --save npm install axios npm install sass -D3&#xff09;在main.js中加入Elem…

金融行业项目管理软件分享!华福证券上线奥博思 PowerProject 项目管理系统

如何正确的评估一款项目管理软件是否适合金融行业&#xff1f;金融机构例如银行、券商等企业在选型项目管理软件时可以从以下几方面考虑&#xff1a; 1&#xff0c;管理驾驶舱 金融机构需要对项目的各项数据进行深入分析&#xff0c;以便做出科学的决策。软件应能够生成详细的…