一.零件建立 在Allegro 中, Symbol 有五种, 它们分别是Package Symbol 、Mechanical Symbol、Format Symbol、Shape Symbol、Flash Symbol。每种Symbol 均有一个Symbol Drawing File(符号绘图文件), 后缀名均为*.dra。此绘图文件只供编辑用, 不能给Allegro 数据库调用。Allegro 能调用的Symbol 如下: - Package Symbol
一般元件的封装符号, 后缀名为*.psm。PCB 中所有元件像电阻、电容、电感、IC 等的封装类型即为Package Symbol。 - Mechanical Symbol
由板外框及螺丝孔所组成的机构符号, 后缀名为*.bsm。有时我们设计PCB 的外框及螺丝孔位置都是一样的, 比如显卡, 电脑主板, 每次设计PCB时要画一次板外框及确定螺丝孔位置, 显得较麻烦。这时我们可以将PCB的外框及螺丝孔建成一个Mechanical Symbol, 在设计PCB 时, 将此Mechanical Symbol 调出即可。 - Format Symbol
由图框和说明所组成的元件符号, 后缀名为*.osm。比较少用。 - Shape Symbol
供建立特殊形状的焊盘用, 后缀为*.ssm。像显卡上金手指封装的焊盘即为一个不规则形状的焊盘, 在建立此焊盘时要先将不规则形状焊盘的形状建成一个Shape Symbol, 然后在建立焊盘中调用此Shape Symbol。 - Flash Symbol
焊盘连接铜皮导通符号, 后缀名为*.fsm。在PCB 设计中, 焊盘与其周围的铜皮相连, 可以全包含, 也可以采用梅花辨的形式连接, 我们可以将此梅花辨建成一个Flash Symbol, 在建立焊盘时调用此Flash Symbol。 其中应用最多的就是Package symbol即是有电气特性的零件,而PAD是Package symbol构成的基础.
一)建立PAD 启动Padstack Designer来制作一个PAD,PAD按类型分分为: - Through,贯穿的;
- Blind/Buried,盲孔/埋孔;
- Single,单面的.
按电镀分: - Plated,电镀的;
- Non-Plated,非电镀的.
a.在Parameters选项卡中, Size值为钻孔大小;Drill symbol中Figure为钻孔标记形状,Charater为钻孔标记符号,Width为钻孔标记得宽度大小,Height为钻孔标记得高度大小; b.Layers选项卡中,Begin Layer为起始层,Default Internal为默认内层,End Layer为结束层,SolderMask_Top为顶层阻焊, ,SolderMask_Bottom为底层阻焊PasteMask_Top为顶层助焊, PasteMask_Bottom为底层助焊;Regular Pad为正常焊盘大小值,Thermal Relief为热焊盘大小值,Anti Pad为隔离大小值.
二)建立Symbol - 启动Allegro,新建一个Package Symbol,在Drawing Type中选Package Symbol,在Drawing Name中输入文件名,OK.
- 计算好坐标,执行Layout→PIN,在Option面板中的Padstack中找到或输入你的PAD,Qty代表将要放置的数量,Spacing代表各个Pin之间的间距,Order则是方向Right为从左到右,Left为从右到左,Down为从上到下,Up为从下到上;Rotation是Pin要旋转的角度,Pin#为当前的Pin脚编号,Text block为文字号数;
- 放好Pin以后再画零件的外框Add→Line,Option面板中的Active Class and Subclass分别为Package Geometry和Silkscreen_Top,Line lock为画出的线的类型:Line直线;Arc弧线;后面的是画出的角度;Line width为线宽.
- 再画出零件实体大小Add→Shape→Solid Fill, Option面板中的Active Class and Subclass分别为Package Geometry和Place_Bound_Top,按照零件大小画出一个封闭的框,再填充之Shape→Fill.
- 生成零件Create Symbol,保存之!!!
三) 编写Device 若你从orCad中直接生成PCB的话就无需编写这个文件,这个文件主要是用来描述零件的一些属性,比如PIN的个数,封装类型,定义功能等等!以下是一个实例,可以参考进行编写: 74F00.txt (DEVICE file: F00 - used for device: 'F00') PACKAGE SOP14 ⎫ 对应封装名,应与symbol相一致 CLASS IC ⎫ 指定封装形式 PINCOUNT 14 ⎫ PIN的个数 PINORDER F00 A B Y ⎫ 定 Pin Name PINUSE F00 IN IN OUT ⎫ 定 Pin 之形式 PINSWAP F00 A B ⎫ 定 可Swap 之Pin FUNCTION G1 F00 1 2 3 ⎫ 定 可Swap 之功能(Gate) Pin FUNCTION G2 F00 4 5 6 ⎫ 定 可Swap 之功能(Gate) Pin FUNCTION G3 F00 9 10 8 ⎫ 定 可Swap 之功能(Gate) Pin FUNCTION G4 F00 12 13 11 ⎫ 定 可Swap 之功能(Gate) Pin POWER VCC; 14 ⎫ 定 源Pin 及名 GROUND GND; 7 ⎫ 定 Ground Pin 及名 二、导入网表 Ⅰ. 网表转化 在调入前,应该将要增加的定位孔和定位光标以及安装孔加到网表中,定位孔用M*表示,定位光标用I*表示 Ⅱ . 进入Allegro,File/Import/Logic调入网表,若显示"0 errs,0 warnings"则表示没有错误,可以进行下一步,否则,应用File/Viewlog 查看原因,根据提示要求电路设计者修改原理图或自己在元器件库中加新器件.
四. 设置 Ⅰ设置绘图尺寸,画板框,标注尺寸,添加定位孔,给板框导角 1. 设置绘图尺寸:Setup→Drawing Size 2. 画板框:Class: BOARD GEOMETRY Subclass: OUTLINE Add→Line 用 "X 横坐标 纵坐标" 的形式来定位画线 3.画Route Keepin:Setup→Areas→Route Keepin 用 "X 横坐标 纵坐标" 的形式来定位画线 4.导角: 导圆角 Edit→ Fillet 目前工艺要求是圆角 或 在右上角空白部分点击鼠标右键→选Design Prep→选Draft Fillet小图标 导斜角Edit→Chamfer 或 在右上角空白部分惦记点击鼠标右键→选Design Prep→选Draft Fillet 小图标 最好在画板框时就将角倒好,用绝对坐标控制画板框,ROUTE KEEPIN,ANTIETCH,ANTIETCH可以只画一层,然后用EDIT/COPY,而后 EDIT/CHANGE编辑至所需层即可. 5. 标注尺寸: 在右上角空白部分惦记点击鼠标右键→选Drafting Class: BOARD GEOMETRY Subclass: Dimension 圆导角要标注导角半径.在右上角点击右键→选Drafting,会出现有关标注的各种小图标 Manufacture→Dimension/Draft→Parameters...→进入Dimension Text设置 在标注尺寸时,为了选取两个点,应该将Find中有关项关闭,否则测量的 会是选取的线段 注:不能形成封闭尺寸标注 6.加光标定位孔:Place→By Symbol→Package,如果两面都有贴装器件,则应在正反两面都加光标定位孔,在在库中名字为ID-BOARD.如果是反面则要镜像. Edit→Mirror 定位光标中心距板边要大于 8mm. 7. 添加安装孔:Place→By Symbol→Package,工艺要求安装孔为3mm.在库中名字为HOLE125 8.设置安装孔属性:Tools→PADSTACK→Modify 若安装孔为椭圆形状,因为在印制板设计时只有焊盘可以设成椭圆,而钻孔只可能设成圆形,需要另外加标注将其扩成椭圆,应在尺寸标注时标出其长与宽. 应设成外径和Drill同大,且Drill 不金属化 9. 固定安装孔:Edit→Property→选择目标→选择属性Fixed→Apply→OK Ⅱ 设置层数 Setup→Cross-Section... Ⅲ 设置显示颜色 Display→Colour/Visibility 可以把当前的显示存成文件:View→Image Save,以后可以通过View→Image Restore调入,生成的文件以view为后缀,且此文件应该和PCB文件存在同一目录下。 Ⅳ 设置绘图参数 Setup→Drawing Options Display中的Thermal Pads和Filled Pads and Cline Endcaps应该打开 Ⅴ 设置布线规则 Setup→Constraints... Set Standard Values...设置Line Width ,Default Via Spacing Rules Set→Set Values...设置Pin to Pin ,Line to Pin,Line to Line等值
五. 调入元件 1 给元件赋属性:Edit→Properties→进入Find设置→Find By Name选择Comp(or Pin)→More→选择All→Apply→选择Placement-tag自动放置属性→Apply→OK 2 画元件放置区:Setup→Areas→Package Keepin→画一方框作为元件放入区→右键,Done→Place→Autoplace→Top Grids→50,OK→50,OK→点击所画方框 3 自动放置器件:Place→Autoplace→Design 4 移动元件的设置:在移动状态下,可以设置Options类中的Point Sym Origin,:以器件原点 Body Center:以器件中心 User Pick:以选取点 Sym Pin#:以元件某一管脚。 六. 元件布局 布局时,应根据原理图,将同一模块的器件放到一起,而后再根据连接长度最短的原则将同一模块内的器件摆至最短且最美观为止.再根据鼠线和整块板子的信号流动方向进行布局. 在Allegro中布局之时,BGA须以25倍(针对Pin间距为50mil而言)的栅格布局。 注意: 1.BGA周围5mm内无其他器件 2.压接件周围5mm内无其他器件 3.有极性插装件X,Y方向尽量一致 4.板边5mm为禁布区 七. 电源地层分割 1.画ROUTE KEEPIN: Setup→Area→Route Keepin→在右边Options下,设置成Route Keepin,All→画框 应注意此步不能缺少,否则后面无法赋电源地网络. 2.画分割线 将同一层中要分割的不同网络用不同颜色高亮 Add →Line→在右边Options下,设置成Antietch,以及要分割的层→画线将不同网络分割开 3. 给电源地层的网络赋属性 例如:将VCC,VDD,GND分配到电源地层. Edit→Properties→从右侧Find中选Net,More→将VCC,VDD,GND选中→ Apply→赋予No Rats,Route to Shape属性→结束Edit Property编辑状态. 4. 将网络分配到相应区域: Edit→Split Plane→Set Parameter(一切都OK) Edit→Split Plane→Creat 十. 打电源地 进入SPECCTRA 1.选择打电源地过孔类型,Select→Vias For Routing→By list...→选择所需类型,Apply 2.Autoroute→ Setup... →Set Wire Grid...→X Grid和Y Grid 都设为0.1→Apply→OK Autoroute→Setup... →Set Wire Grid...→X Grid和Y Grid 都设为0.1 3.Autoroute→Pre Route...→Fanout...→只选Power nets→插入→OK 十一. 走线 1. 改变当前缺省走线过孔,Setup→Constraints→Physical Rule Set→Current Via List中的排在第一位的过孔类型就是当前缺省的过孔类型,将其删除,则原来排在第二未的过孔类型就变成了缺省.只需再加上删除的过孔类型,则其将排在最后. 2. 在Allegro中,Route→Connect则会在右侧出现走线的各种条件设置,包括线宽和过孔 类型.在最下面有两个选项,Snap to Connect Point,Replace Etch,前者一般不选,否则有可能走不出想要走出的形状,后者应该选中. 3. 有时走完线后发现报告冲突,说Line to SMD违反contraints,而此line 和SMD属于同一个网络,此时应该将 Setup→Contraints...→Spacing Rule Set→Set Value...→Same Net Drc设置成off 注:1.板边3mm不准走线 4 在Allegro中拷贝同时拷贝多条相同走线的方法 要想同时拷贝多条线,必须要保证元器件之间距离严格匹配,不能存在一点偏 差,因为在Allegro中可以存在孤岛式的走线,所以如果不匹配,仍可以把线拷贝上,但会认为是并未连接上,只把其作为单独一条线. 用information获得两组相同布局中相同位置管脚的坐标,例:已布线部分中管脚 1坐标为(x1,y1),未布线部分中相同管脚坐标为(x2,y2) 选择Copy状态→点击鼠标右键→选Temp Group→用鼠标选中所有将要拷贝的线→点击鼠标右键→选Compelete→键入x x1,y1设置拷贝原点→键入x x2,y2将线拷贝至所需位置→点击鼠标右键→选Done 十二. 调整冲突 十四. 检查修改 同时,有一部分错误是可以忽略的,要仔细加以区分,最好只显示布线层的错误 (一) Tools→Reports...→选取Summary Drawing Report→Run→查看Connection Statistics中内容,最终目标:Already Connected与Connections相等,Missing Connections等于0,Dangling Connections等于0,Connections 等于100%. 1. 若Already Connected小于Connections,说明存在半截线,此时应将所有赋了No Rats属性的网络都取消该属性(Edit→Properties...)→Display→Colout/Visibility→在Global Visibility中选取All Invisible→设置Group/Display中的Ratnest颜色为显眼的颜色→ 观察 图中飞线的位置,发现后通过右侧的Visibility打开相应层进行修改. 2. 若Dangling 不等于0,说明有的走线多出一截,形成了小天线,则应看Log File 文件,File→File Viewer...→dangling_lines.log→记下坐标→用X 横坐标 纵坐标定位进行 修改 十五. 调整丝印 设置丝印标准: Setup→Text Sizes...可以设置四种标准
Blk | Width | Height | Line Space | Photo Width | Char Space | 1 | 48 | 60 | 20 | 0 | 0 | 2 | 64 | 80 | 30 | 0 | 0 | 3 | 120 | 150 | 40 | 0 | 0 | 4 | 160 | 200 | 60 | 0 | 20 | 选Block1 的字体,如果空间足够大,则选Block2的字体,左至右自下至上的原则. 丝印一定不能上焊盘.十六. 写标注文字,做光绘 1.光绘文件命名方式详见PCB设计文件命名表
ALLEGRO | 镜象 | 图纸标注 | 元件面光绘 art1.art | no | (boardname:) artwork top | 焊接面光绘 art(n).art | yes | (boardname:) artwork bottom | 内层布线光绘 art(m).art | no | (boardname:) artwork layer(m) | 地层光绘 ground(m).art | no | (boardname:) ground plane(m) | 电源层光绘 power(m).art | no | (boardname:) power plane(m) | 元件面丝印 silkt.art | no | (boardname:) silkscreen top | 焊接面丝印 silkb.art | yes | (boardname:) silkscreen bottom | 元件面阻焊 soldt.art | no | (boardname:) soldmask top | 焊接面阻焊 soldb.art | yes | (boardname:) soldmask bottom | 元件面钢网 pastt.art | no | (boardname:) pastemask top | 焊接面钢网 pastb.art | yes | (boardname:) pastemask bottom | 元件面装配 adt.art | no | (boardname:) silkscreen top | 焊接面装配 adb.art | yes | (boardname:) silkscreen bottom | 钻孔图光绘 drill.art | no | (boardname:) drill chart | 数控钻孔文件ncdrill.tap | | | 注:以上文件名中(n)表示板的总层数,(m)表示内部某层,如6层板的第二层为layer2,而不是Layer1,(n)和(m)均为两位数.(boardname:)用实际板名替换
2. 可以用File→Import→Sub Drawing...调用以前设计中的标注来进行修改,后缀是clp.
3.光绘文件生成步骤: Manufacture→NC→Drill Paremeters...→只有Reapeat codes要选中. Manufacture→NC→Drill Legend Manufacture→NC→Drill Tape... Manufacture→Artwork→Parameter→ Suppress项中Leading Zeroes,Equal Coordinates要选中. Manufacture→Artwork→Film... film中应包括的内容: Art(m).art VIA CLASS Art(n) PIN Art(n) ETCH Art(n) BOARD GEOMETRY OUTLINE Ground or power(m).art ANTIETCH Pgp(m) VIA CLASS Pgp(m) PIN Pgp(m) ETCH Pgp(m) BOARD GEOMETRY OUTLINE SILKT REF DES SILKSCREEN_TOP PACKAGE GEOMETRYSILKSCREEN_TOP BOARD GEOMETRY OUTLINE BOARD GEOMETRY SILKSCREEN_TOP SILKB REF DES SILKSCREEN_BOTTOM PACKAGE GEOMETRYSILKSCREEN_BOTTOM BOARD GEOMETRY OUTLINE BOARD GEOMETRY SILKSCREEN_BOTTOM SOLDT VIA CLASSSOLDERMASK_TOP PIN SOLDERMASK_TOP PACKAGE GEOMETRYSOLDERMASK_TOP BOARD GEOMETRY OUTLINE BOARD GEOMETRY SOLDERMASK_TOP SOLDB VIA CLASSSOLDERMASK_BOTTOM PIN SOLDERMASK_BOTTOM PACKAGE GEOMETRY SOLDERMASK_BOTTOM BOARD GEOMETRY OUTLINE BOARD GEOMETRY SOLDERMASK_BOTTOM DRILL MANUFACTURINGNCDRILL_LEGEND MANUFACTURINGNCDRILL_FIGURE BOARD GEOMETRY OUTLINE BOARD GEOMETRY DIMENSION ADT REF DES SILKSCREEN_TOP PIN TOP PACKAGE GEOMETRYSILKSCREEN_TOP BOARD GEOMETRY OUTLINE BOARD GEOMETRY SILKSCREEN_TOP ADB REF DES SILKSCREEN_BOTTOM PIN BOTTOM PACKAGE GEOMETRYSILKSCREEN_BOTTOM BOARD GEOMETRY OUTLINE BOARD GEOMETRY SILKSCREEN_BOTTOM1 PASTT PIN PASTEMASK_TOP BOARD GEOMETRY OUTLINE BOARD GEOMETRY PASTEMASK_TOP PASTB PIN PASTEMASK_BOTTOM BOARD GEOMETRY OUTLINE BOARD GEOMETRY PASTEMASK_BOTTOM 在命令行执行Artwork -s *.brd命令,效果同Manufacture→Artwork→Generate...,十七. 光绘问题 生成光绘时常见问题的解决方法 - 在光绘后,某一双列插针的地层全是花盘,实际只应一个管脚接地
原因:该器件焊盘设置错误,将焊盘设置中的ANTI-PAD选项中FLASH填了内 容,实际上只有THERMAL-RELIEF中的FLASH需要填写,其余的FLASH 选项都应为空.所以在最后检查时应该将所有带通孔的焊盘都检查一遍. - 光绘时,生成的光绘文件只有5个字节,所有的文件都无法生成.
原因:因为存在未使用的焊盘,在生成APERTURES时,存在不可识别的FLASH NAME,如AB00,而非数值, 解决方法:将未用的PADSTACK清除(PURGE), TOOLS/ PADSTACK/ MODIFY/ PURGE/ALL. - 在某一信号层添加铜皮的方法:
换到要敷铜的层. Add/Shapes/Solid Fill 是敷实心铜皮,而Cross Hatch Fill则是画栅格式焊盘/ 画出敷铜的边框,则菜单将会变成SHAPE编辑菜单 Edit/Change Net(name)/选择要赋予的网络,OK/Void/Auto表示自动产生热焊盘,并且避开过孔,Shape表示在敷铜区域中画一区域,在此区域中不敷铜,circle表示画一圆形区域,在此区域中不敷铜,element表示将选中的element,只对过孔类元素有效对于shape,circle都不会自动产生热焊盘和避开过孔/Shape/Fill即可. 编辑敷铜 - 在用ALLEGRO自作PCB时出现过过孔上焊盘而不报错的现象,这与我们各位的参数设置有关,为避免此类错误的发生,建议更改设置:
Setup/constraints/physical rule set/set values/pad_pad direct connect:"all allowed-->not allowed" Setup/constraints/physical rule set/DRC mode /pad_pad direct connect:"never-->always"
|