原创 DDR2 SDRAM×32布局、布线经验谈

2011-3-25 13:30 15191 20 43 分类: PCB

DDR2 SDRAM×32布局、布线经验谈

最近忙于一块以CycloneIII为核心主控芯片的六层板设计,开发环境是Capture+Allegro+CAM350,从原理图修改到PCB的布局、布线这整个过程中我遇到了相当多的问题,值得庆幸的是有一些问题的解决倒是可以说是一劳永逸,比较典型的就是DDR2的布局与布线。之前对DDR2的原理与板级布线非常的陌生,导致刚开始布线时走了很多弯路,折腾了好几天才解决。由于DDR2布线的严格要求,整个布线思路也是更新了若干次,不过现在看来,今后若再布DDR的线会效率更高的。其实两个星期之前DDR2的布线就完成了,只是一直没有找到时间写这篇文章,今天上午特意花点时间写了这些文字、截了几个图,和网友分享一下。

布线结束后,我深刻的体会到,对于DDR2的布局、布线来说,最关键的就是要非常地熟悉DDR2DQDMDQSFPGA芯片中DQ/DQS Pins的分布情况,为了更直白的说明这个问题,咱们来看图说话,

396439b6-b082-4573-8e7d-405dad83e311.jpg

解析:考虑到DDR2走高速信号时的信号完整性质量,首先要满足最基本的布线要求(还有信号线的等长):

(1)DQ[0:7]DM0DQS010根信号线要在同一层;

(2)DQ[8:15]DM1DQS110根信号线要在同一层;

(3)DQ[16:23]DM2DQS210根信号线要在同一层;

(4)DQ[24:31]DM3DQS310根信号线要在同一层;

其中(1)和(3)可以在同一层(如S1)实现顺利布线,而(0)和(2)可以在同一层(如S2)实现顺利布线。

上面这个图中我特意用笔把所有Pins的分布情况给大致分割了一下,这样看起来会一目了然。布线时应该把上面一个部分(即ABCD)里面的DQDMDQS总共10根信号线作为一个单元,对应FPGA芯片里特定的一个PIN区域,下面EFGH这个部分也是类似的。不过布线时还应该注意的地方就是:FPGA里的那个所谓的“特定部分”中只有DQS这个Pin是固定不可被替代的,其他的9PinsDQ[n:n+7]DM线是可以任意换序的,因为DQDM信号线所对应的PinsFPGA芯片中是同一个电气属性的。这个相当关键,不然的话,会给布线带来比较大的麻烦。关于那个“特定的部分”,我截个图如下所示,不同的颜色即为一个“独立的特定的区域”,

113a07c6-4a1c-4d95-b25c-0585754b40ff.jpg

我布线时主要用的是下方中间四个“独立的特定的区域”——用于两个DDR2的布线需要,实现32位并行数据流。

画这个板子时我设置的是六层结构(四个信号层+两个参考层),布局、布线结束后的各信号层结果如下:

TOP LAYER

62c9d6ce-2e6f-4fa6-8b38-a634c3359b2b.jpg


LAYER S1: 

ce4227a5-1339-4311-b570-ff20f7555777.jpg


LAYER S2

b9cf67e0-cc0f-437a-993b-838496501fe2.jpg


BOTTOM LAYER

72030fdd-1237-4070-a162-8bc726ed673f.jpg


ALL LAYERS

4d62a6c2-75fd-41c2-a2f1-d2256b85fb99.jpg


如今这整个板子的设计过程已经完全顺利结束了!从开始的布局、布线一直到现在光绘文件的成功生成,确实体会到经验的重要性,因为我之前从来没有过六层板的设计经验,很多问题都是第一次遇到,也是临时自己思考或者和同事讨论一起解决,整个过程算得上还是顺利的。


ZHOUNACHU 

2011-03-25



文章评论23条评论)

登录后参与讨论

用户417619 2012-4-11 10:54

为什么我的T点加不上去呢?

xucun915_925777961 2011-4-28 11:45

不错,DDR这东东在线时确实很讲究的,以前布视频板的时候也是一样,什么差分了什么等长了什么阻抗匹配了……好多东东要考虑,不过做多了自然就熟悉了,楼主加油!

用户1528479 2011-4-17 20:18

to zhangyixin345:有,,

用户1580105 2011-4-17 17:20

T点的等长你有做吗

用户1528479 2011-4-11 09:40

to 乌泽: (1)我用的是两片DDR2,以实现32位的并行数据流; (2)放置T节点的操作步骤是:allegro菜单栏->Logic->Net Schedule,先点击一个Net节点,然后在想放置T节点的地方鼠标左击,再鼠标右击,选择“Insert T”,最后点击另外一个Net节点。

用户341543 2011-4-10 21:51

您好,您的ddr用几片啊。用没用到放置T节点的问题啊。我现在要布局一块板子是四片DDR2.不知道如何放置T节点的问题。

用户1528479 2011-4-8 11:26

继续to shihaizhao:朋友,这些电容确实是0402的,我已经在DDR2下面塞了6个这样的电容。DDR2旁边的那些电容我特意放在顶层的,意在减少过孔,但是难免把走线拉长了点,算是一种折中吧,,

用户1528479 2011-4-8 11:04

to shihaizhao: (1)呵呵,欢迎探讨! (2)我在VCC LAYER和GND LAYER已经整块铺铜了,而且是非常完整、有效的1V8铜皮和GND铜皮,只是我没有把它们截图下来; (3)时钟线就是TOP LAYER的那对差分线; (4)四组信号线的过孔数完全一致,没有多一个也没有少一个,呵呵; 探讨交流促进共同进步,欢迎欢迎!!

用户1489639 2011-4-8 10:57

还有关于滤波电容,如果用的是0402封装的话,可以摞在DDR2芯片的背面,离电源引脚越近越好,感觉你这个电源pin到电容的距离有点长了。

用户1489639 2011-4-8 10:47

个人感觉DDR2的电源铺整块铜比楼主这样走线要好 另外图中时钟线没有找到,不知道是怎么处理的,DDR的时钟线走弧形等长的比较好,且要包地 数据线间,信号线间的过孔数要尽量保持一致 个人的一点见解,希望和楼主探讨
相关推荐阅读
用户1528479 2011-04-12 21:50
设计第一个六层板所得到的一个深刻体会
        今天中午,由于确实有点困,于是乎仰躺在座椅上眯了半个小时的眼,睡眼朦胧中,好消息随即到来——我的第一个六层板从深圳寄到长沙了!而且元器件都已经由深圳那边的人焊接好了,拆开包装袋一看,简...
用户1528479 2011-03-25 15:28
DDR2 SDRAM×32布局、布线经验谈
最近忙于一块以CycloneIII为核心主控芯片的六层板设计,开发环境是Capture+Allegro+CAM350,从原理图修改到PCB的布局、布线这整个过程中我遇到了相当多的问题,值得庆幸的是...
用户1528479 2011-02-27 19:48
使用Cadence16.2过程中遇到的一些问题(附解惑方法)
使用Cadence16.2过程中遇到的一些问题(附解惑方法) 很久没有写博文了!确实有点过意不去。最近两个多月以来,由于公司的需要,我不得不学习Cadence16.2的使用方法——用它来画高速板子...
用户1528479 2011-02-27 19:46
使用Cadence16.2过程中遇到的一些问题(附解惑方法)
使用Cadence16.2过程中遇到的一些问题(附解惑方法)很久没有写博文了!确实有点过意不去(呵呵,这意味着自己最近懈怠了)。最近两个多月以来,由于公司的需要,我不得不学习Cadence16.2的使...
用户1528479 2011-02-12 09:15
数字旋转编码开关的原理及使用方法
在电子产品设计中,经常会用到旋转编码开关,比如数码电位器等,它的英文名翻译过来就是Rotary Encoder Switch。在写这个元件的驱动程序之前,我google、baidu了一些它的使用说明资...
我要评论
23
20
关闭 站长推荐上一条 /2 下一条