Allgro pcb pcb元件旋转丝印框怎样显示在铜皮和走线之上像PADS PCB一样

PADS2007画PCB的时候添加的元件为何元件丝印不显示在丝印层上_百度知道
PADS2007画PCB的时候添加的元件为何元件丝印不显示在丝印层上
如题,就是在画PCB的时候在bottom新增加一个元件,发现增加的元件丝印(外框)只能在bottom显示,而在silkscreen bottom却没有显示。
我有更好的答案
重新编辑元件封装;外框选择丝印层silkscreenTOP。
如何修改?
选择你想要编辑的元件;点击鼠标右键点亮;选择封装编辑
那个选项??
这个选项不能用。
采纳率:35%
为您推荐:
其他类似问题
pads2007的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Allegro 绘制过程(PSD14.0) --作者:秦绪彬(一) n n 器件库的制作 由已有 PCB 文件生成库 FileàExportàLibraries… 所有类型库文件将保存到 PCB 文件所在目录中 新建元件库 1. 2. (二) 使用 Pcb Editor 为通孔焊盘制作*.fsm 热焊盘文件;使用 Pad designer 制作*.pad 焊盘文件 使用 Pcb Editor 制作*.psm 元件封装(推荐使用 Wizard 向导制作)新建 PCB layout 文件 Fileànew…àdrawing name(drawing type: layout)àOK.(三) 1.基本参数设置 设计单位选择(英寸/毫米) ;设计单位精度;设计图纸尺寸 SetupàDrawing Parameters※在 PCB 设计过程中,禁止在英寸与毫米间切换,否则在每次切换过程中将引入误差,次数越 多误差越大,这也是 Allegro 不尽如人意的地方.2. [DRC]是否在线 DRC/DRC 标示符号尺寸;[Display]鼠线(即飞线)的几何形状 {当鼠线为水平或垂直时,选择鼠线显示方式为直线或 jogged;当鼠线为斜线时,选择无区别}; 热焊盘(Thermal pads)是否显示;设计栅格(Grid)是否显示;打孔(drill)是否显示(包括过 孔或焊盘的孔) ;焊盘或过孔是否填充显示;[Text]添加文本时的默认大小值(block size) ;文本 相对鼠标定位点延伸摆放方向(left/right/center)[Line Lock]走线转弯时线的形式(线/弧) 、角度 SetupàDrawing Options 3. 自定义文本 block SetupàText sizes 4. 定义栅格显示 SetupàGrids 5. 设置默认走线间距;设置默认走线宽度 SetupàConstraints…à Spacing rule setàSet values… à Physical rule setàSet values… 6. 向设计添加过孔(将在走线换层时使用) SetupàConstraints…à Physical rule setàSet values…àVia List Property注:只有列在 Current Via List 中的 Via 才能在 PCB 设计中实用 在 Available Padstacks 栏中的 Via 都位于 Padpath 所设定的默认目录中 凡已位于该默认目录中但未在 Available Padstacks 列表中显示的 Via 可通过在 Name 栏中键入该 Via 名称后点击 Add 按钮添加到 Current Via List 7.设置默认工作目录(焊盘存放路径 padpath;封装存放路径 psmpath;Gerber 输出存放路径 artpath 等) SetupàUser Preferences…àDesign_paths(四)画板框(Board Outline) 、布线区(Route Keepin)及零件摆放区(Package Keepin) AddàLine (在 Add Line 状态下,控制面板中 Class 选择 Board Geometry;SubClass 选择 Outline) Setupà AreasàRoute Keepin(必须绘制 Route Keepin,否则内层贯铜将无法进行,系统将 Route Keepin 作为内层贯铜的边界) Setupà AreasàPackage Keepin(五)定义板层 Setupà Cross-section(六)调入网表(netlist) n File-&Import…à logic… 在 Cadence 标签页内进行设置:Import logic type 选 Design entry CIS; Place changed component 选 Always; Import directory 指定 allegro netlist 网表所在位置。 设置完毕后,点击 Import Cadence 按钮即可完成网表的导入。 注:Other 标签页用于导入非 Cadence 类型的网表。 n也可由 Capture CIS 在执行 Create Netlist 时,直接新建或更新 brd 文件(此时设计第二步可省略) Capture CIS 执行 Create Netlist 时,如下: 。 (七)调入器件(Placement) 手工调入(Manually)---通过器件标号有选择的调入器件 PlaceàManually…(单击选项 Components by redes,在其下列出的器件为还未放到板上的器件,在待放器件前打勾后将鼠标移至工作区,器件会附着在鼠标上,点击鼠标左键即 可完成放置动作)自动调入(Quickplace)---可一次性调入所有器件,也可有选择的调入器件 PlaceàQuickplace(在 Quickplace 设置菜单中,Edge 表示将器件摆放在板框外面的位置&上、下、左、右&;Slide 设置器件放置在顶层还是底层)注:在调入器件前,所有元件封装都已制作并放于 Psmpath 所指定工作目录中. (八) 1. 布线(Route) 内层分割(以 GND 层分割为例) ① 用ANTI ETCH线在待分割层面上画好分割线(ANTI ETCH/GND) 注意:画ANTI ETCH时,边界要超出Route Keepin . AddàLine . Option里选择ANTI ETCH/GND . 画好分割线 ② 在控制栏的Option里选择需要分割的层面(ETCH/GND)③ 点选菜单EditàSplit PlaneàCreate 出现提示菜单后,选择“是” ④ 依次选择高亮区域的讯号名称(Net Name)注:过孔与内层的安全间距是在设计过孔时由Anti Pad项决定的。 过孔(与所在内层为同一网络)与内层的热焊盘连接形状是在设计过孔时由Thermal Relief 项决定的。 在正片上铺铜(Top or Bottom Layer) ① 点选菜单 AddàshapesàSolid Fill ② 选择所要加 shape 的层面 ③ 按所需路径画好 Shape 封闭路径 ④ 如果需要可再次修改 shape 外形 EditàVertex ⑤ 定义 shape 的网络 net EditàChange Net(Name) ⑥ 进行 shape parameter 的设定 ShapeàParameters… ⑦ Void VoidàAuto ⑧ Check ShapeàCheck ⑨ 如有错误,修改 ⑩ 灌铜(Fill) ShapeàFill 3. 4. (略) (略)2. (九) 1.后检查 运行 DRC 检查 ToolsàUpdate DRC 生成未放器件报告(此步骤验证元件是否已完全放入板中) ToolsàReports…àUnplaced Components 生成未连管脚报告(此步骤验证所有连接关系的布线是否完成) ToolsàReports…àUnconnected Pins 生成 DRC 检测报告 ToolsàReports…àDesign Rules Check2.3.4.(十) 1.生产文件输出 生成 Gerber 文件 ① ManufactrueàArtWorkàFilm Control A.在 Available Films 中通过鼠标右键添加或删除文件夹和其下的 Subclass 最终形成 要输出的底片.输出时每个文件夹为一张底片,每张底片中包含要输出的子类 用鼠标单击每一个文件夹(底片), 在右侧为其设置 Plot mode 正负片) Undefined ( 和Line Width(丝印字符线宽等) (一般设为7mil)B.C.其他保留默认值,不作修改 在 Device Type 中选 Gerber RS274X 其他保留默认值,不作修改② ManufactrueàArtWorkàGeneral Parameters A. B.③ ManufactrueàArtWorkàFilm ControlàCreate Artwork (执行此步前不要忘记勾中要输出的文件夹)
2.生成钻孔(drill)坐标文件(*.tap) ① ManufactrueàNCàDrill Tape… ② 在 NC TAPE 设置菜单中,Scale Factor 设为1 ③ ManufactrueàNCàDrill Tape…àRun注:钻孔坐标文件名可在 ManufactrueàNCàDrill Parameters…中设定3.{在 PCB 中添加钻头表}① ManufactrueàNCàDrill Legend ② 点 OK,钻头表附着在鼠标上 ③ 将表放在 PCB 中合适的地方{在 PCB 中删除钻头表}① ManufactrueàNCàDrill Legend ② 点 OK,钻头表附着在鼠标上 ③ 按鼠标右键选 Cancel,钻头表随即消失(十一)向制板厂提交制板文件 根据为尚阳设计的四层板为例,最终提交文件如下:◇关于底片参数文件 art_param.txt 的说明: 设定底片参数档 底片参数档 art_param.txt 会纪录底片的类型及格式。在你设定好 Artwork Parameter Form 之后 Allegro 会把 您所宣告的所有设定参数存成 art_param.txt。 如果出底片之后您把这个底片参数档也给下游厂商, 那么他们 会更确切的知道您的底片格式、小数位数、补零设定等值,在您处理您的档案时减少错误的发生。◇关于钻孔坐标文件 ncdrill1.tap 的说明:钻孔坐标档是一个以孔径为分类,列出板上钻孔位置的 XY 坐标的文字文件,可以直接输入到数值控制 Nemueric Control 的机台上钻出所要的孔. 不同于先前的钻孔图只是一个图面标示.现在多用来做钻孔后 检查用. Allegro 设计心得(PSD15.5)--作者:秦绪彬====================================================================== 创建焊盘――在设计中,每个器件封装引脚是由与之相关的焊盘构成的,焊盘描述了器件引脚如何与设计中所设计的每个物理层发生联系,每个焊盘包含以下信息: n n 焊盘尺寸大小和焊盘形状 钻孔尺寸和显示符号焊盘还描述了引脚在表层(顶层和底层)的 SOLDERMASK、PASTEMASK 和 FILMMASK 等 相关信息。同时,焊盘还包含有数控钻孔数据,Allegro 用此数据产生钻孔符号和钻带文件。 Allegro 在创建器件封装前必须先建立焊盘,建立的焊盘放在焊盘库里,在做器件封装时从焊盘 库里调用。Allegro 创建的焊盘文件名后缀为.pad。Allegro 用 Pad Designer 创建并编辑焊盘。(一)通孔焊盘或过孔在 PCB 中的叠层结构(top、内层信号层、内层电源层、bottom)为了描述上的方便,约定如下: 1. 2. 把通孔焊盘简称为焊盘。 把通孔焊盘(或过孔)位于 Top 和 Bottom 层用于焊接的环形面(或方形等,依具体设计而 定)称作焊环。 3. 下文只提及焊盘,过孔的情况与焊盘相同各种情况下焊盘或过孔在每一层的情况如下: Top 层(正片) :任何情况下,焊盘在该层都有焊环(形状及尺寸由此焊盘制作时为该层指定的 Regular Pad 决定) 如果在 top 层敷铜,有两种情况:①当焊盘与敷铜属于同一网络时,焊盘通过正 十字导线与周围敷铜相连 (并不由制作焊盘时为 top 层指定的 Thermal Relief 决定 焊盘与敷铜的连接形状) ,其中焊盘与周围敷铜间的间距由 allegro 间距规则设置 中的 Shape-Pin 项决定(并不由制作焊盘时为 top 层指定的 Anti Pad 决定) ;②当 焊盘与敷铜不属于同一网络时,焊盘会避让周围铜皮,挖出一个隔离同心圆(但 敷铜操作类型必须选择动态敷铜 Dynamic Copper,如果选择静态敷铜焊盘将不会 避让,即使不属于同一网络也与周围铜皮连接在一起) ,其中焊盘焊环与周围敷 铜间的间距由 allegro 间距规则设置中的 Shape To Pin 项决定(并不由制作焊盘时 为 top 层指定的 Anti Pad 决定) 。 注: 1、 Shape To Pin 间距设置。 [Setup-&Constrains-&physiscal rule set 中 Set values] 2、对于过孔,需要设置 Shape To Via 项 内层信号层(正片) :有两种情况:①如果该层有连接到焊盘的导线,则焊盘在该层具有焊环(形 状及尺寸由制作焊盘时为该层指定的 Regular Pad 参数项决定) ,用于导线与焊盘 的电连接(因为是正片不用考虑 Anti Pad) ;②如果该层没有连接到焊盘的导线则 没有焊环,仅有焊盘的孔壁通过该层,即焊环的环宽为零(当该层没有任何电连 接情况下,焊盘设计时即使为该层指定了 Regular Pad 也不存在焊环,即 Regular Pad。所指定的 Regular Pad 仅是为当该层有导线连接焊盘即上述第一种情况时而 定的) 。 内层电源层(负片) :有两种情况:①如果焊盘与内层为同一网络属性,则焊盘通过 Thermal Relief 与内层铜皮相连接(该 Thermal Relief 在制作焊盘时设定) 。②如果焊盘与内层不 属于同一网络,则仅有焊盘的孔壁通过该层,没有焊环,即焊环的环宽为零。焊 盘在该层会避让周围铜皮, 挖出一个隔离同心圆。 因此在设计焊盘为该层指定 Anti Pad 项各参数时, 考虑隔离间距时应从钻孔即焊盘内径算起, 而不应从 Regular Pad 外沿算起,因为此种情况下焊盘在该层根本就不存在 Regular Pad(即焊环) 。 Bottom 层(正片) :同 Top 层。(二)建立零件库时,其说明要点如下:(1) 在Allegro 系统中,建立一个零件(Symbol)之前,必须将会使用到的零件脚(Pin) 的档案先建好, 才能建立此零件。 (2) Padstack 包括零件脚(Pin) 及贯穿孔(Via)两种应用的分类,其档案的副档案均为.pad。 (3) 每一个零件(Symbol)的档案共有2 个: Drawing File C 仅用于建立或编修零件,其档案的副档案均为.dra。 Symbol File C 当使用者在放置零件于板内时,是使用到此档案,此档案是无法进行编修的,目前 零件共有下列5 种: ? ? ? ? ? Package Symbol 一般零件,即电子零件、螺丝孔、定位孔等,其副档案为.psm。 Mechanical Symbol 机构零件,由板外框及螺丝孔等所组成的零件,其副档案为.bsm。 Format Symbol 图框零件,由图框及图文件说明所组成的零件,其副档案为.osm 。 Shape Symbol 特殊外形零件,仅用于建立特殊外形的Padstack,其副档案为.ssm。 Flash Symbol 特殊图形零件,仅用于建立Padstack 的Thermal Relief(防止散热用),其副 档案为.fsm。 (4) Allegro 捉取零件库的路径, 使用者可在pcbenv 目录下(本书的范例为C:\project\allegro\pcbenv) 的env 文本文件中设定: 捉取Padstack 的路径,由padpath 环境变量来设定,例如: set padpath = . symbols .. ../symbols 捉取Symbol 的路径,由psmpath 环境变量来设定,例如: set psmpath = . symbols C:\MyLib\symbols 注:也可通过下面方法设定 Setup-&User Preferences,Categories中点击Design_paths,随后在 菜单右侧,可配置系统要使用的pad路径、psm封装路径等 (5) 关于文件名称部份,只能使用英文(a 至z、“_”及“-”),且不可使用特殊符号,在此并建议尽量使用 小写字体。(三)Allegro 中焊盘命名规则说明本文档主要目的是:对目前所制作使用的焊盘库进行规范、整理,以便焊盘库的管理和使用。下面对 其进行详细说明。(注:所有数字的单位均为mil.) 一、金手指焊盘 本设计库为金手指这类异形焊盘作了单独的命名edgebot.pad、edgetop.pad 二、钻孔焊盘 1)钻孔焊盘――命名格式为:p38c18(圆形)【 p40s26(方形)、p40x140r20(矩形)】 说明: p:表示是金属化(plated)焊盘(pad); 38:表示的是焊盘外经为38mil; c:表示的是圆形(circle)焊盘; 18:表示焊盘内经是18mil。 根据焊盘外型的形状不同,我们还有正方型(Square)、长方型(Rectangle)和椭圆型焊盘(Oblong) 等,在命名的时候则分别取其英文名字的首字母来加以区别,例如:p40s26.pad 外经为40mil、内 经为26mil 的方型焊盘。 在长方形焊盘设计中,由于存在不同的长宽尺寸,所以我们在其名中给予指定,起方法是:将焊盘 尺寸用数学方式表示出来即(width×height),当然在输入名字时不能输入数学符号“×”,因此我们 用字母“x”来代替。 例如:p40x140r20.pad 表示width 为40mil、height 为40mil、内经为20mil的长方型焊盘。 2)定位孔――命名格式为:h138c126p/u 说明: h:表示的是定位孔(hole); c:表示的是圆形(circle); 126:表示孔经是126mil; p:表示金属化(plated)孔; u:表示非金属化(unplated)孔。 注:在实际使用中,焊盘也可以做定位孔使用,但为管理上的方便,在此将焊盘与定位孔作了区别。 ※ 焊盘与过孔在制作上还是有不小区别的,后面的章节会讲,详见‘焊盘与过孔的区别’ 三、表面贴焊盘 1、长方形焊盘 命名格式为:sr15x60 说明: s :表示表面贴(Surface mount)焊盘; 15:表示width 为15 60:表示height 为60mil。 2、方形焊盘 命名格式为:ss040 说明: 第一个s:表示表面贴(Surface mount)焊盘; 第二个s:表示方型(Square)焊盘; 040:表示width 和height 都为40mil。 3、圆形焊盘 命名格式为:sc040 说明: s :表示表面贴(Surface mount)焊盘; c :表示圆型(Circle)焊盘; 040:表示width 和height 都为40mil。 注意: 1)width 和height 是指Allegro 的Pad_Designer 工具中的参数,用这两个参数来指定焊盘的 长和宽或直径。 2)如上方法指定的名称均表示在top 层的焊盘,如果所设计的焊盘是在Bottom 层时,我们在 名称后加一字母“b”来表示。 四、过孔 命名格式为:v24_12 说明: v :表示过孔(via); 24:表示过孔外经为24mil; 12:表示过孔的内孔径为12mil。 ※ 另外我们还专门设计了针对BGA 封装用的过孔:vbga24_12.pad 五、热焊盘(即 Thermal Relief) 命名格式为:TR52x66x15-45 说明: TR :表示热焊盘(Thermal Relief); 138:表示的是定位孔(或焊盘)的外经为138mil; 52 :表示内径尺寸; 66 :表示外径尺寸; 15 :表示开口尺寸; 45 :表示开口角度。(四)在 Pad Designer 中制作表贴或通孔器件焊盘时,如何设定‘SOLDERMASK_TOP’和 ‘SOLDERMASK_BOTTOM’?SOLDERMASK:用于定义顶层或底层焊盘的去阻焊窗的大小。如果不定义 SOLDERMASK,焊 盘将上绿油,因此无法用于焊接。 Protel 中表贴和通孔焊盘默认值为比焊盘大出 8mil(即焊盘两边各多出 4mil) 。 Allegro 设计中,建议采用如下数据: (金佰泽提供) ① 表贴焊盘 . 电阻、电容等焊盘间距较大的,阻焊可设的大一些。在焊盘尺寸基础上加 6mil 或 8mil (即焊盘两边各加上 3mil 或 4mil) 。 . IC、BGA 间距较密焊盘,设的小一点。在焊盘尺寸基础上加 4mil(即焊盘两边各加上 2mil) ② 通孔焊盘 在焊盘尺寸基础上加 6mil 或 8mil(即焊盘两边各加上 3mil 或 4mil) ,由于通孔器件焊盘之间 的间距不会很密,因此建议采用 8mil。 ③ 走线过孔 通常情况下,过孔只用于导线连接而不用于焊接,via 位于 Top 和 Bottom 层部分均做阻焊上 绿油处理,所以不设置 SOLDERMASK_TOP 和 SOLDERMASK_BOTTOM 项 (Geometry 设为 Null,Width 和 Height 值设为 0) 。 特殊说明:有时在 PCB 调试初期过孔用作测试点等特殊目的,此时设计过孔时可以开阻焊。 注:IC 相邻两焊脚边沿间距大于 12mil 才能进绿油;如果小于 12mil,PCB 生产商就直接开 通窗了(依据厂家的生产工艺水平而定)( 五 ) 在 Pad Designer 中 制 作 表 贴 焊 盘 时 , 如 何 设 定 ‘PASTEMASK_TOP’ 和 ‘PASTEMASK_BOTTOM’?PASTEMASK:用于定义顶层或底层焊盘的涂胶开窗的大小,用于 PCB 的钢网制作。 PASTEMASK 仅用于表贴焊盘。 ① 表贴焊盘 PASTEMASK 值一般比‘Regular Pad’(长、宽或直径)小一些。Protel 中默认值为 0mil(即 与焊盘大小相等) ,Allegro 设计中建议也采用与焊盘大小相等。 ② 通孔焊盘 通孔焊盘不用于制作钢网,也就不存在 PASTEMASK 的概念,因此不需要设定(置为 Null) 。 ③ 走线过孔 走线过孔不用于制作钢网,也就不存在 PASTEMASK 的概念,因此不需要设定(置为 Null) 。(六)在 Pad Designer 中制作焊盘时,如何设定‘Anti Pad’参数? ‘Anti Pad’:仅用于负片,隔离不需连接的 PIN or VIA。用于设定焊盘与周围铜皮之间的间隔距离, 即挖掉铜皮部分的环宽外径。 如内层电源层中通孔焊盘周围铜皮被挖掉部分的环宽外径。 在 8 层或小于 8 层 PCB 设计中,满足 PCB 生产良率情况下的设计参数和方法如下: ① 表贴焊盘 不用设置 Anti Pad(表贴焊盘总是位于正片 Top 或 Bottom 层) ,设为 Null。 ② 通孔焊盘 焊盘与内层(负片)不属于同一网络,因此才会用到 Anti Pad。此种情况下,在该内 层仅有焊盘的钻孔孔壁穿过,并不存在 Regular Pad,因此考虑焊盘的 Anti Pad 隔离 间距时,应把焊盘钻孔孔径作为计算基点,而不能把 Regular Pad 作为基点。计算公 式如下: . 焊盘钻孔孔径(即焊盘内径)+30mil,即单边距离钻孔孔壁间距 15mil。 『推荐』 . 厂家(金佰泽)允许的通孔器件焊盘单边最小间距为 12mil,因此也可用如下公式 焊盘钻孔孔径(即焊盘内径)+24mil,即单边内层铜皮距离钻孔孔壁间距 12mil。 注:protel 中,内层焊盘隔离带默认值为 20mil,Top 和 Bottom 层敷铜则由设计规则 中布线最小间距决定。 ③ 走线过孔 过孔与内层(负片)不属于同一网络,因此才会用到 Anti Pad。此种情况下,在该内 层仅有过孔的钻孔孔壁穿过,并不存在 Regular Pad,因此考虑过孔的 Anti Pad 隔离 间距时,应把过孔钻孔孔径作为计算基点,而不能把 Regular Pad 作为基点。计算公 式如下: . 在布线密度不大,可以使用较大过孔情况下:钻孔孔径(即过孔内径)+30mil, 即单边距离钻孔孔壁间距 15mil。 . 厂家 (金佰泽) 允许的过孔单边最小间距为 10mil。 因此当布线密度较大, BGA 如 等需要使用小尺寸走线过孔时,可以采用:钻孔孔径(即过孔内径)+20mil。 即单边内层铜皮距离钻孔孔壁间距 10mil。 注:由于过孔在 PCB 上的使用数量较大,所以 via 位于内层的 Regular pad(用于 内层信号层) 、Anti Pad(用于内层电源层)值应设置的尽可能小些,对于内层布 线层,可加大布线的空间;对于内层电源层,可避免 via 密集的地方形成孤岛, 造成断连。因此建议:在 PCB 上使用两种过孔,BGA 等布线密集区域使用上述 第种方法构造的过孔(Anti Pad) ,同时布线密度稀疏区域使用第种方法构造 的过孔(Anti Pad) ,这样既可满足设计要求,又可以提高 PCB 的生产良率。 说明:由上面第②、③点比较可知,厂家对于通孔器件焊盘和过孔在最小隔离距离的要求 上是不一样的:焊盘是单边最小 12mil;过孔是单边最小 10mil。其原因:通孔器 件焊盘的钻孔孔壁的上锡厚度要大于过孔,因此在镀完锡的成品孔径相同的情况 下,用于打焊盘孔的钻头要稍微粗于过孔使用的钻头(因为焊盘孔径镀的锡要比过 孔厚一些,所以要打的大一些) ,因此厂家要求 PCB 工程师设计焊盘时,AntiPad 间隔距离要设置的大一些。 补充说明: regular pad:用正片生成的焊盘,可供选择的形状有圆形、方形等。 (用于正片) thermal relief : 以热隔离的方式替代焊盘。 可用于正片或负片, 产生花瓣连接铜箔。 anti pad :与正片的焊盘相对,为负片焊盘,一般为圆圈,用于阻止引脚与周围的 铜箔相连。 (用于负片,隔离不需连接的 PIN or VIA) 如果只是以正片制图,只需建 regular pad。 如果有用负片制图,则三种皆需要建。(七)在 Pad Designer 中制作焊盘 pad 时,如何设定‘Thermal Relief’参数?‘Thermal Relief’:以热隔离的方式替代焊盘。在制作通孔焊盘或过孔前,需要先制作好适用于该焊 盘或过孔的 Thermal Relief 文件,其扩展名为.fsm。注:上图阴影部分表示铜皮挖掉部分(负片) 设定方法: 1. 2. 3. 4. 内径尺寸等于钻孔尺寸加上16 mil; 外径尺寸等于钻孔尺寸加上30 mil; 开口尺寸一般设为15mil; 开口角度一般设为45度。 避免内层(负片)形成孤岛。如: 内径=钻孔+10mil;外径=钻孔+24mil 或 内径=钻孔+8mil;外径=钻孔+20mil(最小极限取值方法:过孔Anti-pad单边最小间距10mil)注:布线密集区域(如BGA)使用的过孔,其Thermal Relief 的内径、外径值可以设置得小一些,(八)通孔焊盘(allegro 中称为 pin)与过孔(via)的区别via : 只 用 于 导 线 连 接 不 用 于 焊 接 。 所 以 不 用 设 置 SOLDERMASK_TOP 和 SOLDERMASK_BOTTOM 项(Geometry 设为 Null,Width 和 Height 值设为 0) ,via 位 于 top、bottom 层部分均做阻焊(也可以开阻焊用于调试等特殊目的) 。 via 不 用 于 制 作 钢 网 , 因 此 无 PASTEMASK 概 念 , 因 此 PASTEMASK_TOP 和 PASTEMASK_BOTTOM 的值都设为 Null。 另外,via 在 PCB 上使用的数量较大,所以 via 位于内层的 Regular pad、Thermal Relief、 Anti Pad 值应设的尽可能小,对于内层布线层,可加大布线的空间;对于内层电源层,可 避免 via 密集的地方形成孤岛,造成断连。 pad:主要目的用于焊接。对于通孔焊盘,top 和 bottom 层焊盘部分阻焊需开窗,因此必须正确 设置 SOLDERMASK_TOP 和 SOLDERMASK_BOTTOM 的值;对于表贴焊盘,top 层焊 盘部分阻焊需开窗,需设置 SOLDERMASK_TOP。 对于 通 孔焊 盘, 因为 不用 于制 作钢 网, 因此 无 PASTEMASK 概 念, 也就 不 用设 置 PASTEMASK_TOP 和 PASTEMASK_BOTTOM 的值(Geometry 设为 Null,Width 和 Height 值设为 0) 。对于表贴焊盘,要用于制作钢网,需要设置 PASTEMASK_TOP。(九)表贴焊盘的制作方法范例:长方形表贴焊盘 sr50x25 的制作(宽度:50mil ; 高度:25mil) n 规格说明 ① 名称定义 s r 50 x 25 ② 钻孔规格 无(钻孔) ③ 内部规格 Regular Pad Thermal Relief Anti Pad Soldermask Padstack 的外形大小为50X25 mil 的长方形 无 无 Padstack 的防焊Pad,其尺寸为56X31 mil 的长方形 (等于 Regular Pad 50X25 mil各边加上6 mil) Pastemask n 建立方法 【Parameters Tab】页设置内容: ① Type 点选Single,表示Padstack 为单一层面。 Padstack 的钢板Pad,其尺寸为50X25 mil 的长方形(等于 Regular Pad 的尺寸) 代表它是一个SMD 的Padstack,单一层面且没有钻孔 代表 Padstack 的外形为长方形 代表 Padstack 的宽度为 50mil 代表数字间的分隔符 代表 Padstack 的高度为 25mil② Internal layer 点选Optional,表示由底片定义去设定未连接的内层Pad 是否出现 ③ Unit 部份:Units 选择Mils,Decimal places 输入0,表示使用单位为mil,小数点后没有小数,即为整数。④ Multiple drill 部份:请不要勾选Enabled,表示只有一个钻孔。 ⑤ Drill hole 部份:不用输入。 ⑥ Drill symbol 部份:不用输入。下图为输入各计算值后的Parameters Tab页: 【Layers Tab】页设置内容: ① 设定BEGIN LAYER BEGIN LAYER 即为Top 层面,设定方法如下: 1) 选到BEGIN LAYER 以鼠标左键按一下在Padstack layers 内的BEGIN LAYER 方格,在最下方的 中间Current layer 变为BEGIN LAYER,表示目前的Regular Pad、Thermal Relief 及Anti Pad 是属于BEGIN LAYER。 2) 在Regular Pad 部份: Geometry 点选Rectangle,表示Padstack 的外形为长方形; Width 输入50,表示长方形的宽度为50 mil; Height 输入25,表示长方形的高度为25 mil。 3) 4) 1) 在Thermal Relief 部份:不用输入 在Anti Pad 部份:不用输入 选到SOLDERMASK_TOP 以鼠标左键按一下在Padstack layers 内的SOLDERMASK_TOP 方格,在最 下方的中间Current layer 变为SOLDERMASK_TOP,表示目前的Regular Pad 是属于SOLDERMASK_TOP。 2) 在Regular Pad 部份: Geometry 点选Rectangle,表示Padstack 的正面防焊Pad 为长方形; Width 输入56,表示长方形的宽度为56 mil; Height 输入31,表示长方形的高度为31 mil。 ③ 设定PASTEMASK_TOP② 设定SOLDERMASK_TOP 1)选到PASTEMASK_TOP 以鼠标左键按一下在Padstack layers 内的PASTEMASK_TOP 方格, 在最下 方的中间Current layer 变为PASTEMASK_TOP, 表示目前的Regular Pad 是属于PASTEMASK_TOP。2)在Regular Pad 部份: Geometry 点选Rectangle,表示Padstack 的正面钢板Pad 为长方形; Width 输入50,表示长方形的宽度为50 mil; Height 输入25,表示长方形的高度为25 mil。下图为输入各计算值后的Layers Tab页:(十)圆形通孔器件焊盘的制作方法范例:建立圆形有钻孔的焊盘 p60c36 n 规格说明 ① 名称定义 p 60 c 36 ② 钻孔规格 Plating Type Size Drill Symbol Plated (钻孔的孔壁必须上锡) 36 mil (钻孔的尺寸) 50 mil 的六角形,内有字母A 的图形 (由使用者为每一种钻孔尺 代表它是一个有钻孔的Padstack 代表 Padstack 的直径大小 60mil 代表 Padstack 的外形为圆形 代表 Padstack 的钻孔尺寸为 36mil 寸定义一个相对应的图形, 将来在钻孔图的底片可以看到此图形)。 ③ 内部规格 Regular Pad Thermal Relief Padstack 的外形大小为60 mil 的圆形。 Padstack 的防散热Pad 为TR52X66X15-45: TR 代表Thermal Relief; 52 内径尺寸等于钻孔尺寸(36 mil)加上16 mil; X 数字的分隔符; 66 外径尺寸等于钻孔尺寸(36 mil)加上30 mil; X 数字的分隔符; 15 开口尺寸等于15 mil; - 数字的分隔符; 45 开口角度等于45 度。 Anti Pad Padstack 的隔离Pad,其尺寸为66 mil 的圆形 (等于钻孔尺寸36 mil 加上30 mil)。 Soldermask Padstack 的防焊Pad, 其尺寸为66 mil 的圆形 (等于Regular Pad 60 mil 加上6 mil)。 Pastemask n 建立方法 【Parameters Tab】页设置内容: ① Type 点选Through,表示Padstack 有钻孔。 Padstack 的钢板Pad,其尺寸为0 mil,表示不需要钢板Pad。② Internal layer 点选Optional,表示由底片定义去设定未连接的内层Pad 是否出现 ③ Unit 部份:Units 选择Mils,Decimal places 输入0,表示使用单位为mil,小数点后没有小数,即为整数。④ Multiple drill 部份:请不要勾选Enabled,表示只有一个钻孔。 ⑤ Drill hole 部份:1) 2) 3) 4) 1) 2) 3) 4) Plating type 点选Plated,表示孔壁要上锡; Size 输入36,表示钻孔尺寸为36 mil; Offset X:钻孔的X 轴不偏移; Offset Y:钻孔的Y 轴不偏移。 Figure 点选Hexagon X,表示为六角形的图形; Character 输入A,表示为图形内有一个字母A; Width 输入50,表示为图形的宽度为50 mil; Hieght 输入50,表示为图形的高度为50 mil。⑥ Drill symbol 部份:下图为输入各计算值后的Parameters Tab页: 【Layers Tab】页设置内容: ① 设定BEGIN LAYER BEGIN LAYER 即为Top 层面,设定方法如下: 1) 选到BEGIN LAYER 以鼠标左键按一下在Padstack layers 内的BEGIN LAYER 方格,在最下方的 中间Current layer 变为BEGIN LAYER,表示目前的Regular Pad、Thermal Relief 及Anti Pad 是属于BEGIN LAYER。 2) 在Regular Pad 部份: Geometry 点选Circle,表示Padstack 的外形为圆形; Width 输入60,表示圆形的直径为60 mil; Height 会自动填入60。 3) 在Thermal Relief 部份: Flash 输入TR52X66X15-45,表示使用tr52x66x15-45.fsm 作为防散热Pad。 Geometry、Width 及Height 会根据指定的Flash自动填入,设计者不需输入。 4) 在Anti Pad 部份: Geometry 点选Circle,表示Padstack 的隔离Pad 为圆形; Width 输入66,表示圆形的直径为66 mil; Height 会自动填入66。 ② 设定DEFAULT INTERNAL 及END LAYERS DEFAULT INTERNAL 即为全部的内层层面,END LAYERS 为Bottom 层面,由 于DEFAULT INTERNAL 及END LAYERS 的内容与BEGIN LAYER完全相同,所 以将采用复制的方法来完成: 1) 以鼠标右键按一下在Padstack layers 最左边的Bgn 按钮,在弹出式选单选 择Copy to all, 出现Copy BEGIN LAYER 的对话框, 确认勾选Regular layers 及Regular pad、Thermal relief pad 及Antipad,如下图所示。2)按下 OK 按钮后,Allegro 就将BEGIN LAYER 的数据复制到DEFAULT INTERNAL 及END LAYERS。③ 设定SOLDERMASK_TOP 1) 选到SOLDERMASK_TOP 以鼠标左键按一下在Padstack layers 内的SOLDERMASK_TOP 方格,在最 下方的中间Current layer 变为SOLDERMASK_TOP,表示目前的Regular Pad 是属于SOLDERMASK_TOP。 2) 在Regular Pad 部份: Geometry 点选Circle,表示Padstack 的正面防焊Pad 为圆形; Width 输入66,表示圆形的直径为66 mil; Height 会自动填入66。 ④ 设定SOLDERMASK_BOTTOM 1) 选到SOLDERMASK_ BOTTOM 以鼠标左键按一下在Padstack layers 内的SOLDERMASK_ BOTTOM方格, 在最下方的中间Current layer 变为SOLDERMASK_ BOTTOM,表示目前的 Regular Pad 是属于SOLDERMASK_ BOTTOM。 2) 在Regular Pad 部份: Geometry 点选Circle,表示Padstack 的背面防焊Pad 为圆形; Width 输入66,表示圆形的直径为66 mil; Height 会自动填入66。 ⑤ 设定PASTEMASK_TOP 不设置。因为通孔焊盘不用于制作钢网。 ⑥ 设定PASTEMASK_BOTTOM 不设置。因为通孔焊盘不用于制作钢网。 下图为输入各计算值后的Layers Tab页: (十一)正方形通孔器件焊盘的制作方法范例:建立正方形有钻孔的焊盘 p60s36 n 规格说明 ① 名称定义 p 60 s 36 ② 钻孔规格 Plating Type Size Drill Symbol Plated (钻孔的孔壁必须上锡) 36 mil (钻孔的尺寸) 50 mil 的六角形,内有字母A 的图形 (由使用者为每一种钻孔尺 寸定义一个相对应的图形, 将来在钻孔图的底片可以看到此图形)。 ③ 内部规格 Regular Pad Padstack 的外形大小: 1. 2. Top 及Bottom 层面的Pad 为60 mil 的正方形(通常作为零 件的第1脚,以方便辨识零件的脚位)。 内层的Pad 为60 mil 的圆形(因为看不到在内层的Pad, 所以 不需要辨识脚位的功能,改用圆形会有较多的走线空间)。 Thermal Relief Padstack 的防散热Pad 为TR52X66X15-45: TR 代表Thermal Relief; 代表它是一个有钻孔的Padstack 代表 Padstack 的外形大小 60mil 代表 Padstack 的外形为正方形 代表 Padstack 的钻孔尺寸为 36mil 52 内径尺寸等于钻孔尺寸(36 mil)加上16 mil; X 数字的分隔符; 66 外径尺寸等于钻孔尺寸(36 mil)加上30 mil; X 数字的分隔符; 15 开口尺寸等于15 mil; - 数字的分隔符; 45 开口角度等于45 度。 Anti Pad Padstack 的隔离Pad,其尺寸为66 mil 的圆形 (等于钻孔尺寸36 mil 加上30 mil)。 Soldermask Padstack 的防焊Pad,其尺寸为66 mil 的正方形 (等于Regular Pad 60 mil 加上6 mil)。 Pastemask n 建立方法 【Parameters Tab】页设置内容: ① Type 点选Through,表示Padstack 有钻孔。 Padstack 的钢板Pad,其尺寸为0 mil,表示不需要钢板Pad。② Internal layer 点选Optional,表示由底片定义去设定未连接的内层Pad 是否出现 ③ Unit 部份:Units 选择Mils,Decimal places 输入0,表示使用单位为mil,小数点后没有小数,即为整数。④ Multiple drill 部份:请不要勾选Enabled,表示只有一个钻孔。 ⑤ Drill hole 部份:1) 2) 3) 4) 1) 2) 3) 4) Plating type 点选Plated,表示孔壁要上锡; Size 输入36,表示钻孔尺寸为36 mil; Offset X:钻孔的X 轴不偏移; Offset Y:钻孔的Y 轴不偏移。 Figure 点选Hexagon X,表示为六角形的图形; Character 输入A,表示为图形内有一个字母A; Width 输入50,表示为图形的宽度为50 mil; Hieght 输入50,表示为图形的高度为50 mil。⑥ Drill symbol 部份:下图为输入各计算值后的Parameters Tab页: 【Layers Tab】页设置内容: ① 设定BEGIN LAYER BEGIN LAYER 即为Top 层面,设定方法如下: 1) 选到BEGIN LAYER 以鼠标左键按一下在Padstack layers 内的BEGIN LAYER 方格,在最下方的 中间Current layer 变为BEGIN LAYER,表示目前的Regular Pad、Thermal Relief 及Anti Pad 是属于BEGIN LAYER。 2) 在Regular Pad 部份: Geometry 点选Square,表示Padstack 的外形为正方形; Width 输入60,表示正方形的边长为60 mil; Height 会自动填入60。 3) 在Thermal Relief 部份: Flash 输入TR52X66X15-45,表示使用tr52x66x15-45.fsm 作为防散热Pad。 Geometry、Width 及Height 会根据指定的Flash自动填入,设计者不需输入。 4) 在Anti Pad 部份: Geometry 点选Circle,表示Padstack 的隔离Pad 为圆形; Width 输入66,表示圆形的直径为66 mil; Height 会自动填入66。 ② 设定DEFAULT INTERNAL 及END LAYERS DEFAULT INTERNAL 即为全部的内层层面,END LAYERS 为Bottom 层面,由 于DEFAULT INTERNAL 及END LAYERS 的内容与BEGIN LAYER完全相同,所 以将采用复制的方法来完成: 1) 以鼠标右键按一下在Padstack layers 最左边的Bgn 按钮,在弹出式选单选择 Copy to all, 出现Copy BEGIN LAYER 的对话框, 确认勾选Regular layers 及 Regular pad、Thermal relief pad 及Antipad,如下图所示。2) 3)按下 OK 按钮后,Allegro 就将BEGIN LAYER 的数据复制到DEFAULT INTERNAL 及END LAYERS。 修正DEFAULT INTERNAL 为圆形 以鼠标左键按一下在Padstack layers 内的DEFAULT INTERNAL 方格,在最 下方的中间Current layer 变为DEFAULT INTERNAL,在RegularPad 部份的 Geometry 点选Circle,表示Padstack 的外形为圆形。③ 设定SOLDERMASK_TOP 1) 选到SOLDERMASK_TOP 以鼠标左键按一下在Padstack layers 内的SOLDERMASK_TOP 方格,在最 下方的中间Current layer 变为SOLDERMASK_TOP,表示目前的Regular Pad 是属于SOLDERMASK_TOP。 2) 在Regular Pad 部份: Geometry 点选Square,表示Padstack 的正面防焊Pad 为正方形; Width 输入66,表示正方形的边长为66 mil; Height 会自动填入66。 ④ 设定SOLDERMASK_BOTTOM 1) 选到SOLDERMASK_ BOTTOM 以鼠标左键按一下在Padstack layers 内的SOLDERMASK_ BOTTOM方格, 在最下方的中间Current layer 变为SOLDERMASK_ BOTTOM,表示目前的 Regular Pad 是属于SOLDERMASK_ BOTTOM。 2) 在Regular Pad 部份: Geometry 点选Square,表示Padstack 的背面防焊Pad 为正方形; Width 输入66,表示正方形的边长为66 mil; Height 会自动填入66。 ⑤ 设定PASTEMASK_TOP 不设置。因为通孔焊盘不用于制作钢网。 ⑥ 设定PASTEMASK_BOTTOM 不设置。因为通孔焊盘不用于制作钢网。 下图为输入各计算值后的Layers Tab页:(十二)走线过孔的制作方法 (十三)安装孔的制作方法基本步骤如下: 1. 2. 启动 Allegro PCB Editor,File-&New… ,Drawing Type 选 Package symbol Layout-&Pins,在坐标原点添加事先做好的安装孔孔径焊盘(非金属化孔) 。在 Option 中点选 Mechanical,选择 Mechanical 后添加的焊盘无 pin number 注: Pad Designer 中制作安装孔孔径焊盘时, 在 需要在 SOLDERMASK_TOP 层定义 覆盖整个安装孔的阻焊区, 目的是使安装孔 TOP 层金属部分露锡,保证安装螺丝与其 保持电连接。根据具体应用情况,也可在 SOLDERMASK_BOTTOM 层定义一个阻焊 区,使安装孔底层金属部分也露锡。参见下面的安装孔爆炸图。 3. 围绕原点分别在 Etch/Top 和 Etch/Bottom 绘制 shape 图形, 可利用如下两种方法绘制: i. ii. 4. Shape-&Polygon/Rectangular/Circular 先利用 Line 和 Arc 绘制需要的封闭图形, 再利用命令 Shape-&Compose Shape 将封闭图形转化成 Shape 在 Shape 上添加若干过孔,用于连接 Etch/Top 和 Etch/Bottom 的 shape。方法如下: ① 制作过孔。在 Pad Designer 中制作 ② 向设计中添加过孔。Setup-&Constraints,Physical rule set 中的 Set Values… ③ 在工作区添加过孔。Layout -&Connections,双击添加过孔 ⑤ 调整过孔的位置。Edit -&Move,在 Console window 中输入坐标实现精确定位 5. 在 Shape 上添加一个 pin,用于该安装孔连接到指定网络。该 pin 可共用第 4 步中的 过孔,只不过添加方法与其不同,利用该方法添加的就是 pin 而不是 via。方法如下: Layout -&Pins,在 Options 中的 Padstack 项点击浏览按钮指定(第 4 步制作的 via) 说明:为什么要加一个 pin?安装孔是作为一个器件被调入 PCB 中的,pin 有 pin number,因此可用于连接到 net。绘制原理图时有可能指定安装孔连接到某一网络例 如 chasis ground,因此安装孔的 PCB 封装需要有一个 pin 与原理图 symbol 对应。 6. 7. 在 REF DES / SILKSCREEN_TOP 添加安装孔的器件位号。例如 M* 。 在 PACKAGE GEOMETRY / SILKSCREEN_TOP 绘制丝印层外形框和辅助信息。安装孔爆炸图:(十四)名词解释 1)阻焊层(Solder Mask):又叫绿油层,是电路板的非布线层,用于制成丝网漏印板,将不 需要焊接的地方涂上阻焊剂。由于焊接电路板时焊锡在高温下的流动性,所以必须在不需要焊 接的地方涂一层阻焊物质,防止焊锡流动、溢出引起短路。 在阻焊层上预留的焊盘大小, 要比实际焊盘大一些, 其差值一般为10~20mil, 在Pad_Design 工 具中可以进行设定。 在制作PCB 时,使用阻焊层来制作涓板,再以涓板将防焊漆(绿、黄、红等)印到电路板上, 所以电路板上除了焊盘和过孔外,都会印上防焊漆。 2)锡膏防护层(Paste Mask):为非布线层,该层用来制作钢膜(片),而钢膜上的孔就对应 着电路板上的SMD 器件的焊点。在表面贴装(SMD)器件焊接时,先将钢膜盖在电路板上(与 实际焊盘对应),然后将锡膏涂上,用刮片将多余的锡膏刮去,移除钢膜,这样SMD 器件的焊 盘就加上了锡膏,之后将SMD 器件贴附到锡膏上去(手工或贴片机),最后通过回流焊机完成 SMD 器件的焊接。 通常钢膜上孔径的大小会比电路板上实际的焊点小一些, 这个差值在Pad_Design 工具中可以进 行设定。(十五)定义TEXT_BLOCK# 时各个参数的含义Text Blk (字体编号由最小的1 至最大的64 号,并可再新增字体) Identifies the text block by number. When you add text to a design, you enter the number of the text block you want to use in the Options tab of the Control Panel. Width (Text 中单个字符的宽度) Sets the width of each character. Height (Text 中单个字符的高度) Sets the height of each character. Line Space (Text 中行与行之间的上下行距) Sets the distance between the bottom of the characters in one line to the top of the characters in the line below. Photo Width (画在底片上的字体线宽,即 Text 中字符的线宽) Sets the width of the line used to photoplot and display the characters. If this is 0, the text displays at 1 pixel width on your screen. Char Space (Text 中的字符与字符之间的间距) Sets the amount of space between characters (kerning).(十六)涉及TEXT 操作的几点说明 1. 向设计中添加文本时默认字号(block size)的设置方法。,点击Text标签页,其中‘Parameter block’项决定 SetupàDrawing Options。。补充: ‘Justification’项决定所添加的文本相对鼠标定位点的延伸摆放方向 (left/right/center)2. 如果Text选择的字号(Text Blk#) ,其Photo Width项被设置为0,则该Text使用1个象素宽度的线显示。 3. 同时修改同一类(the same class and subclass)Text字号的方法 举例: n 同时修改PCB上所有器件标号的字号 ① 在allegro中打开电路板。 ② 执行命令:Edit-&Change。 ③ 在控制面板Find页,只勾选Text项,其它不勾选。 ④ 在控制面板Option页, Class选择 ‘Ref Des’ Subclass选择 , ‘Silkscreen_Top’ , 勾选Text block项同时在其右侧下拉菜单中选择更改后的字号。 注:字号可以在Setup-&Text Sizes…中查看、修改、新增 ⑤ 按住鼠标左键,框选整个PCB,则位于PCB上的所有器件标号就同时被更改成想要 的字号。(十七)修改同一类(the same class and subclass)Line线宽的方法方法如下:1. 执行命令:Edit-&Change 2. 在控制面板Find页勾选需要修改什么类型的线(Lines or Clines) 3. 在控制面板Option页,正确选择需要修改线所属的Class和Subclass,勾选Line width项同时在其右侧输入目标线宽。4. 用鼠标左键点击想要修改的线即可完成修改。举例: n 修改器件丝印外框的线宽 ① 在allegro中打开电路板。 ② 执行命令:Edit-&Change。 ③ 在控制面板Find页,仅勾选Lines项,其它不勾选。 ④ 在控制面板Option页,Class选择‘Package Geometry’,Subclass选择 ‘Silkscreen_Top’,勾选Line width项同时在其右侧输入目标线宽。 ⑤ 用鼠标左键点击想要修改的线即可完成修改。也可以按住鼠标左键,框选所需修 改区域,则位于该区域内的所有器件丝印外框的线宽被更改成目标线宽。 n 修改布线层线宽 ① 在allegro中打开电路板。 ② 执行命令:Edit-&Change。 ③ 在控制面板Find页,仅勾选Clines项,其它不勾选。 ④ 在控制面板Option页,Class选择‘Etch’,Subclass选择‘Top’(或其他布线 层),勾选Line width项同时在其右侧输入目标线宽。 ⑤ 用鼠标左键点击想要修改的导线即可完成修改。也可以按住鼠标左键,框选所需 修改区域,则位于该区域内的所有导线线宽被更改成目标线宽。(十八)手动设计PCB封装的步骤? 1. 原则上尽量利用向导设计PCB封装。 执行‘File/New’命令, 出现New Drawing对话框, 在Drawing Type 中点选Package Symbol,在Drawing Name中输入文件名,点OK即可。如果想要更改新建文件保存的路 径,点‘Browse’选择目的路径。注意:在Browse菜单下方一定要勾选‘Change Directory’ ,新设置的目的路径才能生效。 2.(十九)利用向导设计PCB封装的步骤 (二十)设计 PCB 封装时几点注意事项1. 不要误将焊盘标号当作 Text 删掉 [Group]Geometry-&[Class]Package Geometry-&[subclass]Pin_Number 在 allegro 中,针对焊盘标号的操作,控制面板 Find 页都是勾选‘Text’项,但其类属于 Package Geometry-Pin_Number。 每个焊盘都应具有焊盘标号,用于映射原理图元件的 pin 号。如果 PAD 没标号,表示原 理图不关心这个 pin 或是机械孔。 2. 序 号 1 PCB 元件封装(Symbol)的必要的 CLASS/SUBCLASS CLASS SUBCLASS 元件要素 PAD/PIN(通孔或表贴焊盘) Shape(贴片 IC 下的散热铜箔) PAD/PIN(通孔或盲孔) 映射原理图元件的 pin 号。如果 Pin_Number PAD 没标号,表示原理图不关心这 必要 个 pin 或是机械孔。 Silkscreen_Top Silkscreen_Top 元件的位号。例如 R*、C* 等 元件型号或元件值。 元件外形和说明:线条、弧、字、 Shape 等。 必要 必要 备注EtchTop必要、有电导性 视需要而定、有 电导性2EtchBottom3Package Geometry Ref Des Component Value Package Geometry Package Geometry4 56Silkscreen_Top必要7 8 9Place_Bound_Top 元件占地区和高度。 禁止布线区 禁止放过孔必要 视需要而定 视需要而定Route Keepout Top Via Keepout Top(二十一)Allegro 中怎样直观地显示焊盘的网络名(just as Protel)14.2 后的版本, 在 Add connect 的时候在右边控制面板的 options 里面就有显示当前 route 的 net 名. 别的方法暂时还没找到.(二十二)Allegro 中的组(Group) 、类(Class) 、子类(Subclass)Allegro 把相同性质之数个Subclasses 组合成一个Class,然后再把相同性质之数个 Classes 组合成一个Group,目前共分7 个Groups (20 个Classes): [Allegro 把层面(Layer)称为Subclass](二十三)如何设计不规则形状的表贴焊盘 首先使用 shape 做出所需图形并生成*.ssm 文件,然后在 PAD DESIGNER 里指定给 BEGIN LAYER 的 Regular Pad;再使用 shape 做出对应防焊图形并生成*.ssm 文件,指定给 SOLDERMASK_TOP 的 Regular Pad。(二十四)Xnet 概念概念:通常把连续的几断由无源元件(电阻,电容或电感)连接的 NET 合称为 Xnet。 Xnet 是通过给无源分离元件赋予信号模型(Signal Model)建立的。用途:在 Allegro 系统中可以透过 XNET 的定义将 R、L、C 等小型零件两端的不同讯号视为 相同的讯号,并可跨过此小型零件,一次设定两端的走线长度,以方便使用者同时计算小 型零件两端的走线长度。 应用:数据总线中的串联匹配电阻往往将整个走线分为几个 NET,而 Allegro 中常用的走线长 度设置 propagation_delay 和 relative_propagation_delay 只能针对同一 NET 设置。Allegro 提供了一种方法,将整根走线被电阻等分立器件分隔后形成的各部分线 段相加后再进行等长比对,这就要用到 Xnet。 设置 Xnet 的 4 个步骤: [详细步骤参见《Allegro Book II》Page199] 1. 定义层面叠层结构的方式 [此布骤可跳过] 在Allegro 系统中有两种方法可以定义层面叠层结构的方式: 1) 2) 使用Setup&Cross Section…命令 使用Setup Advisor 的Edit Cross-section 功能一般而言,我们会建议使用者利用Setup Advisor 命令去定义XNET 的相关设定, 因为Allegro 系统将相关的功能整合在一起,并以Step By Step 的方式引导使 用者去完成每一项设定,其间并辅以文字的说明,以协助使用者的操作,这对使用者 而言是一项很好用的利器。 2. 定义电源及接地讯号 [此布骤可跳过] 在Allegro 系统中有3 种方法可以定义电源及接地讯号的方式: 1) 2) 3) 使用Edit&Properties 命令 使用Logic&Identify DC Nets 命令 使用Setup Advisor 的Identify DC Nets 功能3.定义零件的类别及其接脚型式 必须将小型被动零件的类别 (Class) 设定为DISCRETE,及其零件脚的接脚型式 (Pin Type,即Pinuse 属性) 设定为UNSPEC,如此才能使XNET的设定正确。 在Allegro 系统中可以使用Setup Advisor 的Device Setup 功能,可以定义 零件的类别及其接脚型式。 指定零件的Signal Model。 必须将小型的被动零件加上Signal_Model 属性, 并建立此小型被动零件的Signal Model,如此才能让小型的被动零件拥有XNET 的特性。 在Allegro 系统中可以使用Setup Advisor 命令的SI Model Assignment 功4. 能,可以建立小型被动零件的Signal Model,并将Signal Model 属性设定于此 零件上。 验证 Xnet 设置正确性: 经由上述的步骤完成XNET的设定,接下来要确认XNET是否可以正常运作。 1. 使用Display&Element 命令,在右边的控制面板上按一下Find Tab,再按一下 All Off 按钮,仅勾选Nets 选项。 2. 用鼠标左键分别点击已赋予Xnet属性的分立元件的两个管脚查看其net属性, 如果两 边NET都添加了同一Xnet属性(两个管脚都具有相同的‘Member of Xnet’值) 说明Xnet已设置正确。 例如: 串接在 A2 地址线上的 33 欧姆电阻, 赋予其 Xnet 属性后查看其两个管脚 net 属性 分别如下图所示: (二十五)Xnet 等长设置步骤1. 建立 Xnet 的 pin pair:在 Allegro 中打开 constraint manager(Allegro 中打 开约束管理器的方法:Setup-&Electrical Constraint Spreadsheet...),选 择 relative_propagation_delay 属性,选中一个 Xnet,Allegro 提供整个项目中 该 Xnet 关联的起始 pin 和结束 pin ,选择需要等长设置的起始 pin 和结束 pin 建立 pin pair。 2. 建立等长 group:选中所有需要设置等长的 pin pair,点右键 Create-&Match Group 创建名为 R_IDE_DATA 的 MATCH GROUP。在与 relative_propagation_delay 对应 的工作窗体选择区中出现了刚创建的 R_IDE_DATA,其内含建立的 pin pair,按照 IDE 总线走线等长要求设置走线误差 10mil 以内,一般选择最长走线为基准线(target)。 3. 走线完成后,重新打开 constrait manager 对实际走线进行分析,Allergo 自动显示 分析结果,绿色表示走线以基准线为标准,走线误差在 10mil 以内,红色表示走线误差超 过 10mil,如果分析结果,大部分走线都为红色,可以适当调整基准线的选择。 此外,Allegro 在等长走线时,会实时显示走线长度是否在误差范围内,可以使用蛇型线 调整走线长度(Route-&Delay Tune),这些都极大的确保了布线可靠性。(二十六)Pin Pairs 的概念A pin pair represents a pair of logically connected pins, often a driver-receiver connection. Pin Pairs may not be directly connected but they must exist on the same net or Xnet. You use pin pairs to capture specific pin-to-pin constraints for a net or an Xnet. You can also use pin pairs to capture generic pin-to-pin constraints for ECSets. Generic pin pairs are used to automatically define net- or Xnet-specific pin pairs when the ECSet is referenced. 概念:Pin Pairs 代表一对逻辑相连的管脚。Pin Pairs 一般是直接相连的,具有相同的 net 属性;Pin Pairs 也可以是不直接相连的(通过电阻、电容、电感等相连),但必须具 备相同的 Xnet 属性。换言之,具有相同的 net 或 Xnet 属性的一对管脚才能被定义成 Pin Pairs. 补充:T 点可用来定义管脚对(Pin-Pair),但定义管脚对前首先为 net 添加好 T 点(二十七)T点的概念 (Rat Ts or Ratsnest T-point)A Tpoint (also called a Ratsnest T) is a point in the physical layout of a net that indicates the signal path splits into multiple paths. n T 点的作用 1. 可用作管脚对(Pin-Pair)的一个端点,用来定义管脚对。 例如: 管脚对‘U2.AK3:T1.1’表示――Pin Pair 的起点为U2.AK3 Pin Pair 的终点为T点T1.1 2. n 1. 2. 3. 4. 5. 通过给 net 添加 T 点,可控制走线的分支长度。 Logic-& Net Schedule 鼠标左键点中该 net 中作为信号布线路径源端的管脚 Pin 鼠标右键,在弹出菜单中选择 ‘Insert T’ 用鼠标左键点击 T 点将要放置的位置 对于该 net 中剩下的管脚 Pin,反复采用如下方法定义起始于 T 点的各分支线的布线 次序: ① 点击一下 T 点 ② 点击一个管脚 Pin 6. n 鼠标右键,在弹出菜单中选择 ‘Done’ 为 net 添加 T 点的方法Example of Creating Branches from a TpointThis series of illustrations shows how you connect pins to a Tpoint. 1. After you enter the net schedule command, choose the source pin for the net and then the location of the Tpoint.?Selecting Source Pin and Tpoint Location 2.Choose the Tpoint and a pin (P2) on the net to create the second branch.?Selecting Tpoint and Second Pin(P2)n详细情况参见 Allegro 在线帮助“Net Schedule”章节 方法:运行命令 Logic-& Net Schedule,按 F1 启动在线帮助文档。(二十八)Allegro 中尺寸测量的方法操作方法: ① Display-&Measure (或 shift+F5) ② 在控制面板中 Find 页, 先清除所有项, 再选中需要测量对象所属的类, Pins、 如 Cline Segs、 Other Segs、Text、Shapes、Vias、Figures ③ 用鼠标单击第一个测量对象,Allegro 显示 Measure 对话框并识别对象和位置 ④ 用鼠标单击第二个测量对象,Allegro 更新 Measure 对话框,识别第二个对象和其位置,并 显示所选两点的距离及 Air Gap 值(下图中白线长度) 。 其中,Manhattan Dist 为 X 轴(Dx)的直线距离加上 Y 轴(Dy)的直线距离;Air Gap 为 两个测量对象边缘之间的距离。 Allegro 提供了测量命令使设计这可获得设计对象及物体之间间距的信息。 Allegro 的测量操作限 定在 ETCH、 PIN、 VIA 等类定义的子类的间距。 和 在显示测量结果时, 一个重要的数据是 Air Gap (气隙) ,在 Allegro 中,Air Gap 指的是测量两个目标元素时它们之间最短的距离(即,边缘到 边缘的距离) 。Allegro 在测量时会显示一个短线,这个短线的长度等于 Air Gap 的长度。 Allegro 可以测量的内容如下: ? ? ? ? ? ? ? ? 测量元件与元件之间的距离 测量焊盘与焊盘之间的距离 测量文字到其他类之间的距离 测量焊盘到其他类之间的距离 测量过孔到其他类之间的距离 测量连线的宽度 测量连线的长度 测量两个目标元素之间边缘到边缘的间距(Air Gap) 有时测量器件的两个焊盘,不能得到它们之间的 Air Gap 值,系统提示”No air gap -- both elements are not defined on TOP. Common subclasses for air gap are BOTTOM”. 其原因就是所测量器件位于 BOTTOM,但测量时控制面板 Options 标签页中 ActiveClass 和 Subclass 没有相应设置成 Etch/Bottom,所以会出现上述的情况。 ※ 要根据被测量对象,正确设置 Options 标签页中 ActiveClass 和 Subclass 举例: n 测量两个焊盘(Pin)之间的中心距 ① Display-&Measure (或 shift+F5) ② 在控制面板中 Find 页,先清除全部的勾选,再勾选中 Pins 项 ③ 用鼠标分别点击需要测量的两个焊盘,allegro 会弹出测量结果菜单 n n 测量两个焊盘(Pin)之间的边沿距离 操作方法同上一步,测量结果菜单中 Air Gap 项即为两焊盘的边沿距离 测量 Clines 之间的距离 ① Display-&Measure (或 shift+F5) ② 在控制面板中 Find 页,先清除全部的勾选,再勾选中 Cline Segs 项 ③ 用鼠标分别点击两条 Cline,allegro 会弹出测量结果相关信息 n 测量焊盘(Pin)于过孔(Via)之间的距离※ 补充说明: ① Display-&Measure (或 shift+F5) ② 在控制面板中 Find 页,先清除全部的勾选,再勾选中 Pins 和 Vias 项 ③ 用鼠标分别点击 Pin 和 Via,allegro 会弹出测量结果相关信息 n 测量一根丝印层线段的长度 ① Display-&Measure (或 shift+F5) ② 在控制面板中 Find 页,先清除全部的勾选,再勾选中 Other Segs 项 ③ 用鼠标分别点击线段的两个端点,allegro 会弹出测量结果菜单(二十九)为内层电源层绑定网络方法(实际上就是阴板铺铜)n 内层为单一网络 ① 首先保证已经绘制好了 Route Keepin 外形框,它用作内层灌铜的边界。 Setup-&Areas-&Route Keepin (ActiveClass/Subclass: Route Keepin/All; Shape Fill 栏的 Type 项设置为 Unfilled) ,在工作区画出一个比外形框向内缩进的 Shape ② Edit-&Split Plane-&Create ,出现‘Create Split Plane’对话框,选择要进行阴板 铺铜的层面,同时 Shape type desired 项设置为 Dynamic;单击 Create 按钮,出 现‘Select Net’对话框,选择要给层面绑定的网络,单击 OK 结束操作。此时系 统自动以刚才绘制的 Route Keepin 区域外形框为边界进行阴板铺铜。 n 内层为多个网络共用,需要内层分割 ① 首先保证已经绘制好了 Route Keepin 外形框,它用作内层灌铜的边界。 Setup-&Areas-&Route Keepin (ActiveClass/Subclass: Route Keepin/All; Shape Fill 栏的 Type 项设置为 Unfilled) ,在工作区画出一个比外形框向内缩进的 Shape ② 设置各个网络之间的间隔区域, Allegro PCB 设计中就是进行 Anti Etch 的设计。 在 Add-&Line (ActiveClass/Subclass:Anti Etch/需要进行分割的内层;Line font: 设置为 Solid;Line width:绘制线宽,实际上就是设置不同网络之间的间隔距离的 宽度) ③ 在工作区不同网络的分界处画出分割平面的 Anti Etch 线。 ④ Edit-&Split Plane-&Create ,出现‘Create Split Plane’对话框,选择要进行阴板 铺铜并分割的层面,同时 Shape type desired 项设置为 Dynamic;单击 Create 按 钮,出现‘Select Net’对话框,依次为各个分割后的区域指定网络,单击 OK 结 束操作。 (执行该步操作时可以将要分割的内层 Visibility 打开,以方便观察)(三十)后处理――Gloss 优化命令无论手工布线还是采用 Specctra 自动布线,总会产生一些布线效果不好、多余过孔等问题,此 时可利用 Allegro 提供的 Gloss 命令对设计进行优化和调整。 1)优化前的准备工作 ① 检查设计以确定是整个板子都需要进行优化还是只对某个区域或者某个网络优化 ② 保护方法 ? 如果某些网络有特殊需求,应对其进行设置以保护优化过程中不改变这些网络的特 殊性。保护设置方法就是给网络增加 NO_GLOSS 或者 FIXED 属性。NO_GLOSS 属性确保网络不在优化过程中改变;FIXED 属性确保网络在任何布线或优化过程中 都不会发生变化。 ? 如果要保护设计中的某个区域不被优化,则应设置一个 NO_GLOSS 的多边形。 NO_GLOSS 的 多 边 形 应 该 设 置 在 MANUFACTURE 层 , 它 的 子 层 可 以 是NO_GLOSS_TOP、NO_GLOSS_BOTTOM、NO_GLOSS_ALL、NO_GLOSS_INTERNAL。?Allegro 还提供了几种不同的优化命令可以针对不同的区域进行优化操作,分别是 Route-&Gloss 菜单中的‘Design’‘Room’‘Window’‘Highlight’‘List’ 、 、 、 、 。 ‘Design’ :用于对整个实际进行优化 ‘Room’ :用于对选定的 Room 进行优化 ‘Window’ :用于对选定的窗口进行优化 ‘Highlight’ :用于对高亮显示的单个网络或者元件进行优化 ‘List’ :用于对所设定的列表项目进行优化 2)选择优化的内容和相应参数设置 Route-&Gloss-&Parameters,出现‘Glossing Controller’对话框,该对话框列出了可进行 优化的内容。如下图所示:点击每一项左边的复选框会弹出相应的参数配置菜单。 3)勾中需要执行单项的右侧复选框并配置好相应优化参数后,点击 Gloss 按钮即可执行优化 操作。(三十一)后处理――丝印调整 (三十二)锁定元器件的方法(即给器件添加 Fixed 属性使其不能再被移动或删除)1) 2) 在工作区内按 F12 或执行 Edit-&Properties,进入属性编辑状态 在控制面板 Find 标签页,清除全部的勾选,仅选中 Comps 项(选 Symbols 项也可) 使 Component 可以被作用 3) 在工作区鼠标左键点击需要添加 Fixed 属性的器件,出现‘Show Properties’当前属 性列表和‘Edit Property’属性编辑对话框。如下图所示: ? ? ‘Show Properties’属性列表:可获知该元件当前已被赋予的所有属性 ‘Edit Property’修改属性对话框:进行元件属性的添加、删除 &说明&通过上图可知,RN11 当前具有一项属性:SIGNAL_MODEL。即被赋予了信号模型 RESISTOR_DIP_4_SMD_RPX4_4)在 Edit Property(修改属性)对话框中,于 Available Properties 列表中点选 FIXED 选项,在此对话框的右边会出现 FIXED 属性,在其下拉列表设置为 TRUE。5)在Edit Property(修改属性)对话框中, 按一下 Apply 按钮, 将FIXED 属性加入器件, 此时在Show Properties(列出属性)的对话框中,可以看到器件已有FIXED 属性,如 下图所示。6)在Edit Property(修改属性)对话框中,按下 OK 按钮,最后在设计区中按鼠标右键, 点选Done 选项,完成将器件加入Fixed 属性的动作。补充:器件解除锁定的方法 前 3 步同上,在第 4 步,勾选中 Edit Property(修改属性)对话框右边 Fixed 属性左 侧的‘Delete’复选框,点击 Apply 按钮,观察 Show Properties(列出属性)对话 框,发现器件原来具有的 FIXED 属性没有了,说明器件已解除锁定。(三十三)为元件或网络设定属性Allegro 可以设定属性(Property) 在元件(Component)或讯号线(Net)上面, 用以控制这 些对象。元件和网络常用的属性如下:(还有很多其他属性) n 常用元件属性 属性名称 HARD_LOCATION 说明 执行自动重新编排零件序号的功能(Auto Rename)时, Allegro 不可以改变该零件的序号(RefDes)。 FIXED 将该零件固定住, 例如: 使用者将无法使用 “Edit/Move” 命 令去搬移这个零件。 n 常用网络属性 属性名称 NO_RAT FIXED 说明 将该Net 的鼠线(Ratsnest)关掉。 将该Net 固定住,例如:使用者将无法使用 “Route/Slide”命令去搬移这个零件。 MIN_LINE_WIDTH 设定最小走线的宽度。例如:MIN_LINE_WIDTH = 20, 表示最小走线的宽度为20 mil。 NET_PHYSICAL_TYPE 用来设定走线宽度的分组名称。例如: NET_PHYSICAL_TYPE = 8,表示该分组的最小走线的宽 度为8 mil。 NET_SPACING_TYPE 设定走线间距的分组名称。 例如:NET_SPACING_TYPE = ( 6 / 10 ) NET_SPACING_TYPE = CLK ( 8 / 12 ) NET_SPACING_TYPE = DPAIR ( 5 : 10 / 15 ) NET_SPACING_TYPE = T 6 ? 设定属性方法: 1. 在工作区内按 F12 或执行 Edit-&Properties,进入属性编辑状态 2.在控制面板 Find 标签页,清除全部的勾选。如果要设置元件属性,选中 Comps 项使 Component 可以被作用;如果要设置网络属性,选中 Nets 项使网络可以被作用。 用鼠标左键点选要设置属性的元件或网络,系统会弹出‘Show Properties’当前 属性列表和‘Edit Property’属性编辑对话框。 在‘Edit Property’属性编辑对话框右边列出了元件或网络当前所具有的属性(为 空表示还没有被赋予任何属性) 。可以在‘Edit Property’属性编辑对话框中添加、 删除或修改元件或网络的属性; 在‘Show Properties’属性列表中可实时查看元件或网络当前具有的属性。 (在‘Edit Property’对话框中点击 Apply 按钮后,系统会实时更新‘Show Properties’属性列表中的内容)3.4.?利用上述方法为网络指定属性后,在约束管理器的 Net/General Properties 工作表 中会同步显示,当然也可通过该工作表直接设置网络属性。(三十四)Swap 交换 (三十五)如何添加限制区 Constraint Area(例如线进入这个区域线宽、线距会有变化)① 绘制规则区。 规则区必须绘制在 BoardGeometry 的 Constraint_Area 字类。 方法有两种: ? Setup-&Constraints…, 点击 Contraints areas 区域中的 Add 按钮, 绘制 area ? Shape-&Rectangular (Shape Fill Type:unfilled),注意控制面板中 Options 标签页中 选择 Class:BoardGeometry 和 Subclass:Constraint_Area. 注:BoardGeometry/Constraint_Area 的 visibility 必须打开,否则看不到绘制的 Area。 ② 定义线宽、间距规则组 Setup-&Constraints…,出现 Constraint System 对话框。分别点击 Spacing rule set 和 Physical (lines/vias) rule set 中的‘Set values’…定义间距和线宽规则组。 下图为建立一个名字为‘10’ (表示走线间距为 10mil)的间距规则组: ③ 给规则区添加约束属性 Net_Physical_Type 和 Net_Spacing_Type,并分别起个名字 Edit-&Properties,控制面板 Find 标签页勾选中 Shapes,左键点击规则区,弹出属性编 辑窗口,在窗口左侧的 Available Properties 栏内找到并点击 Net_Physical_Type 和 Net_Spacing_Type 项使其添加到窗口右侧的属性列表中,分别给二者起一个名字,最好 能表现他的属性,填入‘Value’栏内。点击 Apply 按钮,完成属性添加。如下图: 其中,Net_Spacing_Type 对应的名字‘DATA(10/15)’表示与同组走线的间距 10mil, 与其他走线的间距为 15mil;Net_Physical_Type 对应的名字‘8’表示走线线宽为 8mil。 ④ 给约束属性名(已由第 3 步定义)指定规则组(已由第 2 步定义) Setup-&Constraints…,出现 Constraint System 对话框。点击 Spacing rule set 域的 Assignment table…指定间距规则组;点击 Physical rule set 域的 Assignment table…指 定走线线宽规则组。(三十六)如何为总线(或一组网络)添加走线线宽、走线间距(包括组内、组外)约束n 走线线宽约束设定 ① 列出总线走线线宽需求 如:8mil ② 根据线宽起一个线宽约束名(如: ‘8’,将 Net_Physical_Type 属性添加到总线 ) 内的每一根讯号线上,同时将线宽约束名赋值给 Net_Physical_Type 属性。 方法:Edit-&Properties,Net_Physical_Type = 线宽约束名(8) ③ 定义线宽规则 方法:Setup-&Constraints…,点击 Physical (lines/vias) rule set 的 Set values ④ 绑定线宽规则至线宽约束名 方法:Setup-&Constraints…,点击 Physical (lines/vias) rule set 的 Assignment table ⑤ 设定线宽 DRC 检查模式 若要能够进行线宽的检查,必须打开相关的DRC 开关。 方法:Setup-&Constraints…,点击Physical (lines/vias) rule set 的Set DRC modes n 走线间距约束设定 ① 列出间距设计需求 如: ‘8/10’表示组内 8mil 组外 10mil ② 根据间距起一个间距约束名(如 DATA(8/10)) ,将 Net_Spacing_Type 属性添加 到总线内的每一根讯号线上,同时将间距约束名赋值给 Net_Spacing_Type 属性。 方法:Edit-&Properties,Net_Spacing_Type = 间距约束名(DATA(8/10)) ③ 定义间距规则 涉及到几种间距就要定义几种规则。一般以间距值作为规则名。 方法:Setup-&Constraints…,点击 Spacing rule set 的 Set values(因为涉及到 8 和 10 两种间距,所以需要定义名为 8mil 和 10mil 的两种间距规则) ④ 为每一对具有相同或不同间距约束名属性的网络之间指定间距规则(相同的表示组内 间距,不同表示组外间距) 方法:Setup-&Constraints…,点击 Spacing rule set 的 Assignment table… ⑤ 设定间距 DRC 检查模式 若要能够进行间距的检查,必须打开相关的DRC 开关。 方法:Setup-&Constraints…,点击 Spacing rule set 的 Set DRC modes… ? 细节参见《Allegro Book I》第 265 页“第 11 章 设定设计规范”(三十七)如何实现元件对齐功能PCB 布局时往往需要将成组的分立器件(如电阻电容等)或 IC 水平或垂直方向对齐,该功能在 Allegro 中是通过向系统添加并运行 skill 文件实现的。步骤如下: 1. 在 PCBENV 目录下,新建一个 align_sym.il 文件. 说明:PCBENV 为默认环境变量目录。该目录位于安装 allgro 时设置的系统工作目录下 2. 将实现元件对齐功能的 skill 源码拷贝进 align_sym.il 文件中,保存并关闭。该源码 内容参见附表 4.该源码可实现水平和垂直对齐功能,还有按原点和按 PIN 对齐. 3. 在 PCBENV 目录下,新建一个 allegro.ilinit 文件. (或将..\Cadence\SPB_15.5.1\share\local\pcb\skill 下 example.ilinit 拷贝至 PCBENV 目录下,并重命名为 allegro.ilinit) 4. 向 allegro.ilinit 文件中添加如下一行:load(&align_sym.il&)并保存. 也可以 在 ENV 中加入快捷键,调用更加方便:打开 ENV,在里面添加一行 alias F3 align_sym 保存,再打开 Allegro 即可使用 F3 调用. 注意:如果使用系统提供的 example.ilinit 作蓝本,需要将该文件中所有代码删除, 否则启动 Allegro 时 Console window 会报错 5. ? 启动 Allegro,在 Console window 中敲入 align_sym 回车即可使用对齐功能了. 以后添加其它 SKILL 也可以参照上述方法 在 Allegro 的 Console window 中敲入 align_sym 回车后,弹出如下菜单:6.Direction:Horizontal――本次操作执行水平对齐 Vertical――本次操作执行垂直对齐 Alignment Point:Pin1――所选器件按 1 脚对齐 Origin――所选器件相对原点对齐 注:当几个电阻的 pin1 不在同一侧而又要将它们垂直对齐时,应选用‘Origin’方式. 如果选择‘Pin1’方式则会按 1 脚对齐出现下图所示情形,不能到达电阻对齐的目的: (红色圈框中的是三个电阻的 1 脚)Select Mode:Group――先点选目标器件(其他器件根据目标器件的位置对齐)再分别 点选要参与对齐的器件,然后右键选 Complete 执行对齐动作 Window――先点选目标器件(其他器件根据目标器件的位置对齐) ,再用 鼠标框选要参与对齐的器件,对齐动作随即执行附表1 Allegro 文件类型参照表 Allegro根据不同性质功能的文件类型保存不同的文件后缀,主要的类型可以参照下表: 1、Package Symbol 一般元件的封装符号, 后缀名为*.psm。PCB 中所有元件像电阻、电容、电感、IC 等的封装类型即为 Package Symbol。 2、Mechanical Symbol 由板外框及螺丝孔所组成的机构符号, 后缀名为*.bsm。 有时我们设计PCB 的外框及螺丝孔位置都是一 样的, 比如显卡, 电脑主板, 每次设计PCB时要画一次板外框及确定螺丝孔位置, 显得较麻烦。 这时我们可 以将PCB的外框及螺丝孔建成一个Mechanical Symbol, 在设计PCB 时, 将此Mechanical Symbol 调出即可。 3、Format Symbol Creates a drawing symbol such as a legend or a company logo。 由图框和说明所组成的元件符号, 后缀名为*.osm。比较少用。 4、Shape Symbol 供建立特殊形状的焊盘用, 后缀为*.ssm。像显卡上金手指封装的焊盘即为一个不规则形状的焊盘, 在 建立此焊盘时要先将不规则形状焊盘的形状建成一个Shape Symbol, 然后在建立焊盘中调用此Shape Symbol。 5、Flash Symbol 焊盘连接铜皮导通符号, 后缀名为*.fsm。在PCB 设计中, 焊盘与其周围的铜皮相连, 可以全包含, 也 可以采用梅花辨的形式连接, 我们可以将此梅花辨建成一个Flash Symbol, 在建立焊盘时调用此Flash Symbol。附表 2Allegro 设计流程: 附表 3Allegro 基本概念Clines 与 Lines Clines 与 Cline Segs Symbols Comps Functions Nets Clines 为具有导电特性的连线;Lines 为非导电,如丝印层线 Clines 指整条连线;Cline Segs 指连线中没有转折的一段线段 指所有板中的 Allegro 零件,不管其是否带有零件序号(RefDes) 带有零件序号(RefDes)的 Allegro 零件 指 Component 中的 Gate,例如:排阻中的一个电阻。 指1条信号线 指零件脚 走线过孔 指空心或实心的任意形状的Shape 指Shape中的挖空部分 指Line中没有转折的一段线段 指图形符号,例如:钻孔符号 指出违反设计规范的位置及其相关信息 指文字 指鼠线 ( 即讯号线未完成的联接关系 ) 指T点,为呈T型的Ratsnest 取消上一步动作(Undo) 开始下一条(布线)操作 退出此类操作 同时走 bus 线 走线时出线角度切换(先直再斜或先斜后直)控制 面板 Find TabPins Vias Shapes Voids Other Segs Figures DRC Errors Text Ratsnests Rat Ts右键 Pop MenuOop Next Cancel Temp Group Toggle附表 4实现元件对齐功能的 skill 源码(align_sym.il) ;+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Other files required: align_sym.form Purpose: To allow the User to align Component Package symbols by Component Origin or by component pin 1. Usage: Once this file is loaded into the Allegro database enter align_sym&ret& and a form will display Items may be picked by top, bottom or both. Items may be selected by window, group or tolerance. In selecting by group or window, the user may specify choice by class. The tolerance value is the distance to each side of the alignment axis. 1. Select Form Options 2. Select &Key Componen& to align other symbols to. 3. If Group or window is selected, define the window or define group elements, and pick complete in popup window ( middle mouse button). 4. Go on to next or hit done. Special notes: 1. All Symbol definitions must exist in a Library Path. 2. Shape in symbols not recognized. 3. Any etch connected will be deleted. 4. Symbol definition as found in library will be maintained. (this includes alt_symbols). File Name: align_sym.il Author: Edward B. Acheson Sr Division AE SPG Division Benchmark Center Cadence Design Systems 270 Billerica Road Chelmsford MA 0) 262-6465Revision 0: December 20,1993;========================================================= ;==================== MAIN ROUTINE ======================= ;========================================================= axlCmdRegister( &align_sym& 'align_sym )procedure( align_sym( ) (prog () when( axlOKToProceed() _ASInitVar() _ASCreateFormFile() _ASInitParmForm() while( fini == nil _ASsetsymmaster() if( _ASFormData-&group == t && fini == nil then _ASselectGrp() if( _ASFormData-&horizontal == t then _ASMoveHorzComp( cmpgrp) else _ASMoveVertComp( cmpgrp) )) if( _ASFormData-&tolerance == t && fini == nil then if( _ASFormData-&horizontal == t then _ASHorzSelTol() _ASMoveHorzComp( cmpgrp) else _ASVertSelTol() _ASMoveVertComp( cmpgrp) ) ) if( _ASFormData-&window == t && fini == nil then _ASWindSel() if( _ASFormData-&horizontal == t then _ASMoveHorzComp( cmpgrp) else _ASMoveVertComp( cmpgrp) ) ) cmpgrp = nil );end-while axlUIPopupSet( nil) );endwhen );end-prog );endprocedure ;-----------------------define master component location-------------------(defun _ASsetsymmaster ( ) (prog () _ASPopUpA() setq( efound nil)while( (efound == nil) && (fini == nil) axlMsgPut(&Select Key Component.&) good = nil mpinl = nil pnloc = nil axlSetFindFilter( ?enabled (list &symbols& ) ?onButtons (list &symbols&)) axlOpenFindFilter() if( fini == nil && axlSingleSelectPoint( ) thenelem = axlGetSelSet() axlMsgPut( &Key Component %L Selected.& car(elem)-&refdes) else if( fini == nil then axlMsgPut( &Nothing Found, Select Again.&)) );end-if if( fini == nil then axlHighlightObject( elem) if(_ASFormData-&top == t && (car elem)-&isMirrored == nil then good = t );endif if(_ASFormData-&bottom == t && (car elem)-&isMirrored == t then good = t );endifif(_ASFormData-&both == t then good = t) if(good ==---------stor current data setq(locat (car elem)-&xy) setq(cmpid (car elem)-&refdes) setq(cmpname (car elem)-&name) setq(cmptype (car elem)-&type) setq(cmprot (car elem)-&rotation) setq(cmpmir (car elem)-&isMirrored) efound = t if( _ASFormData-&pin == t then r=1 setq( mpinl car(elem)-&pins) while( nthelem( r mpinl) != nil if( nthelem( r mpinl)-&number == &1& then setq( pnloc nthelem( r mpinl)-&xy) ) ++r ) if( pnloc == nil then efound == nil axlMsgPut(&Component Selected Has No Pin 1.&) axlMsgPut(&Reset Parameters And Try Again.&) ) )else axlDehighlightObject( elem) axlMsgPut( &Selected Component is not on Selected Layer.&) axlSubSelectAll() );endif );endif );end-while axlCancelEnterFun() );end-prog );end--------------------select components by group----------------------(defun (prog () if( efound == t && cmpgrp == nil then grsel = nil _ASPopUpB() axlSetFindFilter( ?enabled (list &symbols& ) ?onButtons (list &symbols&)) axlOpenFindFilter() while( (grsel == nil && efound == t) axlMsgPut(&Select Component to be Aligned.&) good = nil _ASselectGrp ()if( grsel == nil then if( axlSingleSelectPoint( ) then setq( gelem axlGetSelSet()) axlMsgPut( &Component %L Group Selected.& car(gelem)-&refdes) else if( grsel == nil then axlMsgPut( &Nothing Found, Select Again.&)) );end-if );end-if if(_ASFormData-&top == t && (car gelem)-&isMirrored == nil then good = t );endif if(_ASFormData-&bottom == t && (car gelem)-&isMirrored == t then good = t );endif if(_ASFormData-&both == t then good = t) if( grsel == nil then if(good == t then if( (car gelem)-&type == &PACKAGE& then cmpgrp=cons( nthelem( 1 gelem) cmpgrp) axlHighlightObject( cons( car(elem) cmpgrp)) else axlMsgPut( &Component Not A PACKAGE Type&) axlDehighlightObject( gelem) );end-ifelse axlMsgPut( &Component Is Not On Appropriate Layer&) axlDehighlightObject( gelem) );endif );endif );end-while return( cmpgrp) );end-if axlCancelEnterFun() );end-prog );end--------------------select by vertical orientation-----------------(defun _ASVertSelTol () (prog () if( efound == t then i=1 good = nil if( _ASFormData-&pin == t then mlocat = pnloc else mlocat = locat ) setq(allsym axlDBGetDesign()-&symbols) setq(allcmp axlDBGetDesign()-&components) while( nthelem( i allsym) != nil if( nthelem( i allsym)-&type == &PACKAGE& && nthelem( i allsym)-&refdes != car(elem)-&refdes then if( _ASFormData-&pin == t then r=1 setq( tpinl nthelem( i allsym)-&pins) while( nthelem( r tpinl) != nil if( nthelem( r tpinl)-&number == &1& then setq( tlocat nthelem( r tpinl)-&xy) ) ++r ) else setq( tlocat (nthelem(i allsym)-&xy)) ) if( (car tlocat) &= ( car mlocat)+_ASFormData-&tol && (car tlocat) &= ( car mlocat)-_ASFormData-&tol then if(_ASFormData-&top == t && (car gelem)-&isMirrored == nil then good = t );endif if(_ASFormData-&bottom == t && (car gelem)-&isMirrored == t then good = t );endif if(_ASFormData-&both == t then good = t) setq( srefdes (nthelem(i allsym)-&refdes)) h=1 while( nthelem( h allcmp) != nil if( (nthelem( h allcmp)-&name) == srefdes && good == t then if( _ASFormData-&class == &Any& || nthelem( h allcmp)-&class == _ASFormData-&class then cmpgrp=cons(nthelem( i allsym) cmpgrp) axlHighlightObject( cons( car(elem) cmpgrp)) axlMsgPut( &Component %L Selected.& srefdes) );end-if );endif ++h );end-while );end-if good = nil );end-if ++i );endwhile efound = nil fini = nil );end-if return( cmpgrp) );end-prog );end--------------------select by horizontal orientation-----------------(defun _ASHorzSelTol () (prog () i=1 good = nil if( _ASFormData-&pin == t then mlocat = pnloc else mlocat = locat ) setq(allsym axlDBGetDesign()-&symbols) setq(allcmp axlDBGetDesign()-&components) while( nthelem( i allsym) != nil if( nthelem( i allsym)-&type == &PACKAGE& then if( _ASFormData-&pin == t then r=1 setq( tpinl nthelem( i allsym)-&pins) while( nthelem( r tpinl) != nil if( nthelem( r tpinl)-&number == &1& then setq( tlocat nthelem( r tpinl)-&xy) ) ++r ) else setq( tlocat (nthelem(i allsym)-&xy)) ) if((cadr tlocat) &= ( cadr locat)+_ASFormData-&tol && (cadr tlocat) &= ( cadr locat)-_ASFormData-&tol then if(_ASFormData-&top == t && (car gelem)-&isMirrored == nil then good = t );endif if(_ASFormData-&bottom == t && (car gelem)-&isMirrored == t then good = t );endif if(_ASFormData-&both == t then good = t) setq( srefdes (nthelem(i allsym)-&refdes)) h=1 while( nthelem( h allcmp) != nil if( ( nthelem( h allcmp)-&name) == srefdes && good == t then if( _ASFormData-&class == &Any& || nthelem( h allcmp)-&class == _ASFormData-&class then cmpgrp=cons(nthelem( i allsym) cmpgrp) axlHighlightObject( cons( car(elem) cmpgrp)) axlMsgPut( &Component %L Selected& srefdes) );end-if );end-if ++h );end-while );end-if );end-if ++i );end-while efound = nil fini = nil return( cmpgrp) );end-prog );end--------------------select by window --------------------------------(defun _ASWindSel () (prog () if( efound == t then i=1 good = nil axlSetFindFilter( ?enabled (list &symbols& ) ?onButtons (list &symbols&)) axlOpenFindFilter() axlSingleSelectBox() allsym = axlGetSelSet() if( allsym == nil then axlMsgPut( &No Elements Found.&)) setq(allcmp axlDBGetDesign()-&components) while( nthelem( i allsym) != nil if( nthelem( i allsym)-&type == &PACKAGE& then if(_ASFormData-&top == t && (car gelem)-&isMirrored == nil then good = t );endif if(_ASFormData-&bo

我要回帖

更多关于 pcb元器件布局 的文章

 

随机推荐