原创 Cadence实例之EP3C25F324_Cadence布局布线常见问题详解(7)

2012-5-11 13:04 1622 12 12 分类: MCU/ 嵌入式

1. 怎样建立自己的元件库?
    建立了一个新的project后,画原理图的第一步就是先建立自己所需要的库,所采用的工具就是part developer. 首先在建立一个存放元件库的目录(如mylib),然后用写字板打开cds.lib,定义: Define mylib d:\board\mylib(目录所在路径). 这样就建立了自己的库。在Concept_HDL的component->add,点击search stack,可以加入该库。
6 _4 n1 d7 b" Q$ I

2. 保存时Save view和Save all view 以及选择Change directory 和不选择的区别?
; l+ Z0 k+ q; z: B建立好一个元件库时,首先要先保存,保存尽量选择 save view。在concept-HDL中,我们用鼠标左键直接点击器件后,便可以对器件的外形尺寸进行修改,这时如果你再进入part developer做一些修改后,如果选择save all view会回到原来的外形尺寸,而选save
会保留改动后的外形。
   

3. 如何建part库,怎么改变symbol中pin脚的位置?
    在project manager中tools/part developer可建立,选择库并定义part name,在symbol中add symbol,package中add package/addpin,依次输入pin:
" [3 W. L4 X) Kpackage中:
a, Name : pin’s logical name不能重复
, W9 M( w9 I5 w) ib, pin : pin的标号,原理图中backannotate后相应的标号
c, pin type: pin脚的类型(input,output等,暂可忽略)
d, active:pin的触发类型  high(高电平),low(低电平)
, `6 \+ R2 W3 }' de, nc:填入空脚的标号
0 B, Y4 D6 d" H. G5 Gf,  total:此类型的所有pin脚数8
g, 以下暂略
symbol中:
a, logical name:对应package中的name
b, type:对应package中的type
% o1 q1 h6 g+ ~  {: A+ z* X! i" cc, position:pin脚在器件中位置(left , right , top , bottom)
3 @, F: Y( K; A1 Yd, pintext:pin在器件中显示的name(对应package中的pin,但可重复,比如package中
; z, u7 L; Y7 O; H3 p4 _的gnd1和gnd2都可设为gnd):
e, active:对应package中的active
    修改:用part developer打开要修改的器件,*选择edit/restrict changes(若不选择,则器件被保护,修改后存盘无效),一般修改:
a, package中相应pin的标号和name
# K4 n! G% U7 x7 {2 l) m) U5 @& Wb, pin的active类型
c, symbol中各pin脚的顺序(pin脚的顺序在第一次存盘后再次打开会被改变,对于较多
pin脚的器件,如232pins,修改较繁琐,故尽力保证的一次的成功率。pin脚在器件中的排列顺序是根据symbol中的顺序而定,故symbol中pin脚的顺序一定要正确,若有错需修改,选中pin按ctrl键配合上下键标可移动pin脚位置。


4. 画电原理图时为什么Save及打包会出错?
    当保存时出错,主要原因可能是:所画的信号线可能与元件的pin脚重合,或信号线自身重合;信号线重复命名;信号线可能没有命名;在高版本中( 版本14.0以上)中,自己所创建的库不能与系统本身带有的库名字相同;建库时,封装原件的管脚个数与原件库的管脚个数不同。打包时会出错的原因则有可能是所做的封装类型与元件不匹配(如pin脚的个数,封装的类型名等。
1 [5 y* N! K. m) ?

' p1 m0 r1 m2 \+ w7 A. B1 d5. 在电原理图中怎样修改器件属性及封装类型?
# s' |7 K2 X5 U; Y# `$ a    在菜单Text下拉菜单中选择Attribute特性,然后点击器件,则弹出一Attribute 窗口,点击Add按钮,则可以加入name ,value,JEDEC_TYPE (封装类型) 等属性。
3 T! U( {* v9 d8 c! U. v) e  B2 r( m'
6. 如何在Pad Design中定义Pad/via?及如何调用*.pad?
在pad design中,建立pad 时,type选single类型,应该定义下面几层的尺寸:begin layer(有时是end layer), soldermask和 pastemask 。建立Via时,type一般选through,定义drill hole 的尺寸 和所有的layer层(注意定义thermal relief和anti pad)以及soldermask。一般Pastemask和Regular一样大,soldmask比layer的尺寸大几个Mil,而thermal relief和anti pad比regular pad的尺寸大10Mil以上。  

* H  d% f5 ~1 Y. J8 P4 E( z/ [7. 做封装库要注意些什么?
, i6 R( X$ l5 R" q( T做封装既可以在Allegro中File->New->package symbol,也可以使用Wizard(自动向
( b4 O4 B" Q" P) ~  z导)功能。在这个过程中,最关键的是确定pad与pad的距离(包括相邻和对应的pad之间),以确保后期封装过程中元器件的Pin脚能完全的无偏差的粘贴在Pad上。如果只知道Pin的尺寸,在设计pad的尺寸时应该比Pin稍大,一般width大1.2~1.5倍,length长0.45mm左右。除了pad的尺寸需特别重视外,还要添加一些层,比如SilkScreen_top和Bottom,因为在以后做光绘文件时需要(金手指可以不要),Ref Des也最好标注在Silkscreen层上,同时注意丝印层不要画在Pad上。还应标志1号pin脚的位置,有一些特殊的封装,比如金手指,还可以加上一层Via keep out,或者route keep out等等,这些都可以根据自己的要求来添加。操作上要注意的是建好封装后,一定不要忘了点击Create symbol,不然没有生成*.psm文件,在Allegro就无法调用。
  

3 Z8 {1 U# H5 Q5 D  |8.为什么无法Import网表?
  在Allegro中File选项中选Import―――>logic,在import logic type选HDL-concept,注意在Import from栏确认是工作路径下的packaged目录,系统有可能自动默认为是physical目录。
7 l/ a$ C5 @/ Y
9.怎么在Allegro中定义自己的快捷键?
. Q. ?- h, h! L! i6 k% ]2 Y8 H7 z在allegro下面的空白框内,紧接着command>提示符,打入alias F4(快捷键) room out(命令)。或者在Cadence 安装目录/share/pcb/text里有个env文件,用写字板打开,找到Alias定义的部分,进行手动修改既可。
- ]7 [; t! H8 t- \% ?: ~
10.怎么进行叠层定义?在布线完成之后如何改变叠层设置?
在Allegro中,选Setup-Cross-section。如果想添加层,在Edit栏选Insert,删除为del,材料型号,绝缘层一般为FR-4,Etch层为Copper,层的类型,布线层选Conductor,铺铜层为Plane,绝缘层为Dielectric,Etch Subclass Name分别为Top,Gnd,S1,S2,Vcc,Bottom。
6 w0 A- \2 q; [! U( V+ f) f/ xFilm Type一般选择Positive,plane层选择Negative。如果布线完成之后,发现叠层设置需要改动。比如原来设置的为3,4层是plane层,现在需要改为2,5层,不能简单的通过重命名来改变,可先在2,5层处添加两层plane层,然后将原来的plane层删除。

$ \# j& m6 j3 L* u: ~!
11.为什么在Allegro布局中元器件在列表中不显示或者显示而调不出来?
, v) X6 C! M# g7 E首先确定Psmpath,padpath的路径有没有设置,如果没有设置可以在Partdevelop里设置,或者在env文件中手动添加。也有可能器件在列表中存在,但是无法调出,可检查该器件所用到的*.pad文件及封装库文件*.dra,*.psm是否存在于你的工作目录×××/physical里。另外还有一种可能就是页面太小,不够摆放器件,可以在setup-draw size中调整。
# D( q, g; Y7 m7 W, t4 `' n. j, b
12.为什么器件位置摆放不准确,偏移太大? 
    主要是因为Grids设置的问题,可在setup-grids中将每一层的Etch及Non-etch的grids的X、Y的spacing间隔调小。对于一些对位置要求比较严格的器件,比如插槽,金手指等用于接口的元器件,则应该严格按照设计者给定的位置尺寸,在命令行里用坐标指令进行定位。如:x 1200 3000 。

+ T  M9 [3 P9 Y& K- o13.怎样做一个Mechanical symbol,以及如何调用?
Allegro中File-new,在drawing type中选择Mechanical symbol。主要是为了生成PCB板的外框模型,在这里面虽然也可以添加pad,但是没有管脚对应关系。Mechanical symbol 完成以后,生成*.dra文件。在Allgro中调用时,选择by symbol―>mechanical。注意右下角的library前面的勾打上。

/ D3 W! P# B& v14.在布局后如何得到一个整理后的所有元件的库?
如果嫌physical目录下各类文件过分繁冗,想删除一些无用的文件,或者只有一个*.brd文件,想获取所有的元件及pad封装库的信息,可以采用这种办法:将*.brd另存在一个新的目录下,在File->选export->libraries,点中所有选项,然后export,即可在你的新目录下生成所有的*.pad,*.psm,*.dra文件。  

3 i5 F. [! G/ n: t+ b5 y6 v15.如何定义线与线之间距离的Rule?
    我们以定义CLK线与其它信号线之间的距离为例:
% u1 l, L5 ~$ W在Allegro中:setup->constraints,在spacing rule set中点set values。首先add一个constraint set name,比如我们取名为CLOCK_NET,然后就在下面定义具体需要遵守的规则。
比如line to line 我们定义为10 mil。接着在allegro主窗口的edit菜单下选择properties,会跳出你的Control工具栏,在find by name 中选择net,在右下角点击more。在新弹出的窗口的列表中选择你所想规定的CLK线,如CK0、CK1、CK2等等,确定右边的selected objects中以选中所有的线,点Apply。又会出现一个新窗口,在左边的available properties中选择NET_SPACING_TYPE,在左边给它赋值(名字随意),比如CLK。回到setup->constraints,
在刚才set values的下面点击Assignment table,即可将所定义的规则赋给所选用的net。
在Specctra中,可先选中所要定义间距的信号线(select —>nets->by list),然后在rules中选selected net->clearance,在该窗口可定义一系列的布线规则,比如要定义线与线之间的间距,可在wire-wire栏定义,注意,当点Apply或者OK之后,该栏仍然显示-1(意思是无限制),只要看屏幕下方的空白栏,是否有定义过的信息提示。

5 |' ~" t& Q2 m4 ]/ W) T
16.为什么在Allegro中画线不能走45度角?
, b3 ]* m2 v1 v6 k5 M4 C; w在control控制栏的line lock中,可将90改为45,如果想画弧线,可以将line改为Arc。
, D* v& j' z3 X. }# m
8 m8 b0 d7 ~" S) J. h17.如何在CCT中定义走线最大最小距离?
5 w4 g2 q: M- V' e% A4 G; s同上面定义间距的方法类似,在选中所要定义的线之后,rules->selected net->timing,则可以在minimum length和maximum length中定义走线的最长最短长度限制,也可以用时间延迟为限制来定义。还有一种方法就是在Specctra Quest中提取某一根信号线的拓补结构作为模型,在里面定义各段导线的长度限制,然后生成rule文件,可以约束相同类型信号线的走线。

& ~5 w' R* e  G* m) q6 l( i5 |( Q5 g18.在CCT中如何进行一些保存读盘操作(颜色设置、规则保存)?
7 h+ l! r* Q# }9 ^5 L6 ]在Specctra里,可用file->write->session来保存当前布线,用file->write->rules did files来保存规则文件,调用时均使用file->execute do file,然后打需要调用的存盘文件,如Initial.ses或rules.rul 。在color palette中使用write colormap和来load colormap来保存和读取颜色设置。
6 i3 O- Y) u! R" _
19.在CCT中怎么大致定义自动打孔的位置,怎么打一排过孔及定义其排列形状?
CCT中有自动打过孔的功能,在Autoroute->Pre Route->Fanout 。可以指定过孔的方向,比如想把过孔都打在Pad的内部,则可以在location中选inside。其中也可以定义一些其他限制。另外有时我们可以选择一组线进行平行走线,这时就可能同时打一排过孔,右击鼠标选择set via pattern,可选择其排列形状。在窗口的右下方也有快捷按钮可以选择。
; x4 G: }7 a' D) \
1 a* H- ~1 {4 r

更多文章请访问:

我的博客:http://bbs.ednchina.com/BLOG_liangziusb_440752.HTM

我的淘宝店铺:http://shop64171919.taobao.com

我的实体店铺:北京新中发电子市场2557号

良子.2012年    承接USB开发工程

QQ:2687652834    392425239

 

文章评论0条评论)

登录后参与讨论
我要评论
0
12
关闭 站长推荐上一条 /2 下一条