在FPGA高速AD采集设计中,PCB布线差会产生干扰。今天小编为大家介绍一些布线解决方案。

1、信号线的等长

以SDRAM或者DDRII为例,数据线,命令线,地址线以及时钟线最好等长,误差不要超过500mil。

上图是FPGA与SDRAM布线,时钟频率设定为125M,为了等长可以走蛇形线。

蛇形走线虽然可以做到走线等长,但同时也占用更多的PCB面积。蛇形线没有所谓滤波或抗干扰的能力,只可能降低信号质量,所以只作时序匹配之用而无其它目的。

DDRII线路等长设计,最右边的弧度较大的走线为差分的时钟线,时钟线质量要求是比较高的。

布线是痛苦的,也是繁琐的,布不通时需要重新布线,不厌其烦的尝试,才能做出更好的效果。

2、电源芯片的选择

很多高速AD场合,开关电源并不合适,因为开关电源带来很多毛刺。大多数选择线性稳压电源。小编以ASM1117为例为大家介绍电源芯片中电容的使用。

5V电源输入端,应加容值较大的钽电容或者电解电容滤除电源的低频噪声,加104(0.1uF)瓷片电容滤除高频噪声。电源走线应适当加宽。

在PCB布线时,也应该在5V走线的末端加容值较大的电容。

以ASM1117-3.3降压为例,如下图:

如上图,1117的3.3输出走线往下走,那么电容CP5放在旁边是没有任何效果的,通常这种电容是104瓷片电容,这个电容的容值是一个非常好的容值,在电源滤波中效果非常好。

那么该如何布局?

如上图,此种布局,CP28以及 CP10放置,电容应当放在电源走线路径上。注意电容不能离芯片引脚太远,电容有滤波半径,超出某一范围,电容将起不到滤波效果。

FPGA电源布线,根据多年布线经验以及产品稳定性,小编为大家推荐以下方案:

以QFP封装的FPGA为例,有三种电源,1.2V,2.5V,3.3V。布线时最好如上图效果,电源线之间最好隔开距离,FPGA电源引脚要加入104电容。

3、有源晶振布线

原理图设计如上,时钟输出端串入100~330欧姆的电阻,防止阻抗不匹配时时钟信号反射叠加。

有源晶振电源端加入103、104、105三种瓷片电容滤波,防止电源噪声和时钟之间的串扰。

PCB布线时,上述效果时很糟糕的。晶振下面不应布线,电源走线应远离时钟线布线,并且中间加宽地线耦合,防止干扰。

如上图布线,电源线避开时钟线,中间加入粗地线,注意有些地线不需要手动连接,放置地过孔,在铺铜(地网络)时,会自动加入。

此种方式放置电容亦可行。


版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

作者:杭州卿萃科技ALIFPGA

原文地址:杭州卿萃科技FPGA极客空间 微信公众号


扫描二维码关注杭州卿萃科技FPGA极客空间


 
 

FPGA噪声干扰的更多相关文章

  1. FPGA与simulink联合实时环路系列——实验三 按键key

    实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...

  2. FPGA与simulink联合实时环路系列——实验二LED

    实验二LED 实验内容 在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对 ...

  3. FPGA优化之高扇出

    Fanout即扇出,模块直接调用的下级模块的个数,如果这个数值过大的话,在FPGA直接表现为net delay较大,不利于时序收敛.因此,在写代码时应尽量避免高扇出的情况.但是,在某些特殊情况下,受到 ...

  4. 关于 FPGA 内部信号扇入扇出

    扇入.扇出系数 扇入系数是指门电路允许的输入端数目.一般门电路的扇入系数为1—5,最多不超过8.扇出系数是指一个门的输出端所驱动同类型门的个数,或称负载能力.一般门电路的扇出系数为8,驱动器的扇出系数 ...

  5. FPGA Timing笔记

    很多FPGA工程师都会遇到timing的问题,如何让FPGA跑到更快的处理频率是永久话题.决定FPGA的timing关键是什么?如何才能跑到更快的频率呢? A. 第一步需要了解FPGA的timing路 ...

  6. FPGA的引脚VCCINT 、VCCIO VCCA

    首先是看到FPGA在配置的时候有三种不同的电VCCINT .VCCIO VCCA,于是就查了下有什么不同: FPGA一般会有许多引脚,那它们都有什么用呢? VCCINT为施加于 FPGA 内核逻辑的电 ...

  7. FPGA与simulink联合实时环路系列——实验一 测试

    实验一 测试 实验内容 在simulink创建测试模块,通过测试模块产生信号,再传送到FPGA,FPGA读出后再将信号无处理传送回simulink进行显示.由此来测试整个硬件在环的功能是否正常,并且熟 ...

  8. FPGA与simulink联合实时环路系列—开篇

    FPGA与simulink联合实时环路系列—开篇 作为网络上第一个开源此技术,笔者迫不及待地想将此技术分享出来,希望大家多多支持.笔者从2011年接触FPGA以来,从各个方面使用FPGA,无论是控制. ...

  9. 基于FPGA的飞机的小游戏

    基于FPGA的飞机的小游戏 实验原理 该实验主要分为4个模块,采用至上而下的设计方法进行设计.由50M的晶振电路提供时钟源,VGA显示控制模块.图形显示控制模块.移动模块的时钟为25M,由时钟分频电路 ...

随机推荐

  1. Java子类强制转父类类型不会变

    class  A{    void a(){        System.out.println("parent'a()");    }} class  AA extends A{ ...

  2. nagios无法载入静态资源

    使用nginx+nagios无法载入静态资源,看了下url中增加了一个/nagios 查看是/usr/local/nagios/etc/cgi.conf中url_html_path=/nagios 将 ...

  3. 你知道uwsgi???

    第一步,打开https://www.google.com.hk 第二步,输入how to restart uwsgi

  4. Memcached replace 命令

    Memcached replace 命令用于替换已存在的 key(键) 的 value(数据值). 如果 key 不存在,则替换失败,并且您将获得响应 NOT_STORED. 语法: replace ...

  5. dll隐式链接延迟加载

    dll隐式链接延迟加载 程序隐式链接dll后,启动程序将自动加载dll,查找路径依次是: 1:当前文件路径: 2:使用SetDLLDirectory设置的路径: 3:系统路径,system32文件夹, ...

  6. scala学习手记24 - 多参数函数值

    上一节的函数值只有一个参数.函数值当然也是可以有多个参数的.看一下下面的inject方法: def inject(arr: Array[Int], initial: Int, operation: ( ...

  7. vector push_back数量大的时候变慢

    才用15000个数据  push_back耗时就好几秒, 解决方法是 先resize 15000, 然后再 for (int i = 0; i < 15000; i++) { Data data ...

  8. 使用SpringMVC报错 Error creating bean with name 'conversionService' defined in class path resource [springmvc.xml]

    使用SpringMVC报错 Error creating bean with name 'conversionService' defined in class path resource [spri ...

  9. [javascript]JS如何获取当前时间戳

    [javascript]JS如何获取当前时间戳 一.总结 一句话总结:var timestamp = Date.parse(new Date()); 结果是带三位毫秒的,再除个1000取整即可 1.j ...

  10. Cassandra二级索引原理——新创建了一张表格,同时将原始表格之中的索引字段作为新索引表的Primary Key,并且存储的值为原始数据的Primary Key,然后再通过pk一级索引找到真正的值

    1.什么是二级索引? 我们前面已经介绍过Cassandra之中有各种Key,比如Primary Key, Cluster Key 等等.如果您对这部分概念并不熟悉,可以参考之前的文章: [Cassan ...