AD用了有1年多了,在使用的过程中积累了一些小技巧,和大家分享一下,算是抛砖引玉吧。当然以下都是我给人的做法,大家有什么比较好的建议可以一起讨论。; v3 q" Y& I3 i# g; g2 h
) r+ P' g3 }. Q. g Mechanical layer的分配:
; T4 F6 o) I+ n. T! U9 p, D1 o mechanical 1一般都给footprint用,PCB里面一般不用。
; p/ U$ k* R+ p* ^! j" m mechanical 2用做fab层,主要是PCB外形尺寸,结构件相对坐标以及FabNote. 尺寸相关的信息在place-dimension里面都有。FabNote自己先做好零件,记住零件选用mechanical type,要不然update PCB在ECO里面每次都要操作。
# ?, }* [; s) J mechanical 3用做panel层,主要做连扳用,加个PanelNote,也是自己先做好,mechanical type.3 W7 g, l( F; ?/ P+ ~" M! C
mechanical layer pair基本定义在中间几层,但是没用过。3D是我用AD的一块短板。% k: Y# v; G3 k( k- _1 [; Y
! g# T: [7 v! }, O. d' Y; K& P
Polygon的管理
8 w- q5 p$ h: _" s* b9 [, S 做的数模混合比较多,公司一般都要求敷铜,每一层都要,射频和数字还要分开铺。加上一些routing layer上的小电源,PCB上的polygon还挺多,一般的命名规则是Net_Layer_Use. 比如GND_Top_DIGPLANE. top层部分GND敷铜。如果polygon的确很多,可以再加上一个参数,比如in1层3.3V既给AD供电又给CPU供电,可以再加上后缀_AD/_CPU。当然这个完全根据给人喜好。* f3 x8 {6 V$ d2 @) x5 d. I
这样做的好处主要是在polygon manager里面只要看名字就知道是哪一块sharp。在设置polygon的repour顺序的时候也颇为方便。此处提一个问题。每次敷铜完毕以后处理碎铜是一件很痛苦的事情,时间不赶还好,赶了就痛苦了,大家有没有什么比较好的处理方法。
, S- Q# ~: B& Z7 n, u! O2 ` 还有一个比较深入的问题,敷铜到底是否有必要。(肯定是有必要的@~@),对于回流和屏蔽以及串扰肯定是有好处的。但是这只是一个连定性都算不上的结论。大家有没有做过相关的仿真或者在实际案例中有通过敷铜解决过问题的经验,可以分享一下。( s4 G: `, H P( h9 K# \
* k8 k$ C# [% H% u' N Rule的设置. x6 a: y! C# ^, l$ T
Electronic:
% h7 {+ N3 C5 B/ S0 R. U Clearance(Not clearence@~@).关于clearance一直想整个规范出来,但是一直都没有时间弄。下面只是一些我常用的rule,并不成系统,大家可以酌情参考。& ~0 H& K6 h! E: F
All2All: 通用间距规则,6mil," k c* f. F& M, ?) v3 u
Via2Pad: Via to Pad的spacing. 5mil,- p2 w3 C8 M0 F+ V0 }% P0 M
Busname2Busname: bus线之间的spacing要求,如果bus比较多,则这一块需要设置比较多的rule,当然我现在画的PCB bus线很少很少,可以算是没有的,顶多就是个CLK,有SDRAM但是很少有设置rule,因为感觉datasheet里面都是一笔带过,自己也没必要较真。用的比较多的是SDRAM整个作为一个bus@~@,CLK,等一些要求特殊处理的critical trace。datasheet上有写就按照datasheet,没写就2W。
5 U% Y' ]* _ u* h% ~& J- \: n# P DGND2All: 数字部分敷铜2All的spacing,一般为12mil。" k W) I- X! A/ x, p
RFGND2All: 射频部分敷铜2All的spacing,一般为20mil,这里选20mil的主要原因是敷铜对trace的阻抗是有影响的。有用SI9000做过实验,GND的spacing在25mil之后基本上对microstript/stripline的阻抗没有影响了,变化大约1 Ohm左右。GND trace width也会有影响,但是影响不大。所以spacing为20mil,其实还是有影响的,但是有时候做25+又的确铺不了多少,所以选了20mil。; v6 r, M: v. ?8 ~! c
Fiducial: PCB上光学定位点2All的距离,fiducial mark我用的规格是1mm top,3mm soldermask,所以要设置为1mm,开始我设置6个Fidu的netname都为fidu,然后设fidu2All的spacing为39.37mil,但是这样的后果是每次fidu都有5个unrouted net的DRC。后来想了个办法,每个fidu都设不同的netname,将所有的fidu net name设一个net class, 再设置netclass2All, 问题解决@~@。
8 I; W- }/ m/ h2 H Room_Region: Room的设置. BGA或0.5的QFN上肯定会有trace无法满足all2all的要求,这样就要求添加room。关于room在constraint中的应用,也看过坛子里很多DX有关于这个问题的讲解,我说说我对room的理解。. c; h: x! H: S8 l) Q+ X. L, w6 @
room的作用有2:1,将所有room里面包含的object作为一个group做整体操作。2,单纯的作为一个constraint area. 以上2个作用是相互独立的。很多关于room的资料上都将这2个作用联系在一起,个人觉得其实没有必要,因为大家用的最多的还是功能2.3 J# }( d/ z8 `' l7 @# O. S
首先place a rectangular room. 设置room的主要参数。room name,自己认识就好。Full Query:这个主要是设置group里面包含的component。每次我都All。这样room就不关联任何component已测。设置room的layer,目前还是不懂,即使我设的是top layer,roon在每层都生效。但是我依旧设置top layer.然后就是keep objects inside,这个没有试过作用@~@。这样就可以针对room在rule system设置了哈哈。DR, withinroom('').
& P5 ] v8 [4 r3 Y& o Clearance rule应该还是有的,暂时只能记得这么多了。大家有什么比较好的rule system也可一起分享讨论,也欢迎大家就我现在的这个做一些优化。@~@- g0 I# A& d3 F- r
Unrouted net:这个平时都不用的,但是突然有疑问,能不能设置可以不用连接的net能,貌似不行,恳求rule达人释疑。主要问题是不知道如何更改constraint里面的内容@~@,就跟那个unconnect pin一样,constraint里面没内容我们就没辙了:(
! ^5 O( K; D: @, C; O& O, }4 r Routing: 发现均为无价值rule。AD里面line width并不会让你拉出set的line width, 只会在你的line width不是设置值时提醒你错误,这个在高速主板应该用比较多,咱都小板一块,用不着这活@~@
2 i) P. Q. v, `9 W2 u: f i SMT:出pin的时候保证无锐角,但是貌似实际lay线中只能注意,并不能完全保证不违反rule,没用过,下次有机会试试,有用过的分享下感受哦@~@, `0 _$ }7 ~. N/ F
Mask:主要用途就是设置塞孔了,可以将SolderMask Expansion设置为via的半径,这样via上就不会有soldermask了。记住在via里面勾选Force Complete tenting on top/bottom8 |4 h% |3 L% {4 e" Z
Plane:这个用的会比较多,% T0 `- G% D' Q( \5 R F, o' ?) ^5 T2 \, r
power plane connect style里面一般会设置3个rule,一个是via的connect style,用direct connect;一个是pad的connect style,用thermal relief connect。至于flash的规格,可以参考IPC SPEC,当然大家也可以分享下自己在设置flash SPEC的心得,毕竟很多IPC都是多少年前的老黄历了@~@。最后一个是专门针对screw hole设置direct connect。9 T( @' a( L/ p
在此提一个问题,一般大家在设置Power Plane Clearance一般会设置多少呢,一直在困惑这个问题,是不是在工艺可以承受的范围以内设置越小越好呢。3 w& a1 ]% P% \( O2 S' s. e6 a0 w, y
Polygon Connect Style:以前我都是设置的direct connect,但是后来发现即使在plane为thermal relief connect,零件还是比较难撼,但是若将设置为thermal relief,top&bottom 真的是惨不忍睹,想请教下大家是怎么做的。5 J% S3 Z/ z! e/ |
Testpoint:以前都是要求加到99%,呵呵,现在没这个要求了,所以一直也没琢磨。TP rule应该也就是TP2TP的clearance了,一般设为50mil,最好为75mil,最小不可低于1mm。要不然治具没法做了@~@
. i9 a) \6 I, P, M L Manufacturing :这个没用过,也就在最后出gerber的时候做checklist的时候会用一下net antenna。感觉AD里面关于component的rule都很不实用,除非班子大,零件很稀疏。要不然一个零件的文字都会有CC的错误,还得边placement边调文字,违背了layout的一般流程,所以觉得AD在这点上做得很不可取。在allegro里面,会专门有一层设置component实体的place boundary top/bottom.这样就避免了零件实体与silkscreen上混为一谈的模样。如果大家有什么设定对PCB设计有帮助的,可以分享一下哦@~@5 n% m5 o7 t! _
High speed:说实话,后面的rule基本上我就没有用过,只是关联cadence对rule大概看了一下,呵呵,现在的板子很少有用到这些rule。如果不做仿真的话,这些rule感觉没多少意义,因为很多SPEC上的要求是在是太难达到了。有用的length与matched net length, 相当于cadence里面的propogation delay与relative propogation delay。其他譬如differential pair match length. 感觉Via under SMD还是比较有用的,max via count也是感觉意义不大。除了对照SPEC。@~@不过决定从现在开始把他们都用起来。要不然layout的确太没意思了@~@) f$ ~ L4 L* `& q% {5 a0 r2 {
Placement:完全没有用过, 大概看了一下,比较有价值的应该就是height这一项吧。可以设置room确定PCB不同的高度区域。但是没有尝试过,继续顶起,AD貌似不能导autoCAD的emn,做完实验以后再与大家分享经验。@~@+ k& o) L: d7 E5 W1 l2 Y5 a+ M* g
" ~/ T) b$ X5 F4 A3 Y m i; O
一些AD中自己觉得比较有用的快捷键
6 b( r( W! X; {# J Shift+S single layer。这个很多人都有用,但是里面还蕴藏着一个设置哦。preference-PCB Editor-Board insight Display-Avaiable single layer Mode, 可以尝试一下不同的选项的区别,个人倾向Hide other layer @~@
* G3 M, {, F# j7 q shift在pan的时候可以加速pan的速度
5 ^1 @# {4 R- P T7 n" q4 L' _ 按住alt就可以在水平方向或者竖直方向移动零件了
9 L. ^5 p/ T% z8 \ V,F: Fit View4 c7 E# c# D" M! @& I
按住shift+F点一个东东试试,在不用右键-find similar object了,但是感觉实际的用处还是不大
{3 \7 u4 e/ F0 g% g0 L shift+ctrl+H/V: 都用过上下左右对齐,这个是以水平垂直等间距放置的命令,并不仅仅局限component哦,想把via matrix做的飘飘亮亮的人有福了。/ G* z( M3 d6 ?! F
shift+w/v:选择favourite width/via, 呵呵,没怎么用,但是应该还是挺有用的,PCB上不久那几个线宽过来过去么。
7 Q f( H2 n1 u# Z3 [3 m Ctrl+H:经常用,选中所有在物理上有连接的object、但是使用这个小心,不定哪天你就把PCB上的pad的net给变掉了。用的最多的情况是画一个region连接2个pad,ctrl+H,在pcb inspector里面net直接回车,再也不用double click region, 再眯着眼睛慢慢找netname了。没办法,我眼神不好,这招真是被逼出来滴@~@1 r9 E# U# {2 g! I$ B
J+E/L/C……:想跳到哪跳到哪,这里只讲一个小诀窍。J+L,比如你要讲零件移到一个特定的位置,具体点螺丝孔吧,双击螺丝孔,提取坐标,J+L, key入螺丝孔的坐标,鼠标到达指定位置了,按住我拖,在零件被粘住后再J+L,key入指定位置的坐标,enter,这样就不会有任何哪怕0.01mil的off set了。曾经发了个帖子讲过,被一个坛友视为卖弄小小的鄙视了一下,但是这个的确是个人认为好的小技巧,所以冒着再次被鄙视的危险发出来。
$ T! {/ n7 q' X+ ]) Y( k. t7 e ctri+shift+left key: 试着按住左键拉一下线,7 k F6 e4 C- `: }
shift+C: 清除mask。这个应该大家都比较熟,但是韩式担心有没用过的,写下6 e7 ]- @ i, R: h+ ?
shift+B:call up query builder,这个还是蛮有用的。可以直接找到你想要的具备某些特性的object,
D,K: 打开AD 的layer stackup
shift+ctrl+left cllick: 一直都在hilightnet,有没有试过hilight layer呢,记住要左击layer label,当然感觉这个纯粹是花架子,shift+S比这个不强很多吗@~@
AD是可以与上版做compare的,Project->Show Differences / Show Physical Differences,不过我现在只是发现原理图可以这样,有谁知道PCB能这样不,怎么弄。
AD在storage manager里面可以方便的管理history里面的文件,还可以与以前的document compare。在project-local history-storage manager里面。
AD的自定义
AD是可以随意定义快捷键的,而且有超级多的command我们还没有发掘出来,这与怎么排列组合他们以利我们的使用,看个人了。每次想移动一堆线,只能一根一根的点,其实在edit-select-touching line/rectangle可以直接划下或框个框就可以选中了,跟allegro里面的选择一样。这个也是可以设置快捷键的。AD的上下左右全部被我换掉了@~@
不知道AD有没有类似allegro的skill工作做自己的表格,命令。如果能自己做命令,那就太好了,貌似有SDK包,貌似只能跟AD的官方要。什么,我太会开玩笑了,呵呵,我也认为这样很天真。不过AD的script是可以用的,但是没有用过。
AD的menu也是可以自定义的,在system里面。rcs都是可以修改的,还可以自己加下拉菜单,认真琢磨一下,其实你也可以自定义自己的AD。还有你的颜色设置也是可以保存的。打开view configuration, 左下角有个save view configuration.保存就可以了,下次如果想回去直接load一下就行。
AD的layer也是可以设置的。 在layer的label栏右键,layer set----board layer set, 想怎么设怎么设,以后不用一层一层打开了,直接就招呼过去了,可劲了吧@~@
AD还有自动完成功能,可以想象allegro里面的finish,AD里面则是在你拉线的时候,按住ctrl,左键一点就连起来了,爽就一个字。
AD back annotation
Allegro里面有back annotation,AD里面也有,但是貌似用AD拉的都是小板子,所以这个功能没什么意义。具体操作如下。
首先reset一下unique ID,在project——component link将PCB里面的零件与SCH里面的零件通过unique ID联系起来,同时产生一个。was档案。好了,重排序号吧。然后在SCH里面。Tool / Back Annotate Schematic,选择.was档案,在弹出来的对话框中accept change,好了,SCH序号也跟着改掉了。同步完成
现在能想到的也就这么多了,还有以下问题有待解决。
AD的VCS系统,这个绝对是一个很好的功能,把版本控制的事情交给机器做最好的。一直在手动做版本控制。
AD的3D功能。一直觉得这个功能有些鸡肋,但是这个不和外壳配合的3D的实际意义到底是什么呢,能根据3D仿真thermal吗,有用过的童鞋大家可以一起讨论下你为什么用它,他有什么优点。
layout出身,对原理图工具只是最基本的使用,希望可以象用PCB Editor般熟练应用sch。
AD还有一个片段服用功能,比如我2个AD模块一模一样,就不用布2次线了,但是目前还不知道该怎么用,这个应该是一个相当关键的应用,有用过的还望赐教。
AD的自定义,除了不动AD的内核,真的很想完全做成个人的定制版。希望早日实现
希望大家齐心协力,争取早日将AD用通,我这个只是最基本的应用,坛子里面还是有很多AD这块的牛人的,象吴鸣,苏鲁定,还有很多叫得出叫不出名字的,他们都是皓月之明,而我仅仅只是萤火小光。以前我是用cadence,用了2年,应该说用的还算马虎吧,其实关于软件的比较,个人觉得没什么太大的意义了,当然客观上讲,cadence还是要比AD强,但是并不是象很多用cadence的人想象的有那么大的鸿沟。AD是垃圾,AD是自行车,cadence是飞机啥的。AD其实也是很不错的。现在每天cadence的坛子里面那么多更新,而AD多少年了还是老样子,真的很是一番感慨。可能真的是定位不同。偶尔也去cadence的坛子看看,有个帖子,问得是线宽,via与电流的对应关系,本来是个很简单的问题,但是那个问题讨论还是蛮激烈的,并不是我们想象的20VS0.5啥啥的,考虑温度,铜厚,搬出一堆公式,至于最后的定论,我是没看的,我想无论怎么样,每个人都有自己的经验,只要自己找到自己的理由即可。但是反观AD这边有个一模一样的问题,回答的就是一个表格,我们经常见到的那种。希望大家发扬刻苦钻研的精神,即使在单纯的layout,即使我们用的只是AD,我们也要追求cadence的品质