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

news2024/9/19 14:49:55

目录

前言:

一、原语使用说明

二、原语实例化代码模版

三、使用示例

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; // 停止仿真
    end

endmodule

3.仿真结果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 热题 100 回顾1

干货分享,感谢您的阅读!原文见:LeetCode 热题 100 回顾_力code热题100-CSDN博客 一、哈希部分 1.两数之和 (简单) 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标…

【Python 千题 —— 算法篇】词频统计

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目背景 在日常开发和文本处理工作中,单词计数是一个非常基础但又极为重要的操作。无论是统计一篇文章的词频,还是分析一段文本的关键词,单词计数都起着关键作用…

Spring Boot 集成 MinIO 与 KKFile 实现文件预览功能

文件预览功能是提升用户体验的重要部分,尤其是在文档管理系统中。本文将带你逐步实现如何在 Spring Boot 项目中集成 MinIO(一个对象存储系统)与 KKFileView(一个开源文件预览工具),以实现对各种类型文件的在线预览 项目准备 Java 11+ Spring Boot MinIO 服务器 KKFileV…

C语言 ——— 带副作用的宏参数

目录 带有副作用的代码 带有副作用的宏参数 结论 带有副作用的代码 代码演示: int a 10;int b a; 副作用解析: 变量 a 在赋值给 b 之前 a 的值自增了1,那么 int b a; 这条代码就带有副作用 带有副作用的宏参数 代码演示&#xff1a…

学会收纳,对“衣服山”说再见,我推荐你读这4本书

面对日积月累形成的“衣服山”,我们还是会经常苦恼“没有衣服穿”,主要原因是我们出门前,很难用手边的衣服对相应的场合进行搭配。 我们的衣柜存在这样一个怪圈:衣柜里的衣服不断增加,尽管数量多,但是“能…

CSS —— display属性

用于指定一个元素在页面中的显示方式 HTML中标签元素大体被分为三种类型:块元素、行内元素和行内块元素 块元素 :block 1.独占一行 2.水平方向,占满它父元素的可用空间(宽度是父级的100%) 3.垂直方向,占据的…

如何使用QT完成记事本程序的UI界面布局

每日QT技巧查询表-CSDN博客 会持续更新记事本编写的全部过程,关注不迷路 一、相关控件 ①水平和垂直布局 ②按键 ③文本框 ④水平弹簧 ⑤标签 ⑥Widget 二、控件使用方法 1、PushButton 拖出三个按键,并对其进行命名,两处地方命名可以不一…

亚马逊IP关联及其解决方案

在电子商务领域,亚马逊作为全球领先的在线购物平台,吸引了众多商家和个人的参与。然而,随着业务规模的扩大,商家在使用亚马逊服务时可能会遇到IP关联的问题,这不仅影响账户的正常运营,还可能带来一系列不利…

频谱图在频率为0附近有较大幅度,这是为什么

如下图所示,很明显看出,相比于其他频率段,在频率为0Hz左右,其幅值幅度较大。这是为什么呢? 在频谱图中,频率为0 Hz附近的幅值较大,通常意味着信号中存在较强的低频成分或直流分量(D…

春日美食:基于SpringBoot的在线订餐系统

1 绪论 1.1 研究背景 随着互联网技术的快速发展,网络时代的到来,网络信息也将会改变当今社会。各行各业在日常企业经营管理等方面也在慢慢的向规范化和网络化趋势汇合[13]。电子商务必将成为未来商务的主流,因此对于餐饮行业来说,…

【动手学深度学习】05 线性代数(个人向笔记)

1. 线性代数 向量的一些公式 ∣ ∣ a ∣ ∣ ||a|| ∣∣a∣∣ 表示向量 a 的范数,课上没有讲范数的概念 其中第一条为求向量的二范数 第四条表示如果a为标量,那么向量 ∣ ∣ a ⋅ b ∣ ∣ ||ab|| ∣∣a⋅b∣∣ 的长度等于 ∣ a ∣ ⋅ ∣ ∣ b ∣ ∣…

T2打卡——彩色图片分类

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 1.导入数据: #设置gpu import tensorflow as tf gpustf.config.list_physical_devices(GPU) if gpus:#如果有多个gpu仅使用第一个gpu0gpus[0]#设置…

基于图谱的记忆存储 - mem0 graph memory + neo4j

log 日志版 【LLM最强大脑】基于图谱的记忆存储 - mem0 graph memory neo4j_哔哩哔哩_bilibili 获取API Key 谷歌邮箱注册,需科学上网,你知道的┗|`O′|┛ 嗷~~ 获取 mem0ai key Dashboard | Mem0.ai 获取 neo4j key Neo4j Graph Databa…

Linux:软硬连接和动静态库

一般ll一下,最左边一列就是文件类型: 怎么创建链接文件: ln -s 目标文件 创建的链接文件名 来试试:这叫软连接,软连接相当于Windows下的快捷方式,直接指向原文件的绝对路径;删除软连接不影响原…

通义千问大模型Java调用,百炼

文章目录 一、大模型服务平台[百炼](https://help.aliyun.com/zh/model-studio/getting-started)二、Java sdk调用与eventStream三、百炼平台其它 一、大模型服务平台百炼 百炼是阿里新出的一个大模型服务平台,聚合了多个千问大模型及其它一些大模型的调用&#xf…

【MySQL】Ubuntu22.04安装MySQL8.0.39及修改默认用户名和密码

文章目录 安装mysql1. 下载mysql2. 查看mysql版本3. 启动mysql服务(通常在安装后自动启动)4. 运行安全配置脚本 修改用户名和密码1. 查看mysql自动设置的随机账号与密码2. 用默认账号密码登录mysql3. 找到账号密码有关的数据库4. 更改用户名和密码mysql5…

C++:AVL树保姆级详解

目录 AVL树概念 AVL树的性质 AVL树节点定义 AVL树的构造函数和拷贝函数 构造函数 拷贝构造 AVL树的插入(灰常重要) 更新平衡因子 什么时候向上调整平衡因子 如何向上调整平衡因子 旋转 左单旋 右左单旋 右单旋 左右单旋 AVL树的验证 验证是否是二叉搜索树 这…

Apollo星火计划基础速记

1 Apollo规划模块 规划根据感知预测的结果,当前定位信息以及Routing的结果,规划出一条安全行驶的轨迹送给控制模块 其中NaviPlanning主要用于高速公路的导航规划,OnLanePlanning用于城区及高速公路各种复杂车道;OpenSpacePlanning用于没有车道线的场景,主要在自主泊车和狭…

JavaDS —— 并查集

并查集概念 案例引入: 假设现在有三个程序设计小分队,分别来自广东,广西和海南,其中广东小分队人员的编号为{0,6,7,8} 广西小分队人员编号为{1,4,9},海南小分…

关于WebZip乱码目录文件名修改

先引用一段 来描述问题: 在IT行业中,我们经常遇到与编码和字符集有关的问题,特别是在处理包含中文字符的文件或目录时。"WebZip乱码目录文件名修改"这个问题就是一个典型的例子,涉及到Webzip工具在下载包含中文路径的文…