Allegro设计流程(心得体会)

更新时间:2023-11-23 07:40:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Allegro绘制过程(PSD14.0) --作者:秦绪彬 2004-02-20

(一) 器件库的制作

? ?

由已有PCB文件生成库 新建元件库 1. 2.

使用Pcb Editor为通孔焊盘制作*.fsm热焊盘文件;使用Pad designer制作*.pad焊盘文件 使用Pcb Editor制作*.psm元件封装(推荐使用Wizard向导制作)

File?Export?Libraries… 所有类型库文件将保存到PCB文件所在目录中

(二) 新建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)

?

File->Import…? logic… 在Cadence 标签页内进行设置:Import logic type选Design entry CIS;Place changed component 选Always;Import directory 指定allegro netlist网表所在位置。 设置完毕后,点击 Import Cadence 按钮即可完成网表的导入。 注:Other 标签页用于导入非Cadence类型的网表。 ?

也可由Capture CIS在执行Create Netlist时,直接新建或更新brd文件

(此时设计第二步可省略)。Capture CIS执行Create Netlist时,如下:

(七) 调入器件(Placement)

手工调入(Manually)---通过器件标号有选择的调入器件

Place?Manually…(单击选项Components by redes,在其下列出的器件为还未放到板上的器件,在待放器件前打勾后将鼠标移至工作区,器件会附着在鼠标上,点击鼠标左键即可完成放置动作)

自动调入(Quickplace)---可一次性调入所有器件,也可有选择的调入器件

Place?Quickplace(在Quickplace设置菜单中,Edge表示将器件摆放在板框外面的位置<上、下、左、右>;Slide设置器件放置在顶层还是底层)

注:在调入器件前,所有元件封装都已制作并放于Psmpath所指定工作目录中.

(八) 布线(Route)

1. 内层分割(以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

项决定的。

2. 在正片上铺铜(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. (略)

(九) 后检查

1. 运行DRC检查 Tools?Update DRC

2. 生成未放器件报告(此步骤验证元件是否已完全放入板中) Tools?Reports…?Unplaced Components

3. 生成未连管脚报告(此步骤验证所有连接关系的布线是否完成) Tools?Reports…?Unconnected Pins 4. 生成DRC检测报告

Tools?Reports…?Design Rules Check

(十) 生产文件输出

1. 生成Gerber文件

① Manufactrue?ArtWork?Film Control

A. 在Available Films中通过鼠标右键添加或删除文件夹和其下的Subclass最终形成要输出的底片.输出时每个文件夹为一张底片,每张底片中包含要输出的子类

B. 用鼠标单击每一个文件夹(底片),在右侧为其设置Plot mode(正负片)和Undefined

Line Width(丝印字符线宽等)(一般设为7mil) C. 其他保留默认值,不作修改

② Manufactrue?ArtWork?General Parameters

A. 在Device Type中选Gerber RS274X 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)

--作者:秦绪彬 2007-02-06 ====================================================================== 创建焊盘——在设计中,每个器件封装引脚是由与之相关的焊盘构成的,焊盘描述了器件引脚如何与设

计中所设计的每个物理层发生联系,每个焊盘包含以下信息: ? ?

焊盘尺寸大小和焊盘形状 钻孔尺寸和显示符号

焊盘还描述了引脚在表层(顶层和底层)的SOLDERMASK、PASTEMASK和FILMMASK等相关信息。同时,焊盘还包含有数控钻孔数据,Allegro用此数据产生钻孔符号和钻带文件。 Allegro在创建器件封装前必须先建立焊盘,建立的焊盘放在焊盘库里,在做器件封装时从焊盘库里调用。Allegro创建的焊盘文件名后缀为.pad。Allegro用Pad Designer创建并编辑焊盘。

(一)通孔焊盘或过孔在PCB中的叠层结构(top、内层信号层、内层电源层、bottom) 为了描述上的方便,约定如下:

1. 2. 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在制作焊盘时设定)。②如果焊盘与内层不

把通孔焊盘简称为焊盘。

把通孔焊盘(或过孔)位于Top和Bottom层用于焊接的环形面(或方形等,依具体设计而定)称作焊环。

下文只提及焊盘,过孔的情况与焊盘相同

属于同一网络,则仅有焊盘的孔壁通过该层,没有焊环,即焊环的环宽为零。焊盘在该层会避让周围铜皮,挖出一个隔离同心圆。因此在设计焊盘为该层指定Anti Pad项各参数时,考虑隔离间距时应从钻孔即焊盘内径算起,而不应从Regular Pad外沿算起,因为此种情况下焊盘在该层根本就不存在Regular Pad(即焊环)。

Bottom层(正片):同Top层。

(1) 在Allegro 系统中,建立一个零件(Symbol)之前,必须将会使用到的零件脚(Pin) 的档案先建好,

才能建立此零件。

(2) Padstack 包括零件脚(Pin) 及贯穿孔(Via)两种应用的分类,其档案的副档案均为.pad。 (3) 每一个零件(Symbol)的档案共有2 个:

Drawing File – 仅用于建立或编修零件,其档案的副档案均为.dra。

Symbol File – 当使用者在放置零件于板内时,是使用到此档案,此档案是无法进行编修的,目前零件共有下列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);

138:表示的是定位孔(或焊盘)的外经为138mil; c:表示的是圆形(circle); 126:表示孔经是126mil; p:表示金属化(plated)孔; u:表示非金属化(unplated)孔。

注:在实际使用中,焊盘也可以做定位孔使用,但为管理上的方便,在此将焊盘与定位孔作了区别。 ※ 焊盘与过孔在制作上还是有不小区别的,后面的章节会讲,详见‘焊盘与过孔的区别’ 三、表面贴焊盘 1、长方形焊盘 命名格式为:sr15x60 说明:

s :表示表面贴(Surface mount)焊盘; 15:表示width 为15mil; 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);

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。其原因:通孔器

【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

?

规格说明 ① 名称定义

p 60 s 36 ② 钻孔规格

Plating Type Size Drill Symbol

③ 内部规格

Regular Pad Padstack 的外形大小: 1. 2. Thermal Relief Top 及Bottom 层面的Pad 为60 mil 的正方形(通常作为零件的第1脚,以方便辨识零件的脚位)。 内层的Pad 为60 mil 的圆形(因为看不到在内层的Pad,所以不需要辨识脚位的功能,改用圆形会有较多的走线空间)。 Padstack 的防散热Pad 为TR52X66X15-45: TR 代表Thermal Relief; Plated (钻孔的孔壁必须上锡) 36 mil (钻孔的尺寸) 50 mil 的六角形,内有字母A 的图形 (由使用者为每一种钻孔尺寸定义一个相对应的图形,将来在钻孔图的底片可以看到此图形)。 代表它是一个有钻孔的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 Soldermask Pastemask

?

建立方法

【Parameters Tab】页设置内容:

① Type 点选Through,表示Padstack 有钻孔。

Padstack 的隔离Pad,其尺寸为66 mil 的圆形 (等于钻孔尺寸36 mil 加上30 mil)。 Padstack 的防焊Pad,其尺寸为66 mil 的正方形 (等于Regular Pad 60 mil 加上6 mil)。 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)

下图为输入各计算值后的Parameters Tab页:

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 部份:

【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 按钮,在弹出式选单选择

2. Choose the Tpoint and a pin (P2) on the net to create the second

branch.

? Selecting Tpoint and Second Pin(P2)

?

详细情况参见Allegro在线帮助“Net Schedule”章节 方法:运行命令Logic-> Net Schedule,按F1启动在线帮助文档。

(二十八)Allegro中尺寸测量的方法

操作方法:

② 在控制面板中Find页,先清除所有项,再选中需要测量对象所属的类,如Pins、Cline Segs、

Other Segs、Text、Shapes、Vias、Figures

③ 用鼠标单击第一个测量对象,Allegro显示Measure对话框并识别对象和位置

④ 用鼠标单击第二个测量对象,Allegro更新Measure对话框,识别第二个对象和其位置,并 显示所选两点的距离及Air Gap值(下图中白线长度)。

其中,Manhattan Dist 为X轴(Dx)的直线距离加上Y轴(Dy)的直线距离;Air Gap为 两个测量对象边缘之间的距离。

① Display->Measure (或shift+F5)

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 举例:

?

测量两个焊盘(Pin)之间的中心距 ① Display->Measure (或shift+F5)

② 在控制面板中Find页,先清除全部的勾选,再勾选中Pins项 ③ 用鼠标分别点击需要测量的两个焊盘,allegro会弹出测量结果菜单 ? ?

测量两个焊盘(Pin)之间的边沿距离

操作方法同上一步,测量结果菜单中Air Gap项即为两焊盘的边沿距离 测量Clines之间的距离

① Display->Measure (或shift+F5)

② 在控制面板中Find页,先清除全部的勾选,再勾选中Cline Segs项 ③ 用鼠标分别点击两条Cline,allegro会弹出测量结果相关信息 ?

测量焊盘(Pin)于过孔(Via)之间的距离

① Display->Measure (或shift+F5)

② 在控制面板中Find页,先清除全部的勾选,再勾选中Pins和Vias项 ③ 用鼠标分别点击Pin和Via,allegro会弹出测量结果相关信息 ?

测量一根丝印层线段的长度 ① Display->Measure (或shift+F5)

② 在控制面板中Find页,先清除全部的勾选,再勾选中Other Segs项 ③ 用鼠标分别点击线段的两个端点,allegro会弹出测量结果菜单

(二十九)为内层电源层绑定网络方法(实际上就是阴板铺铜)

?

内层为单一网络

① 首先保证已经绘制好了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 区域外形框为边界进行阴板铺铜。

?

内层为多个网络共用,需要内层分割

① 首先保证已经绘制好了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) 在工作区内按F12或执行Edit->Properties,进入属性编辑状态

2) 在控制面板Find标签页,清除全部的勾选,仅选中Comps项(选Symbols项也可)

使Component可以被作用

3) 在工作区鼠标左键点击需要添加Fixed属性的器件,出现‘Show Properties’当前属

性列表和‘Edit Property’属性编辑对话框。如下图所示: ? ?

‘Show Properties’属性列表:可获知该元件当前已被赋予的所有属性 ‘Edit Property’修改属性对话框:进行元件属性的添加、删除

<说明>通过上图可知,RN11当前具有一项属性:SIGNAL_MODEL。即被赋予了信号模型 RESISTOR_DIP_4_SMD_RPX4_0402_47_47

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)上面,用以控制这

些对象。元件和网络常用的属性如下:(还有很多其他属性)

?

常用元件属性

属性名称 说明 HARD_LOCATION 执行自动重新编排零件序号的功能(Auto Rename)时,Allegro 不可以改变该零件的序号(RefDes)。 FIXED 将该零件固定住,例如:使用者将无法使用 “Edit/Move” 命令去搬移这个零件。 ?

常用网络属性

属性名称 NO_RAT FIXED MIN_LINE_WIDTH 说明 将该Net 的鼠线(Ratsnest)关掉。 将该Net 固定住,例如:使用者将无法使用“Route/Slide”命令去搬移这个零件。 设定最小走线的宽度。例如: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项使网络可以被作用。 3. 用鼠标左键点选要设置属性的元件或网络,系统会弹出‘Show Properties’当前

属性列表和‘Edit Property’属性编辑对话框。

4. 在‘Edit Property’属性编辑对话框右边列出了元件或网络当前所具有的属性(为

空表示还没有被赋予任何属性)。可以在‘Edit Property’属性编辑对话框中添加、删除或修改元件或网络的属性;

在‘Show Properties’属性列表中可实时查看元件或网络当前具有的属性。 (在‘Edit Property’对话框中点击Apply按钮后,系统会实时更新‘Show Properties’属性列表中的内容)

?

利用上述方法为网络指定属性后,在约束管理器的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…指 定走线线宽规则组。

(三十六)如何为总线(或一组网络)添加走线线宽、走线间距(包括组内、组外)约束

? 走线线宽约束设定 ① 列出总线走线线宽需求 如: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检查模式

方法:Setup->Constraints…,点击Physical (lines/vias) rule set 的Set DRC modes ? 走线间距约束设定 ① 列出间距设计需求

如:‘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的两种间距规则)

④ 为每一对具有相同或不同间距约束名属性的网络之间指定间距规则(相同的表示组内

若要能够进行线宽的检查,必须打开相关的DRC 开关。

间距,不同表示组外间距)

方法:Setup->Constraints…,点击Spacing rule set的Assignment table… ⑤ 设定间距DRC检查模式

方法:Setup->Constraints…,点击Spacing rule set 的Set DRC modes…

?

细节参见《Allegro Book I》第265页“第11章 设定设计规范”

若要能够进行间距的检查,必须打开相关的DRC 开关。

(三十七)如何实现元件对齐功能

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(\并保存. 也可以

在ENV中加入快捷键,调用更加方便:打开ENV,在里面添加一行alias F3 align_sym保存,再打开Allegro即可使用F3调用.

注意:如果使用系统提供的example.ilinit作蓝本,需要将该文件中所有代码删除,否则启动Allegro时Console window会报错

5. 启动Allegro,在Console window中敲入align_sym回车即可使用对齐功能了.

?

以后添加其它SKILL也可以参照上述方法

6. 在Allegro的Console window中敲入align_sym回车后,弹出如下菜单:

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。

附表2 Allegro设计流程:

附表3 Allegro基本概念

Clines与Lines Clines与Cline Segs Symbols Comps Functions Nets 控制 面板 Find Tab Pins Vias Shapes Voids Other Segs Figures DRC Errors Text Ratsnests Rat Ts 右键Pop Menu Oop Next Cancel Clines为具有导电特性的连线;Lines为非导电,如丝印层线 Clines指整条连线;Cline Segs指连线中没有转折的一段线段 指所有板中的 Allegro 零件,不管其是否带有零件序号(RefDes) 带有零件序号(RefDes)的 Allegro 零件 指 Component 中的 Gate,例如:排阻中的一个电阻。 指1条信号线 指零件脚 走线过孔 指空心或实心的任意形状的Shape 指Shape中的挖空部分 指Line中没有转折的一段线段 指图形符号,例如:钻孔符号 指出违反设计规范的位置及其相关信息 指文字 指鼠线 ( 即讯号线未完成的联接关系 ) 指T点,为呈T型的Ratsnest 取消上一步动作(Undo) 开始下一条(布线)操作 退出此类操作

附表4 实现元件对齐功能的skill源码(align_sym.il)

;+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ ;

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

Author: Edward B. Acheson

Sr Division AE SPG Division Benchmark Center Cadence Design Systems 270 Billerica Road Chelmsford MA 01824 (508) 262-6465

File Name: align_sym.il Revision 0: December 20,1993

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 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 \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).

Other files required: align_sym.form

;========================================================= ;==================== MAIN ROUTINE ======================= ;========================================================= axlCmdRegister(

\'align_sym

)

procedure( align_sym( ) (prog ()

when( axlOKToProceed() _ASInitVar()

_ASCreateFormFile() _ASInitParmForm() while( fini == nil

_ASsetsymmaster()

if( _ASFormData->group == t && fini == nil then )

if( _ASFormData->tolerance == t && fini == nil then )

if( _ASFormData->window == t && fini == nil then )

cmpgrp = nil

_ASWindSel()

if( _ASFormData->horizontal == t then else )

_ASMoveVertComp( cmpgrp) _ASMoveHorzComp( cmpgrp)

if( _ASFormData->horizontal == t then else )

_ASVertSelTol()

_ASMoveVertComp( cmpgrp) _ASHorzSelTol()

_ASMoveHorzComp( cmpgrp)

_ASselectGrp()

if( _ASFormData->horizontal == t then else )

_ASMoveVertComp( cmpgrp) _ASMoveHorzComp( cmpgrp)

);end-while axlUIPopupSet( nil) );endwhen );end-prog );endprocedure

;-----------------------define master component location-------------------

本文来源:https://www.bwwdw.com/article/hayt.html

Top