优化FPGA SelectIO接口VREF生成电路

news2024/11/17 9:31:07

引言:FPGA设计中使用了各种PCB SelectIO™接口VREF生成电路。有时即使在以前的设计中已经成功的在电路板上设计了VREF生成电路,也会在VREF引脚上发现大量噪声(200–400mV)。大量VREF噪声的存在可能导致高性能SelectIO接口(如宽DDR3存储器接口)的设计裕度损失。本文重点介绍这种VREF噪声的来源,并给出优化PCB SelectIO VREF生成电路的方法。

1. VREF输入

图1显示了FPGA内部VREF电路的简化视图。电路由包含VREF引脚的SelectIO bank的VCCO电源轨供电。FPGA比较器电路呈现高阻抗输入负载(从DC角度来看)。

图片

图1:FPGA VREF电路的简化视图

2. 跟踪要求

通常,SelectIO频带的VCCO电源受到多个源(例如SelectIO开关活动和开关电源谐波)的低振幅、高频噪声。为了获得最大的噪声裕度,这需要由PCB电路产生的VREF电压来实时跟踪VCCO上的变化(VREF=跟踪VCCO/2)。这很容易通过电阻分压器实现,如图2所示。

图片

图2:用电阻分压器生成VREF电压

VREF供电不应使用标准电源稳压器。因为电源稳压器理想情况下被设计为输出电压不随输入电压的变化而变化电路。然而,这对于VREF应用来说是不希望的特性,因为VREF输出要保持跟踪VCCO变化。 

除了由于缺乏跟踪而导致性能下降之外,标准电源稳压器还增加了成本。因为VREF电流负载通常非常小(约1µA的典型值)。

图片

图3:TPS51200为DDR3供电电路

特殊的DDR3参考电源稳压器被设计用于产生VREF电压并跟踪VCCO的变化(例如,德州仪器TPS51200,国产思瑞浦的TPL51200),如图3所示。可以使用这些电源稳压器,但它们会增加不必要的费用。

3. VREF噪声根本原因

噪声问题具有串扰、耦合机制和所谓的“受害者”电路的共同属性。对于SelectIO VREF噪声,最常见的噪声源是SelectIO接口开关时的开关频率(和谐波)。耦合机制产生的噪声通过电源轨和直接连接到FPGA VREF引脚的PCB走线引入。

图片

图4:VREF输入上的FPGA芯片和封装寄生元件

图4显示了FPGA VREF管脚路径上的寄生电感和电容元件,该图可以更深入的了解VREF噪声的引入路径。

图片

图5:BGA封装构成

L1是从FPGA焊球到管芯的封装电感,并且在封装类型(例如,引线键合CSG和倒装芯片FFG封装)之间显著变化。L1也因引脚而异。C1是管芯输入电容,其在FPGA工艺节点之间具有一些变化。L1的值可以从包文件中获得,C1的值从RLGC IBIS模型中获得。为了便于说明,表1显示了倒装芯片封装中28 nm工艺节点上的7系列XC7VX485T-FFG1761器件中一些VREF引脚的值选择。

表1:XC7VX485t-FFG1761上某些具有代表性的VREF引脚L1和C1值

图片

注意:
1.在28 nm节点上的7个串联器件上的HR SelectIO的平均管芯电容为~7.5 pF。
2.高性能。

此外,PCB过孔结构、PCB堆叠和接地间隙拓扑(典型值分别为约0.5nH和约1 pF)提供了少量额外的杂散电感和电容。

忽略这些小的附加PCB贡献,L1和C1形成谐振受害者电路。频率接近L1和C1定义的谐振的任何小的、持续的输入信号都会激发该谐振,L1和C1的这种谐振行为是过多VREF噪声的根本原因。

4. 典型受害者谐振频率

表2显示了XC7VX485T-FFG1761器件LC电路的谐振频率为:

1/(2π(LC)½)

表2:XC7VX485T-FFG1761上一些代表性VREF引脚的典型谐振频率

图片

大约800MHz的谐振频率是最麻烦的。大部分DDR3接口以接近该频率的速率运行。例如,DDR1600是一种通用接口速率,其基本时钟速率为800MHz,非常接近VREF引脚B18的887MHz的受害者谐振频率,如表2所示。大量能量可以耦合到受害者谐振电路,从而产生大量的VREF噪声。 

可以看到VREF噪声产生的另一个应用领域是高速LVDS接口领域。这些接口可以在1.2Gb/s到1.5Gb/s的范围内运行。在基本时钟频率和基本时钟频率(三次谐波频率)的3倍处存在显著干扰。800Mb/s DDR接口将具有1.2GHz的三次谐波含量。从表2可以看出,这些LVDS DDR接口可能会产生VREF噪声。

5 .设计到设计的变化

到目前为止已经确定了导致VREF噪声的存在或不存在的几个变量。其中一些变量,如SelectIO开关频率、封装寄生效应(包括引脚到引脚的变化)和IC工艺参数在设计代之间的变化并不明显。由此,可以看出PCB电路设计可能会在一种设计提供安静的VREF参考电源轨,而在另一种设计中提供较大的VREF噪声。

6. 优化VREF电路设计推荐

本节讨论了VREF引脚B18上887MHz谐振的示例,假设DDR3接口以1.6 Gb/s的速度运行。最小化VREF噪声的一种方法是将阻抗最小为~887MHz的电容器连接到VREF引脚。该电容器的物理位置应尽可能靠近VREF引脚。图4显示了这种电容器的特性。

图片

图6:Murata的阻抗与频率特性 (GRM033B11C151KA01)电容器

如图6所示,Murata的150pF,0201尺寸电容器(GRM033B11C151KA01)在电容器的自谐振频率~887MHz附近具有非常低的阻抗(0.7Ω)。(Murata有一个在线工具,显示电容器自谐振和其他电容器特性http://www.murata.com/products/design_support/simsurfing/index.html)。

尽管该电容器消除了887MHz附近的高频噪声,但谐振频率仍然存在,并且已经转移到一些其他频率。这种偏移的谐振频率范围仍然可能受到一些特定于客户的数据模式的激励,这可能会产生难以调试的问题。可以用具有一定范围的电容值和相应范围的最小阻抗的一系列电容器来扩展这种方法。然而,将所需电容器的数量物理地定位在足够靠近FPGA VREF球/引脚的位置变得不切实际。

推荐的电路示意图如图7所示,相应的PCB物理布局如图8所示。

图片

图7:VREF的推荐电路示意图

图片

图8:VREF的推荐物理布局

该电路引入电阻元件R3以抑制振荡。电容器C2大于C1,有效地将R3的一端高频接地,将R3插入FPGA内部由L1和C1组成的电路中。高频下的电路行为可以通过图9中所示的电路来近似。

图片

图9:VREF电路在高频下的表示

具有0.8mm球间距的封装可能会导致设计者不能使用VREF引脚附近的某些FPGA管脚,以为0201封装阻容器件腾出布置空间。 

在布局到位的情况下,可以调整R3和C2的值以适应实际设计。该电路近似于二阶谐振电路。R3和C2应选择为使电路临界阻尼,应避免出现阻尼不足的情况。

现在可以选择R3的值,使得电路受到临界阻尼。在这种情况下:

R3=2(L/C)½  

对于前面示例中的VREF引脚B18:    
                                R3=2x(6.9 nH/4.67 pF)½=77Ω。 

这个电路的物理布局很重要。R3和C2需要在物理上尽可能靠近FPGA的VREF管脚,如图9所示。表3显示了XC7VX485T-FFG1761设备上VREF引脚B18和L11实现临界阻尼特性的部件规格。

表3:VREF引脚B18和L11临界阻尼特性的元件规范

图片

                             

图片

欢迎关注FPGA技术实战公众号,喜欢就多多转发吧!

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

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

相关文章

Jenkins部署成功后自动发通知到钉钉群

钉钉上如何配置 选择钉钉群,找到群设置-机器人-添加机器人 选择自定义 选择【添加】 选择【加签】,复制值,后续在jenkins里配置时会用到 复制Webhook地址,后面在jenkins里配置的时候要用到 Jenkins上如何配置 系统管理-插件管…

Vue3实战笔记(46)—Vue 3高效开发定制化Dashboard的权威手册

文章目录 前言Dashboard开发总结 前言 后台管理系统中的Dashboard是一种图形化的信息显示工具,通常用于提供一个特定领域或系统的概况。它可以帮助用户监控和分析数据,快速获取重要信息。可以帮助用户监控业务状况、分析数据、获取关键信息和管理资源。…

PyTorch学习笔记:新冠肺炎X光分类

前言 目的是要了解pytorch如何完成模型训练 https://github.com/TingsongYu/PyTorch-Tutorial-2nd参考的学习笔记 数据准备 由于本案例目的是pytorch流程学习,为了简化学习过程,数据仅选择了4张图片,分为2类,正常与新冠&#xf…

Golang | Leetcode Golang题解之第114题二叉树展开为链表

题目: 题解: func flatten(root *TreeNode) {curr : rootfor curr ! nil {if curr.Left ! nil {next : curr.Leftpredecessor : nextfor predecessor.Right ! nil {predecessor predecessor.Right}predecessor.Right curr.Rightcurr.Left, curr.Righ…

95.网络游戏逆向分析与漏洞攻防-ui界面的设计-ui的设计与架构

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…

JVM之【运行时数据区】

JVM简图 运行时数据区简图 一、程序计数器(Program Counter Register) 1.程序计数器是什么? 程序计数器是JVM内存模型中的一部分,它可以看作是一个指针,指向当前线程所执行的字节码指令的地址。每个线程在执行过程中…

通过acme.sh和cloudflare实现免费ssl证书自动签发

参考使用acme.sh通过cloudflare自动签发免费ssl证书 | LogDicthttps://www.logdict.com/archives/acme.shshi-yong-cloudflarezi-dong-qian-fa-mian-fei-sslzheng-shu

服务器数据恢复—服务器正常断电重启后raid信息丢失的数据恢复案例

服务器数据恢复环境: 一台某品牌DL380 G4服务器,服务器通过该服务器品牌smart array控制器挂载了一台国产的磁盘阵列,磁盘阵列中有一组由14块SCSI硬盘组建的RAID5。服务器安装LINUX操作系统,搭建了NFSFTP,作为内部文件…

ROS添加GDB调试

文章目录 一、问题描述二、配置步骤1. debug 模式编译2. rosrun 添加GDB指令3. launch 添加GDB指令 三、GDB基本命令1. 基本2. 显示被调试文件信息3. 查看/修改内存4. 断点5. 调试运行 一、问题描述 在享受ROS带来便利的同时,但因每运行出现错误,ROS不会…

Python筑基之旅-文件(夹)操作和流

目录 一、文件操作 1、文件打开与关闭 2、文件读写 3、文件操作模式 4、文件编码 二、文件夹操作 1、创建文件夹 2、删除文件夹 3、改变当前工作目录 4、获取当前工作目录 5、检查文件/文件夹是否存在 6、遍历文件夹 三、文件路径操作 1、获取绝对路径 2、构建完…

Android 逆向学习【1】——版本/体系结构/代码学习

#Android 历史版本 参考链接:一篇文章让你了解Android各个版本的历程 - 知乎 (zhihu.com) 三个部分:api等级、版本号、代号(这三个东西都是指的同一个系统) API等级:在APP开发的时候写在清单列表里面的 版本号&…

【Springboot系列】SpringBoot 中的日志如何工作的,看完这一篇就够了

文章目录 强烈推荐引言Spring Boot 中的日志是怎么工作日志框架选择配置文件日志级别自定义日志配置集成第三方日志库实时监控和日志管理 Log4j2工作原理分析1. 核心组件2. 配置文件3. Logger的继承和层次结构4. 日志事件处理流程5. 异步日志 总结强烈推荐专栏集锦写在最后 强烈…

【MySQL进阶之路 | 基础篇】MySQL新特性 : 窗口函数

1. 前言 (1). MySQL8开始支持窗口函数. 其作用类似于在查询中对数据进行分组(GROUP BY),不同的是,分组操作会把分组的结果聚合成一条记录. 而窗口函数是将结果置于每一条数据记录中. (2). 窗口函数还可以分为静态窗口函数和动态窗口函数. 静态窗口函数…

堆(建堆算法,堆排序)

目录 一.什么是堆? 1.堆 2.堆的储存 二.堆结构的创建 1.头文件的声明: 2.向上调整 3.向下调整 4.源码: 三.建堆算法 1.向上建堆法 2.向下建堆法 四.堆排序 五.在文件中Top出最小的K个数 一.什么是堆? 1.堆 堆就…

AIGC产业链上下游解析及常见名词

文章目录 AIGC上游产业链 - 基础层AIGC中游产业链 - 大模型层与工具层AIGC下游产业链 - 应用层AIGC产业链常见的名词表 在上一章节为大家介绍了 “大模型的不足与解决方案” ,这一小节呢为大家针对AIGC的相关产业进行一个拆解,以及相关的一些专业名词做出…

RK3568笔记二十六:音频应用

若该文为原创文章,转载请注明原文出处。 一、介绍 音频是我们最常用到的功能,音频也是 linux 和安卓的重点应用场合。 测试使用的是ATK-DLR3568板子,板载外挂RK809 CODEC芯片,RK官方驱动是写好的,不用在自己重新写。…

C语言 | Leetcode C语言题解之第113题路径总和II

题目: 题解: int** ret; int retSize; int* retColSize;int* path; int pathSize;typedef struct {struct TreeNode* key;struct TreeNode* val;UT_hash_handle hh; } hashTable;hashTable* parent;void insertHashTable(struct TreeNode* x, struct Tr…

第八篇【传奇开心果系列】Python微项目技术点案例示例:以微项目开发为案例,深度解读Dearpygui 编写图形化界面桌面程序的优势

传奇开心果博文系列 系列博文目录Python微项目技术点案例示例系列 博文目录前言一、开发图形化界面桌面程序的优势介绍二、跨平台特性示例代码和解析三、高性能特性示例代码和解析四、简单易用特性示例代码和解析五、扩展性强示例代码和解析六、现代化设计示例代码和解析七、知…

【PB案例学习笔记】-09滚动条使用

写在前面 这是PB案例学习笔记系列文章的第8篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gitee…

如何使用KNN

导入文件和库 加载数据集、拆分数据集 训练模型 预测 打印结果