书城计算机网络EDA技术
45667600000020

第20章 PCB自动布线技术(2)

对元件的调整主要是对元件进行选中、移动、旋转和排列等操作,而对元件标注字符的调整是对标注字符进行移动、旋转等操作,具体操作详见6.5节的内容。下面,重点讲解对元件的剪切、复制、粘贴和删除操作。

1.元件的剪切、复制、粘贴

剪切元件时,先选中元件,然后执行菜单命令EditCut,或单击主工具栏的按钮,光标变成十字形,再用十字形光标单击选中的元件,则将选中的元件直接移入到剪贴板中,同时电路图上所选元件也被删除。

复制元件时,先选中元件,然后执行菜单命令EditCopy,光标变成十字形,再用十字形光标单击选中的元件,则将选中的元件复制一份,放入剪贴板中。

粘贴元件时,执行菜单命令EditPaste,或单击主工具栏的按钮,则将剪贴板中的内容作为副本复制到电路板图中。

2.元件的特殊粘贴

特殊粘贴操作可以将剪贴板中的内容按照设定好的方式放置到电路板中,可以利用这种功能来自动地放置具有重复性的元件。

特殊粘贴的操作步骤如下:

利用剪切或复制功能将需粘贴的对象放置到剪贴板中,执行菜单命令EditPasteSpecial,启动特殊粘贴,屏幕将弹出如图8-14所示的对话框。

特殊粘贴所列粘贴方式如下。

Pasteoncurrent:将对象粘贴在当前的工作层。

Keepnetname:将保持对象所属的网络名称。

Duplicatedesignator:粘贴的对象与原来的对象具有相同的标号。

Addtocomponentclass:粘贴的对象与原来的对象属于相同的元件组。

当设置了粘贴方式后,就可以单击Paste按钮,执行一般的粘贴操作,直接将对象粘贴到目标位置。如果单击PasteArray按钮,执行阵列式粘贴操作,屏幕将弹出如图8-15所示的阵列式粘贴设置对话框。阵列式粘贴的功能与PlacementTools工具栏的按钮的功能相同,对话框中的各个选项的功能如下。

PlacementVaraibles选项区域:其中ItemCount文本框用于设置重复粘贴的次数:TextIncrement文本框用于设置所要粘贴的元件标号的增量值。

ArrayType选项区域:用来设置阵列粘贴类型。Circular选项为圆形放置:Linear选项为线性放置。

CircularArray选项区域:在选取了Circular项时有效,用于设置圆形放置时各对象间隔的角度。其中选取RotateItemtoMatch复选框时,表示要适当旋转对象:Spacing(degrees)文本框用来设置对象间隔的角度。

LinearArray选项区域:在选取了Linear项时有效,用于设置线性放置对象时各个对象的间隔。其中X-Spacing文本框用来设置X方向的间隔:Y-Spacing文本框用来设置Y方向的间隔。

3.对象的删除

1)使用Clear命令删除

先选中要删除的对象,如导线、元件、焊盘、字符串和过孔等,执行菜单命令EditClear,被选中的对象立即被删除。

2)使用Delete命令删除

与Clear命令不同的地方是在执行Delete命令之前不需要选中对象。首先执行菜单命令EditDelete,光标变成十字形,将光标移到要删除的对象上,单击鼠标左键即可。

4.导线删除的几种方法

1)导线段的删除

执行菜单命令EditDelete,光标变成十字形,移到要删除的导线上,如果导线在当前层上,光标上会出现小圆圈:如果导线不在当前层,将光标移到导线的中间(这时光标无变化,下同),然后单击鼠标左键即可。

2)两焊盘之间的导线的删除

执行菜单命令EditSelectPhysicalConnection,光标变成十字形,移到要删除的导线上,单击鼠标左键,选取两焊盘之间的导线,再单击鼠标右键,光标恢复原形。此时,按下Ctrl+Delete键,两焊盘之间的导线被删除。

3)删除相连接的导线

执行菜单命令EditSelectConnectedCopper,光标变成十字形,移到要删除的导线上,单击鼠标左键,这时与该导线有连接关系的所有导线均被选取,再单击鼠标右键,光标恢复原形,然后按下Ctrl+Delete键,完成导线删除。

4)删除同一网络上的所有导线

执行菜单命令EditSelectNet,光标变成十字形,移到要删除网络的任意一条导线段上,单击鼠标左键,则该网络上的导线均被选取,再单击鼠标右键,光标恢复原形,然后按下Ctrl+Delete键,即可删除该网络上所有的导线。

本例中,经人工调整布局后的电路板如图8-16所示。

8.6设计规则设置与自动布线

完成元件的布局工作后,就可以进入布线操作了。在电路原理图复杂的情况下,如果使用人工布线,不仅效率很低,难度也很大,这时可以充分利用Protel99SE强大的自动布线功能,快速有效地完成布线工作。

自动布线是指系统根据设计者设定的布线规则,依照网络表中各个元件之间的连线关系,按照一定的算法自动地在各个元件之间进行布线。Protel99SE的自动布线功能能够自动地分析当前的PCB文件,并选择最佳布线方式,但对于自动布线不合理的地方,仍需进行人工调整。

8.6.1设计规则设置

在自动布线之前,设置布线的规则也是十分必要的。设计规则制定后,程序自动监视PCB设计,检查PCB中的图件是否符合设计规则,若违反了设计规则,将以高亮显示错误内容。

在PCB编辑器中,执行菜单命令DesignRules,将弹出如图8-17所示的DesignRules(设计规则)对话框。在对话框中列出了6大类设计规则,分别为设定与布线、制造、高速线路、元件自动布置、信号分析及其他方面有关的设计规则,与自动布线有关的规则主要在Routing选项卡中。在一般情况下,使用系统提供的自动布线规则的默认值,就可以获得比较满意的自动布线效果。

Classes栏中列出了有关布线的10个设计规则,右上方区域是在RuleClasses栏中所选取的设计规则的说明,下方是在RuleClasses栏中所选取的设计规则的具体内容。下面介绍常用的布线设计规则。

1.设置安全间距(ClearanceConstraint)

安全间距用于设置同一个工作层上的导线、焊盘、过孔等电气对象之间的最小间距。在图8-17中选中ClearanceConstraint,进入安全间距设置。在设计规则对话框右下角有3个按钮。

1)Add按钮

该按钮用于添加新的规则。单击后出现如图8-18所示的ClearanceConstraint设置对话框,设置内容包括两部分。

RuleScope(规则的适用范围):其中共有两个FilterKind下拉列表框,分别用于选择需设置安全间距的A、B两个图件,每个FilterKind下拉列表框都可用于选择需要设置的焊盘(Pad)、连线(From-To)、连线类型(From-ToClass)、网络(Net)、网络类型(NetClass)、元件(Component)、元件类型(ComponentClass)、各种图件(ObjectKind)、信号层(Layer)及全板(WholeBoard)等项目。一般情况下,指定该规则适用于整个电路板(WholeBoard)。

RuleAttributes(规则属性):用来设置最小间距的数值(如10mil)及其所适用的网络,包括DifferentNetsOnly(仅不同网络)、SameNetOnly(仅同一网络)和AnyNet(任何网络)。

本例子采用的安全间距为10mil,该规则适用整个电路板。

设置完毕,单击OK按钮,完成安全间距设计规则的设定,设定好的内容将出现在设计规则对话框下方的具体内容一栏中。

2)Delete按钮

如图8-17所示的设计规则对话框下方的设计内容一栏中,用鼠标左键单击要删除的规则,再单击Delete按钮,删除选中的规则。

3)Properties按钮

如图8-17所示的设计规则对话框下方的设计内容一栏中,用鼠标左键单击一项规则,再按该按钮,出现如图8-18所示的对话框,在对话框中修改参数后,再单击OK按钮,修改后的内容会出现在具体内容栏中。

2.设置布线的拐角模式(RoutingCorners)

该项规则主要用于设置布线时拐角的形状及拐角走线垂直距离的最小和最大值。在如图8-19所示的RoutingCornersRule对话框中,在Style下拉框有3种拐角模式可选,即45Degrees(45°角)、90Degrees(90°角)和Round(圆角)。系统中已经使用一条默认的规则,名称为RoutingCorners,适用于整个电路板,采用45°拐角,拐角走线的垂直距离为100mil。本例子采用该默认规则。

3.设置布线工作层(RoutingLayers)

该项规则用于规定自动布线时所使用的工作层,以及布线时各层上印制导线的走向。在如图8-20所示的布线工作层对话框中,右侧的列表框列出了32个信号层。在前面已经设置了顶层和底层两个工作层为布线层,所以在图中只有顶层和底层有效,其他层为灰色无效。

各个层右边的下拉框中列出了布线方向,包括Horizontal(水平方向)、Vertical(垂直方向)、Any(任意方向)、NotUsed(不使用)等共10种。

布线时应根据实际要求设置工作层。如采用单面布线时,设置BottomLayer为Any(任意方向),设置TopLayer为NotUsed(不使用)。采用双面布线时,设置TopLayer为Horizontal(水平方向),BottomLayer层为Vertical(垂直方向)。

本例子中采用双层板布线,顶层为水平方向布线,底层为垂直方向布线。同时要求地线GND在底层布线,设置TopLayer为NotUsed(不使用),BottomLayer层为Any(任意方向),如图8-21所示。布线工作层设置完成后的对话框如图8-22所示。

4.设置布线的拓扑结构(RoutingTopology)

该项规则用来设置布线的拓扑结构。拓扑结构是指以焊盘为点,以连接各焊盘的导线为线,则点和线构成的几何图形称为拓扑结构。在PCB中,元件焊盘之间的飞线连接方式称为布线的拓扑结构。在如图8-23所示的布线拓扑结构设置对话框中,在RoutingAttributes的下拉框中有7种拓扑结构可供选择,如Shortest(最短连线)、Horizontal(水平连线)、Vertical(垂直连线)等。系统默认的拓扑结构为Shortest。本例子采用Shortest(最短连线)拓扑结构。

5.设置过孔类型(RoutingViaStyle)

该项规则用于设置过孔外径(Diameter)和内径(HoleSize)的尺寸。在如图8-24所示的过孔类型设置对话框中,在RuleAttributes选项区域设置过孔的外径和内径的Min(最小值)、Max(最大值)和Preferred(首选值)。首选值用于自动布线和手工布线过程。

本例子采用默认值。

6.设置布线宽度(WidthConstraint)

该项用于设置布线时的导线宽度。在如图8-25所示的布线宽度设置对话框的RuleAttributes选项区域中,设置布线宽度的最小值(MinimumWidth)、最大值(MaximumWidth)和首选值(PreferredWidth)。首选值用于自动布线和手工布线过程。在PCB设计中可以针对不同的网络设定不同的线宽规则,对于电源和地线设置的线宽一般较粗。

本例子中电源+12和-12均设置为30mil,地线GND设置为40mil,其他信号线设置为20mil。地线GND设置如图8-26所示,布线宽度设置完成后对话框如图8-27所示。

8.6.2自动布线前的预布线

1.预布线

自动布线是按照一定规则由系统自动进行,所布导线的位置、走向不由人的意愿决定。

对有些元件或网络的走线,设计者如果要按照自己的要求去布线,可在自动布线之前布线,我们称之为预布线,然后再运行自动布线完成余下的布线工作。

预布线可以通过执行AutoRoute下的菜单命令自动实现,也可以采用人工布线。

1)对选定网络进行布线(Net)

执行菜单命令AutoRouteNet,光标变成十字形。移动光标到某网络的其中一条飞线上,单击鼠标左键,对这条飞线所在的网络进行布线。

2)对选定飞线进行布线(Connection)

执行菜单命令AutoRouteConnection,光标变成十字形,移动光标到要布线的飞线上,单击鼠标左键,仅对该飞线进行布线,而不是对该飞线所在的网络布线。

3)对选定元件进行布线(Component)

执行菜单命令AutoRouteComponent,光标变成十字形,在要布线的元件上单击鼠标左键,则与该元件焊盘相连的所有飞线被自动布线。

4)对选定区域进行布线(Area)

执行菜单命令AutoRouteArea,光标变成十字形,在电路板上选定一个矩形区域后,系统自动对这个区域进行布线。

2.预布线的锁定

为防止这些预布线在自动布线时被重新布线,可在自动布线之前,要将预布线锁定。

如果要锁定某条预布线,可以双击该连线,弹出导线(Track)属性设置对话框,选中Locked复选框,锁定该段导线,如图8-28所示。

由于一条导线由若干段构成,必须保证每一段导线都被锁定才能保护预布线,所以使用这种方法较烦琐。在下面介绍的自动布线中,可以在自动布线器选项中设置锁定所有预布线功能。

8.6.3运行自动布线

1.自动布线器设置