EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 陆妹 于 2022-2-16 15:06 编辑
, ]: G D( ~. {5 ]: t, @3 h# t0 k) x& S
总线链路等长在封装内绕线好还是在PCB外绕线好? - G h1 Q) A1 X9 B4 y7 r$ g% B5 |0 g( O
EDA365原创 作者:毛忠宇老师
& b' h& E' q# e+ V/ h
' Q: i9 S n1 b! J8 I) ]
: q: M3 z8 S& F7 \ 有些SI问题看似简单,由于仿真验证时涉及到的知识点较多,真要把链路搭起来仿真却不易,因而在没有数据的支撑,简单的问题也不好回答了,此时大多数人都会是站在对自身工作有利立场回答,或根据以往类似的经验给出自己的建议,这些答案往往会引起热烈的争论。就拿最常见的一个看似非常简单的问题来举例:
. S# b! L8 V2 }, [+ z2 Q4 i; Y- a# z8 B, ]4 q
- r2 _; k6 |* r. p. W) _5 U
最常用的回复: 芯片封装设计工程师:当然在PCB中绕线比较合适,封装空间有限,在封装内做不了绕线,硬要坚持的话只能加层了; 硬件工程师:必须在芯片封装内绕等长,这样可以使封装在后面的应用中更简单。客户只需要在PCB上关注到封装BALL的位置即可,不用关心封装内部总线的长度差异; PCB Layout工程师:反正都要绕等长线,多绕几圈、少绕几圈对总体工作量来说不算大,把Pin Delay的参数表给我就行了…… 对于以上的问题,如果问的是你,你的意见是什么? 这个看似简单的问题还真不好回复,但是如果对整个链路进行一次SI仿真,通过仿真结果来回复这个问题,相信还是较多人会信服的。链路仿真会涉及到下面几方面的知识: (1) PCB Layout (2) 芯片封装设计 (3) Si信号完整性仿真 (4) …… 受限国内芯片产业发展的现状,芯片制造业的长期在追赶先进技术的路上,相关的高端芯片封装设计与生产也是近年才开始有点起色。而商业元件的封装设计文件往往被列为公司机密文件的一种,就导致了芯片封装设计源文件及内部的详细相关材料等信号一般难以获取,这些因素会制约了链路的SI精确仿真与优化。
/ P' ?# }% v1 Q s 1、链路描述' J# i+ j. k, S: Z
9 J2 _7 y9 x2 _3 U$ |
仿真对象为某实验板,一个CPU驱动5个DDR4颗粒,所用拓扑为Fly_By方式,选取距离CPU最近的内存颗粒Mem1低8位数据进行观察。 原PCB设计文件中所用的数据地址线都进行了等长的处理,其中CPU到MEM1部分将被仿真的8位数据线等长绕线效果如下图(封装设计文件的内部也进行了等长绕线,后面相应章节中会给出相应的效果图)。
, |' C% s( b* u8 u' U
图 1. 原PCB DQ0-DQ7等长绕线部分效果 2、封装布线处理
0 \: \" T# l& `8 u 原内存芯片封装在内部布线是等长设计的(如下图左),本次为了仿真实验特意把其中的DQ0-DQ7等长布线绕线拉直且尽量按最短的路径处理,由于封装基板只有2层,优化过程中发现芯片上原DQL5信号的PAD摆放不合理,导致了它需要走较长的路径,优化时把DQL5 PAD信号与另外的一个同组DQ进行了交换,这样所有同组的DQ线都做到了较短。经处理前后的封装内信号组DQ0-7布线效果如下图中的蓝色部分。 *从这款芯片的DIE PAD排布与封装的布线效果看,此内存颗粒在早期DIE PAD设计没有充分考虑2层封装基板时的布线情况,这类量大对成本敏感的芯片,在项目设计初期就显得使用CO-DESIGN流程评估的重要性。 图 2. 芯片封装内布线绕线处理前后效果对比图
, |0 l' w, z: q7 y1 {1 { 3、封装Pin Delay输出5 Y4 j; f" ?/ G# c- H% z- `7 X
" {$ P( X. S# Q: r. ]& M
封装设计中数据走线经调整后,需要把DQ0~DQ7数据组每根网络的长度信号输出以供下游应用,输出方式分2种一种以布线长度的方式输出,另一种则是以时延的方式输出。本例为了减少工作量只输出DQ0~DQ7长度数据信息,输出的信息按一定的格式保存到CSV文件中。 - s# \' E- C( z
4、Pin Delay属性
* d. J) I+ d/ g8 B/ A
/ F5 s1 Z2 d3 C6 V最初接触allegro软件时,那时还没有Constraint Manager这个菜单,对于高速信号的限制都是通过Property这个属性处理, 相应的界面如下图。
. M& u ]- `- d, ~
图 4. Property属性赋值界面% [( a& k! [ \: I ]& d) S
当时还认真分析了上图中的每个赋属性,大多数属性通过看软件自带的Help就可以弄明白,但个别的由于不知道它的应用环境,还是较为难懂,问软件接口AE也没法提供例子说明。后来软件新版本增加了Constraint Manager后,很多属性就开始表格化,这样使用起来就变得更加便利。 再后来随着技能的不断提升及进入Si仿真及封装设计领域后,终于真正了解其中大部分属性的奥妙及应用场合。 Pin Delay最常见的一种情形用于高速连接器上,由于连接器管脚分布上物理的限制,分布不同的地方在连接器上的走线延时会有较大的差别,如下图的①与②间的长度差就非常明显。 图 5. 连接器中的管脚长度差异! B. I) }- ~5 h+ Q: o, U' ]3 \$ s% S
而本例中的内存颗粒,从上面优化过的图中,数据总线DQ0-DQ7走线长度也是不一样,它们间存在着不同延时 ,这些延时的差别在高速信号设计时都必须要考虑。
6 G5 J" w. Z* M1 L0 n0 h+ X 5、Pin Delay应用 如何导入用使用Pin Delay数据?不同的软件方法应不一样,但本质都是把芯片封装对应PIN上的长度加到PCB对应的元件PIN上,然后在PCB中对长度的等长规则设置。下面的导入过程以Allegro软件为例,其它软件可参考相应的软件操作。Allegro软件使用的方式较为简单,通过菜单File->Import->Pin delay直接导入上面的CSV格式的文件即可。 Pin Delay导入PCB后,在软件的规则管理器中会即时体现,如原来的PCB走线等长已调整完成,此时长度对应的部分为绿色,如下图。 图 6. 数据线长度符合规则时的状态
7 n3 p' {4 I: Q* h 而导入Pin Delay后,则等长的规则数值发生了变化,相对长度的地方会由绿色变成红色,表示总线间的相对长度不等长了,此时需要在PCB中对这些标红色的信号重新调整直到它们都变成绿色表,示长度已调整在约定的等长范围内了。 图 7. 导入Pin Delay后规则有冲突示图
0 W% h# E2 n, R 规则管理器是EDA软件近年来最实用的新功能之一,只要规则设定在PCB文件中,即使经验稍有欠缺的Layout工程师设计,也能输出满足特定电性能要求的PCB设计。 4 w6 |4 a) z6 w+ n
本例中PCB把Pin Delay延时表导入并经调整完成后的前、后效果对比图如下: 图 8. PCB Pin Delay导入后调整效果比较4 t2 A4 k! }' w
从以上的布线结果看,总线调整后形态变动不大,这是由于PCB的布线空间较大。从这个效果看在空间较大的PCB则调节总线等长相对容易些,这也是经常把等长要求移到PCB设计端的重要原因之一。 / B4 Y7 ]5 P b! P. C1 b
6、仿真与结果
2 B* Z; O. g* T" P$ X+ o
8 u) f4 q4 D1 v根据元件的信号流向,仿真链路创建如下图所示。 图 9. 仿真链路拓扑9 B' X" W3 w5 i2 k& R, S
仿真结果波形及眼图如下图所示(只选取其中的2根有代表的线比较)。 7 b" }# ?3 H* A1 M
7、结论
7 K2 r3 }1 Z4 G1 N; J % e7 R b7 R" s
1)从仿真结果看,把等长放在PCB端绕线,仿真眼图及波形整体效果略好。 *这个结论是基于本例仿真条件(1.6Gbps 信号使用I公司的ibs模型驱动)下所得,(链路仿真中影响结果的因素较多,如:层叠、材料、Buffer型号、信号速率、具体设计走线、Topo、码型等),需要具体问题具体分析,不能随便引用,但本例的结论还是适用于同条件下的大多数同类情形。 2)一般的项目在设计时,不建议把绕线放在空间有限的芯片封装内,而是放在PCB上进行绕线,同时提供Pin Delay及设计指导给下游用户。 *这个是从链路整体上综合考虑后的建议。另外封装的加工成本及周期较长,且一般量也较大。尽量把一些不确定的因素移到PCB外更合乎工程的实际情况。 3)复杂多管脚的芯片封装设计前期必须要进行Co-design详细评估 *只有这样才能及早排除后期应用端的风险,使链路更通畅并可以使PCB及基板用到最少的布线层。 4)参考任何DESIGN GUIDE时,必须要弄清楚它的应用前提。出品|EDA365 作者|毛忠宇老师
( |% U2 C! ~4 n+ N8 a6 _* p0 y. i1 M
7 `* A; S& E: b+ }, J
( L9 h% g& P) v$ }: G7 c. p6 z7 x
- g6 m$ W X5 Y f" Z5 \* z+ M
注:本文为EDA365电子论坛原创文章,未经允许,不得转载
2 i. v& `: T+ q
8 h3 s2 L( Z+ O p4 ^6 g7 c# Y x1 i8 O3 ~+ S
|