Allegro学习(http://www.asmyword.com/forum.php?mod=forumdisplay&fid=86)
一、资源
1、网站推荐www.eda365.com,里面有很多有用的东西;当然还有官方代理商的网站http://www.pspice.com.cn/;
2、视频教程:有库源电气的视频教程,还有在www.eda-china.com(有个叫詹书庭的)中的视频教程,这两个视频都是讲的16.5版本的,当然还有于博士的讲的16.2版本的;
3、PCB的步骤和AD还有PADs都一样的,原理图→封装→布局→规则约束→布线→覆铜→生成Gerber;
4、Allegro资源汇总贴:http://www.eda365.com/thread-11539-1-1.html;
5、就是软件自己的Help了;
6、吴均出的《Cadence印刷电路板设计:Allegro PCB Editor设计指南》;
7、Allegro的GRE(GlobalRouteEnvironment)功能
http://www.asmyword.com/forum.php?mod=viewthread&tid=36&fromuid=3
(出处: 中国导航技术论坛)
二、原理图
1、在原理图生成网表的时候会出现错误,具体的错误类型及原因可以通过打开ORCAD Capure 中的help,里面的View菜单下面有Show Navigation,(在Reference目录下有Orcad Capture Messages Reference Guide);
例如错误Error [ALG0052]的说明如下:
Error [ALG0052] Net <Net Name> has illegal Character "!". Please rename the net
A net name cannot contain illegal characters such as ! (the bang character). You must rename
the net.
Note the list of illegal characters on net names in the Capture - PCB Editor flow
■ ;
■ !
■ `
■ "
■ ~
■ * along with any other character.
■ This implies that * is a valid pin name but a*, *a and ** are invalid.
■ Unicode character set
Also, cross probing (cross highlighting and cross selection) will not work for this part if you
use a ' or a \ (back slash) in the net name.
2、错误:Cannot perform annotation of heterogeneous part 'U?D(Value TMS320C6713_PYP) at location (2.00, 0.90) on page 07-Gnss', part has not been uniquely grouped (using a common User Property with differing Values) or the device designation has not been chosen
INFO(ORCAP-1379): Done updating part references(http://www.eda365.com/thread-9741-1-1.html)
说明:但是为什么一定要选Incremental reference update呢?===>如果不使用这种方法,则每次排序都会改变以前排列好的元件序号
' B* T* W$ C/ A2 E, e0 e我选这种排序为什么不行呢?===>无条件排序就是刚才说的,每执行一次则从头到尾排列一次,遇到重复调用的多分部元件就跳过报错PCB论坛$ e, q) l! A3 Y8 Y
Incremental reference update和Uncondition(无序)排序有什么区别呢 ?请版主帮我分析一下什么情况下应该使用哪一种排序比较好?谢谢了~* `/ F& i# O1 ?; p6 g9 J3 r2 w
===>很显然,如果你有多分部元件被重复调用,无条件排序是无法完成排序功能的,因为它的动作始终过不去那一关;而增加排序则可以一步一步地排下去,直到你所有的元件都配编上序号。
解决办法1:多分部元件被多次调用时,自动排序需要多执行几次(元件调用几次就要执行几次排序)/以上,以上log表明:1.自动排序时选择Incremental reference update;2.第一次自动排序后出现警告,也就是上面的ERROR [ANN0005]3.忽略上述警告,再执行一次相同的自动排序;4.U?D编号完成! q-
解决办法2:把器件的value名字改来不一样,Value改掉,则表明这两个元件不同了,也就不是"调用"关系了。
3、错误:Error [ALG0062] Value for property pcb Footprint contains carriage return for X1800
解决办法:原因是此顆零件的屬性footprint其內容值字尾包含carriage return字元,解決方法是:在該零件的屬性編輯視窗下找到pcb footprint屬性,將carriage return字元刪除並保存即可解決.試試看,Icarriage return 就是带了回车,你在Footprint后面按一下del即可,用个方法搞定了
4、错误:#1ERROR(ORCAP-36055):illegal character in\hj-am13-mb-v0.0.0(a10)\.
解决办法:原因是存储库的地方有非法字符,可以在Source Library选项下查找该非法字符,然后找到封装后,编辑一下在更新就可以更改到现在的封装路径,所以在画原理图的时候要注意,文件名和路径名均不能有非法字符,否则将无法导出网标。
三、封装制作与布局
1、感觉Allegro软件制作封装比PADS和AD要麻烦,不过利用PADS的LP wizard工具可以比较方便的制作封装,毕竟是符合IPC规范的,关于LP Wizard的一些用法在其官方网站上有视频讲解或者就看起Help文档也能够比较好的掌握;
2、显示过孔:Setup——Design Parameter Editor——Display——Display Plated Holes;
3、Rectangle无法修改线宽,要修改线宽需用用Line绘制;
4、.pad焊盘文件,.dra绘图文件(可编辑),.psm封装文件(不可编辑),由dra生成;
5、用LPWizard生成的库是放在每个文件夹里面的,用批处理命令提取出所有文件到一个文件夹下;
http://www.eda365.com/forum.php?mod=viewthread&tid=90224
6、Allegro导入DXF时,DXF文件名不能有中文;把 USE DEFAULT TEXT TABL跟 Incremental addition这两个选项勾上,不然导入DXF后元器件也没有了;
7、给板框添加倒角,Manufacture——Drafting——Fillet,先后点击需要倒角的边即可;
Manufacture------dimension/draft――Fillet 圆角
Manufacture------dimension/draft――Chamfer 斜角
以上操作只对LINE 画的外框有效,而对Shape 无效。
8、Allegro的坐标命令,绝对坐标:x 1 2;x 1 y 2;相对坐标:ix: 1或者iy:1,;命令跟数字后面要加空格;
9、Allegro更新封装,Place——Update Symbol;
10、Allegro中对齐的方法:(1).首先右键application mode切换到模式placement edit;(2).框选需要对齐的元件;(3).关键的一步,在你要对齐的基准元件上右键,选择align components;(4).allegro只能实现这个中心点对齐,至于更高级的要使用skill了;
11、有些元件封装需要用到安装孔,在制作封装时,不给孔添加Pin Number,就是安装孔,菜单Edit-Delete,然后选择相应引脚的Pin Number删除即可,此时可以用Display-Element选择相应的引脚可以发现已经变成了Mechanical Pin,而其他有Pin Number的仍然是Connect Pin;
12、通孔式焊盘做得比较大,且排列的较密集,怕连锡怎么办?
答:焊盘间画丝印做隔离。
13、快捷键设置(alias 设置组合快捷键,funckey设置组合快捷键和单快捷键,C:\pcbenv下面的evn文件)
alias Pgup zoom in 设置放大
alias Pgdown zoom out 设置缩小
alias ~R rotate 设置control+R 旋转(~代表control键)
alias ~M mirror 设置control+M镜像
funckey h hilight 设置h 高亮显示
funckey 1 'pop bbdrill;pop swap;subclass top' 切换到顶层
funckey 2 'pop bbdrill;pop swap;subclass top;+' 切换到第二层
funckey 3 'pop bbdrill;pop swap;subclass top;+;+' 切换到第三层
funckey 4 'pop bbdrill;pop swap;subclass top;+;+;+' 切换到第四层
funckey 5 'pop bbdrill;pop swap;subclass top;+;+;+;+' 切换到第五层
funckey 6 'pop bbdrill;pop swap;subclass top;+;+;+;+;+' 切换到第六层
funckey 7 'pop bbdrill;pop swap;subclass top;+;+;+;+;+;+' 切换到第七层
funckey 0 'pop bbdrill;pop swap;subclass bottom' 切换到底层
funckey p 'settoggle no_etch_shape_display;redraw' 不显示铜皮铜框
funckey o ‘settoggle no_shape_fill;redraw’ 不显示铜皮但有铜框
14、Hight时取消条纹状显示,Setup——User Preference Editor——Display——勾选display_nohilitefont;
15、在应用区域约束规则的时候,注意是选择Shape——Rectangular,不是Add——Rectangle;
16、在使用Z-Copy命令的时候注意shape是否有重合的部分;
17、Allegro中自带的常用的KeyBoard Command命令:
可以通过Tools——Utilities——KeyBoard Command查看;
常用的有:define grid 定义栅格点;hilight 高亮显示;net **高亮显示某个网络;还有跟rats相关的命令,比如rats all ,rats net, rats blank;add_viaarray,批量添加过孔;
18、在使用Spin或者Route命令时,如果旋转方式设置为元件中心的话,都会很难控制,这时候设置为User Pick,会让工作变得简单。
19、焊盘的几个概念说明:SolderMask(Solder焊接的意思,Mask面具的意思,翻译过来应该是焊接面的意思),使铜皮裸露出来,需要焊接的地方,所以觉得通常翻译成阻焊层总觉得不太好理解,还是直接记住英文就OK了;PastMask(Paste粘贴,用浆糊粘贴,翻译过来应该是用锡膏粘贴的面),钢网开窗大小,需要图上锡膏焊接的;
三、布线和规则
1、层叠结构设置:层叠结构type中有三种类型:conductor:走线层;plane:平面层;dielectric:介质层(隔离层);Negative artword设置该层为正片还是负片(在出光绘Artwork时,在plot mode里面有Positive和Negative,这两者是有区别的);
2、焊盘显示圆圈还是填充问题:Design Parameter Editor中Enhanced Display modes里面Display plated holes:显示有金属连接的过孔;Display non-display holes:显示无金属连接的过孔;Filled pads 填充焊盘;Connet line endcaps:连接连线端点的空隙;
3、关于规则的设置:
(1)xnet设置:analyze——Model Assignment——OK,选择对应的电阻或者电容然后点击cread mode;
在出现对话框中选择Create ESpiceDevice model,点击OK, 出现下面窗体:
ModelName: 输入产生Model的名字
Circuit type: 选择Type, 电阻,电感或电容
Value: 值
Single Pin: 各Pin的连接顺序, 中间为空格,
这里要注意要看零件的pin的排列,1 2 3 4 5 6 7 8,就是: 1 和2 是一个电阻,其它同理所以如果就是普通电阻电容那就更简单了.
Common Pin: 这里不用管它,空着就可以.
上面都输入好了就点击OK,完成Model的建立.
点击OK退出就可以发现连接该排阻的两边的Net 都有了个Xnet属性,如下图:
这样就可以搞定Xnet,很简单吧!
4、用highlight sov命令后如何取消高亮显示:用highlight高亮选中,然后在用dehighlight取消高亮的部分就可以把highlight sov高亮的取消掉了,网上有说“这个是用来检查跨分割的,取消的办法是:如果是4层板的话,在电源层跟地层都铺上地网络,然后再按Highlight Sov刷新即可”,但是没成功过;
5、setup-user preference editor里面有Route下面的Connet有allegro_dynam_timing 和allegro_dynam_timing_fixedpos选项可以打开走线时的线长提示;
6、差分对规则在Electrical 的优先级高于Physical里面的差分对约束规则;
7、区域约束时用到的Region约束,区域中所有的net和net class都将采用该区域约束,如果有区域内有些net class需要不同的设计规则,则需要在区域内建立不同的Regina-Class;
8、Relative Propagation Delay:①设置了Target是Relative Delay,Actual是与Target长度之差;不设置Target是Match Delay,此时Actual等于length与最长的网络之差;②Local同一net进行匹配,Global不同网络之间进行匹配;③Delta:Tolerance 增量:误差;
9、Rats飞线的显示设置在Setup——Design Parameter Editor——Display里面的Ratsnest geometry和Ratsnest point设置;
10、在Logic——Identify DC Nets可以设置电源网络,在布线的时候会以正方形指示;
四、覆铜
1、在覆铜时,shape——Global Dynamic Shape Parameters 中对shape先设置成Rough或者Disabled,可以加快布线及DRC检查的速度,但是最终出光绘文件的时候,必须将Shape更新成为Smooth类型;
2、Allegro给批量Via加上Gnd的net属性方法:①、复制属性是GND的via,添加就OK;②、Tools——Utilities——KeyBoard Command,选择add viaarray,就可设置过孔的间距,网络等;
五、检查
1、Display——status里面如果有黄色指示可以点击黄色指示查看具体的DRC错误及未连接的网络;
2、在之前使用Logic——Identify DC net后,默认的电源网络飞线是不显示的,而是现实的叉叉状,要修改成飞线显示,选择Edit——property,然后选择需要修改的网络,然后在Table of Contents里面选择Ratsnest_Schedule,然后在下拉框中选择Min_TREE即可,如果要切换成叉叉显示,选择Power_AND_GROUND;
3、导出3D图到三维软件Solidworks或者CATIA等中,File-Export——IDF,CATIA导入时分别选择 .BDF和.IDF文件即可,注意在板子里面要有Place_Bound_Top,而且还要通过Setup——Areas——Package Height定义元件的高度(在做封装的时候做好OK);或者在导出IDF的时候在Default Package Height里面填上合适的高度即可;
4、如果有元件封装需要更改,点击Place——Update Symbol更新即可;
5、Allegro转PADS步骤:Altium Designer Summer08以后的版本中文档导入向导支持Allegro PCB设计文件格式(.Brd)或Allegro ASCII文件格式(.Alg)。如果用户Altium Designer设计系统中安装了Allegro PCB编辑器(支持15.2以下和16版本),用户就可以直接转换Allegro PCB设计文件(.Brd)成Altium Designer PCB文件(.PcbDoc)。除此之外,Altium Designer只能支持Allegro ASCII文件格式(.Alg)转换成Altium Designer PCB文件。接下来,我们将如下操作完成Brd格式到Alg格式的转换:
- 复制Altium Designer安装目录下\System目录下两个文件,分别为 " Allegro2Altium.bat " 和 " AllegroExportViews.txt " ,到需要转换的.brd文件夹下;
- 在CMD命令环境下,切换到.brd文件夹下,然后键入命令 " Allegro2Altium yourfilename.brd " 。
- 在用户转换文件目录下,将生成文件 " yourfilename.brd.alg " ;同时,还将生成一个".log"日志文件。
- 转完后,在另存为protel 4.0格式,
- 在打开PADS的padslayout Translator工具,选择打开文件类型protel就可以导入了,导入设置参看http://www.eda365.com/forum.php?mod=viewthread&tid=85766;
- Allegro出DXF文件步骤:
(1)打开您的BRD FILE
(2)显示好当前您要转出的层
(3)、file >>EXport>>DXF...
(4)、
(5)、
(6)、
完毕。
7、Allegro出Gerber导入CAM350分层问题:
(1),此图原为GBL只有1层的是个复合层,导入后变成了3层。
(2),我们需要更该CAM350的系统设置:请依照以下步骤:file-setup-photoploter
(3)、点击右边的Setup Options(更改设置的时候不要导入任何资料,只打开一个空的CAM350就OK)——Convert Composite to Single Layer
(4)、接着把此项勾选上: 然后OK确定,关闭CAM350,再重新打开CAM350导入:
(5),重新导入的结果:
当然如果需要把一层变成几层的,相反的方法,把勾去掉即可
8、Allegro的精度问题(最好就不要换单位,其他的软件能随便换,allegro最好不要换,allegro只记录转化后的数值而并非初始值,多次转换会导致误差越来越大):
(1)、在Setup——Design Parameter Editor——Design里面的Accuracy(decimal places)
(2)、Artwork ——Format里面的Integer places和Decimal places
(3)、NC Parameter里面的Format的X.X
注意事项:在出光绘的时候,Artwork的精度要和NC Parameter的精度设置一样,不然出光绘的时候可能过孔会有偏移;但是Design Parameter Editor里面的精度设置跟这两个有什么关系呢?有人说如果Design里面的单位设置为mil,Accuracy为2,那么在Artwork和NC Parameter里面Decimal places应该为5,因为出光绘的单位为Inch,1 Inch=1000mil,所以要匹配设计的精度,Decimal Places应该为5;
参考:
平时画图多用mm为单位,出gerber时也以公制为单位,刚好和mm对应,也没出过什么问题。有时碰到用mil为单位画的板子,以英制为单位gerber后导到CAM350里会出现些问题,仔细想想便理解了其中的意思。
allegro中画图和出gerber分别用的是两套单位,互不相干。15.7中绘图单位于Setup-->Drawing Options处设置;光绘文件单位于Manufacture-->Artwork处设置,Drill和Route单位于Manufacture-->NC-->NC Parameters处设置。
关于数据精度,理论上出gerber要比画图精度更高,如画图用mm,2位小数,则出gerber用mm至少3位小数。如果单位不同,则换算到相同单位再比较,如画图用mil,1位小数,出gerber用英制,即inch,要精确到0.1mil需要4位小数,出gerber要5小数才好。大家建议画图和出gerber用相同的单位,我想是为了避免不同单位换算可能会出现除不尽的情况,影响到生产,inch和mil换算还好,mm和inch换算搞不了会出些小问题,没必要自找麻烦。
另外再提一下出Ncroute,Ncroute需要一个ncroutebits.txt文件指定铣刀直径,该文件中铣刀直径的单位须和NC Parameters中一致。例如:画图用mm,出gerber用inch,铣刀直径为1mm,则在Ncroute_path层画Route路径时line width应为1,ncroutebits.txt中标识该号铣刀须用inch为单位,即0.0394 T0*。这种情况就是自己给自己找别扭了。
所以设计pcb时,假设画图设置单位为A,光绘、NC和ncroutebits.txt须使用相同单位,设置为B,则A和B最好一致。
9、Allegro出PDF文字问题:Allegro出PDF有两种方式一个是File—Export下面可以到处PDF,还有一个就是装虚拟打印机,用虚拟打印机打印时如果要想打出的PDF的文字可以查找需要在File—Plot Setup下面的Windows标签下Non-Vectorized text勾选上,这样不矢量化就可以在PDF中查找了!
六、GRE新功能
1、建立pinpairs时,会提示INFO:PinPairs which are not explicitly constrained will be automatically removed when Constraint
Manager is closed,意思是提示如果不给建立的Pinpairs进行约束规则,退出约束管理器后pinpairs也就消失;
2、GRE:选择工具ALLEGRO PCB Design GXL(legacy)即可,建立Bundle,在Constraint Manager里面的Properties里面可以建立,注意在Find栏里面几个选项的勾选,GROUPS表示Bundle,Other Segs表示Flow,ratsnets;手动创建 Bundle 之前,为了保证以后人工走线能够完全成功,所以留了设计裕量,在设置 Bundle 的粗细的时候如图所示的 Flow Line relative Width 110%。这个参数的设置的意义在于,创建的 Bundle 的宽度,是根据 Constrains Manger 里面设置的 Spacing 和 Physical 约束的实
际值上加了 10%的裕量。Via 的没有加裕量的原因是,FLOW Via 的尺寸已经大大超出了实际 Via 所用到的面积。在做 BGA 规划的时候,另外一个原则就是从 BGA 一个角以顺时针或者逆时针的方向进行规划。以本项目为例,就是从左下角开始,一组一组的规划,保证每层出线后用最少的一个走线层的循环,如图所示的层的颜色:蓝-黄-粉-紫;蓝-黄-粉-紫;上面因为考虑到有别的线,所以用走纵向线的层进行循环。
posted on 2013-07-19 14:37 lanlingshan 阅读(8727) 评论(0) 编辑 收藏 举报