本章要点:
PCB自动布线技术的步骤
根据电路原理图生成网络表
定义电路板
加载网络表
元件的布局
设计规则设置与自动布线
人工调整布线
PCB报表的生成
PCB输出
PCB自动布线技术是通过计算机软件自动将电路原理图中元件间的逻辑连接转换为PCB铜箔连接的技术。PCB的自动化设计实际上是一种半自动化的设计过程,还需要人的参与才能设计出合格的PCB。
电路板自动布线需要将电路原理图中的元件封装形式转换为PCB软件认识的格式,并且将原理图中各元件的网络连接转换给PCB设计软件,这个中间交换数据的过程通常被称为网络表。根据电路原理图生成网络表,再进行电路板的自动布局和自动布线,Protel99SE提供的自动布线技术具有较高的布通率,这是Protel99SE的最大特色。
8.1PCB自动布线技术的步骤
PCB自动布线技术一般遵循以下步骤。
1)绘制电路原理图
绘制电路原理图目的是为了设计印制电路板,绘制电路原理图时,注意每个元件必须有封装,而且封装的焊盘号与电路原理图中元件引脚之间必须有对应关系。
2)生成网络表
对电路原理图进行电气规则检查(ERC)后,生成网络表。
3)建立PCB文件,定义电路板
可以用直接定义电路板的方法,也可使用向导定义电路板。同时进行PCB设计环境的设置,确定工作层等。
4)加载PCB元件库
常用PCB元件库有PCBFootprint.lib、GeneralIC.lib、InternationalRectifiers.lib、Miscellaneous.lib、Transistors.lib等。
5)加载网络表
加载网络表实际上是将元件封装放入电路板图之中,元件之间的连接关系以网络飞线的形式体现。在加载网络表过程中,注意形成的宏命令是否有错,若有错,查明原因,返回电路原理图并修改电路原理图。一般遇到的问题是无元件封装或元件引脚和封装焊盘不对应。
6)元件的布局
采用自动布局和人工调整布局相结合的方式,将元件合理地放置在电路板中,在考虑电气性能的前提下,尽量减少网络飞线之间的交叉,以提高布线的布通率。
7)设计规则设置
在自动布线前,根据实际需要设置好常用的布线参数,以提高布线的质量。
8)自动布线
对某些特殊的连线可以先进行手工预布线,然后再进行自动布线。
9)人工布线调整
利用3D立体图观察电路板,若对元件布置或布线不满意,可以去掉布线,恢复到预拉线状态,重新布置元件后再自动布线。对部分电路连线可以人工调整与布线。
10)PCB电气规则检查及标注文字调整
对电路板进行电气规则检查后,对丝网层上的标注文字进行调整,然后写上电路板制作的日期等文字。
11)PCB报表的生成
生成报表文件的功能可以产生有关设计内容的详细资料,主要包括电路板状态、管脚、元件、网络表、钻孔文件和插件文件等。
12)PCB输出
采用打印机或绘图仪输出电路板图。也可以将所完成的电路板图存盘,发E-mail给电路板制造商生产电路板。
8.2根据电路原理图生成网络表
我们通过如图8-1所示的波形发生电路原理图制作一个双层印刷电路板的过程为例,来介绍PCB自动布线的操作。波形发生电路元件表见表8-1。
新建一个设计数据库,命名为yjb.Ddb。并建立名称为yjb.Sch的电路原理图文件,并根据如图8-1所示的电路来绘制电路原理图。在电路原理图编辑器下,执行菜单命令DesignCreateNetlist,用来生成网络表文件,系统自动命名为yjb。该部分操作可参见3.4.2节内容。
同时在PCB编辑器中加载PCB元件库,常用PCB元件库有PCBFootprint.lib、GeneralIC.lib、InternationalRectifiers.lib、Miscellaneous.lib、Transistors.lib等。如果有自己绘制的封装,则还需要加载该封装所在的新的PCB元件库。
8.3定义电路板
在进行电路板的布局和布线之前,除了进行PCB设计环境的设置外,还必须确定电路板的工作层,并在相应的工作层确定电路板的物理边界和电气边界。
该电路板采用双层板,一般应确定如下工作层:顶层(TopLayer)、底层(BottomLayer)、机械层4(Mechanical4)、顶层丝印层(TopOverlay)、禁止布线层(KeepOutLayer)和多层(MultiLayer)。
该电路板的外形尺寸长为3100mil,宽为1640mil。根据6.2.3节所介绍的使用向导定义电路板的方法定义该电路板,并把生成的PCB文件改名为yjb.PCB,生成的电路板外形和工作层如图8-2所示。
8.4加载网络表
网络表是连接电路原理图和印制电路板图的桥梁。加载网络表实际上是将元件封装放入电路板图之中,元件之间的连接关系以网络飞线的形式体现,最终实现电路板中元件的自动放置、自动布局和自动布线。
8.4.1加载网络表的方法
在PCB编辑器中,执行菜单命令DesignLoadNets,将弹出如图8-3所示的Load/ForwardAnnotateNetlist对话框。
在NetlistFile文本框下有两个复选框:
DeleteComponentsnotinnetlist复选项,选中则系统将会在加载网络表之后,与当前电路板中存在的元件作比较,将网络表中没有的元件而在当前电路板中存在的元件删除:Updatefootprint复选项,选中则会自动用网络表内存在的元件封装替换当前电路板上的相同元件的封装。
这两个选项,适合于原理图修改后的网络表的重新装入。
在NetlistFile文本框中输入加载的网络表文件名。如果不知道网络表文件的位置,单击Browse按钮,将弹出如图8-4所示的选择网络表文件对话框。
在该对话框中,找到网络表所在的设计数据库文件路径和名称,在正确选取yjb.NET文件后,单击OK按钮,系统开始自动生成网络宏(NetlistMacros),并将其在装入网络表的对话框中列出,如图8-5所示,由图中可知,装入网络表后共发现4个错误,是由于电路原理图元件与PCB封装的不匹配所引起的。
8.4.2加载网络表出错的修改
一般在进行印制电路板设计之前,要确保电路原理图及相关的网络表必须正确,为此要先检查网络表上是否存在错误。确保装载的网络表完全正确,涉及的因素很多,最主要的是加载后的PCB元件库中是否包含了电路原理图中所有元件的封装、网络表是否正确,以及PCB封装与元件管脚之间是否匹配。
加载网络表后出现的错误称为网络宏错误,常见的宏错误信息如下。
Netnotfound:找不到对应的网络。
Componentnotfound:找不到对应的元件。
Newfootprintnotmatchingoldfootprint:新的元件封装与旧的元件封装不匹配。
FootprintnotfoundinLibrary:在PCB元件库中找不到对应元件的封装。
WarningAlternativefootprintxxxusedinsteadof:程序自动使用xxx封装替换,可能是不合适的元件封装(警告信息)。
发现错误后,找到错误原因,回到电路原理图中或其他相关的编辑器中修改错误,并重新生成网络表,然后再切换到PCB文件中重新进行加载网络表操作。
本例中,图8-5所示的错误是“Error:Nodenotfound”。电路原理图中的二极管D1和D2(1N4001),在电路原理图中管脚号定义为1、2,而在印制电路板中封装DIODE-0.4的焊盘编号定义为A、K,两者不匹配,故找不到接点而出错。用7.5节所介绍的方法在PCB元件库Miscellaneous.lib中,把封装DIODE-0.4的焊盘编号A、K改为1、2,再回到PCB文件中重新加载网络表,生成如图8-6所示的无错误的网络表宏信息。
最后,单击图8-6中底部的Execute按钮,完成网络表和元件的装入。效果如图8-7所示,装入的元件重叠在电路板的电气边界内,元件之间用网络飞线相连。
8.5元件的布局
把元件装入电路板之后,会发现所有的元件重叠在一起,这就需要在所定义的电路板内对元件进行合理的布局。在布局过程中,必须考虑导线的布通率、散热、抗电磁干扰、信号完整性等问题。布局的好坏会直接影响电路板的布线效果及相应电子设备的工作性能,所以合理的布局是PCB设计成功的第一步。一般元件的布局采用自动布局和人工调整相结合的方法。
8.5.1元件布局参数的设置
在进行元件的布局之前,先对一些与元件布局有关的参数做一下调整。
1.元件布局的栅格
执行菜单命令DesignOptions,在弹出的DocumentOptions对话框(见第5章图5-8)Options选项卡中分别对捕获栅格在X和Y方向的间距进行设置。捕获栅格间距的大小与电路板上元件排列的疏密程度有关,栅格间距越小,元件排列越密集,捕获栅格的尺寸也非越小越好,以够用为度。这里,我们采用默认值20mil。
2.字符串显示临界值
在PCB设计中,缩小显示电路时,字符串经常会变为一个矩形轮廓,这样不利于元件的识别,此时需要减小字符串显示临界值参数,以保证字符串以文本形式显示。
执行菜单命令ToolsPreferences,在弹出的Preferences对话框中单击Display选项卡(见图5-10),在Draftthresholds选项区域的String文本框中输入构成字符串像素的临界值。这里,我们设置String值为4pixels。
3.元件布局参数设置
在PCB编辑器下,执行菜单命令DesignRules,将弹出如图8-8所示的DesignRules(设计规则)对话框。单击Placement选项卡,可对元件布局设计规则进行设置,它只适合于ClusterPlacer(群集式布局)自动布局方式。
主要参数设置如下。
ComponentClearanceConstraint:设置元件之间的最小间距。
ComponentOrientationsRules:设置布置元件时的放置角度。
NettoIgnore:设置在利用ClusterPlacer(群集式布局)方式进行自动布局时,应该忽略哪些网络走线造成的影响,这样可以提高自动布局的速度与质量。
PermittedLayerRule:设置允许元件放置的电路板层。
RoomDefinition:设置定义房间的规则。
Protel99SE的自动布局效果较差,因为计算机的智能还不知道怎样排列元件才能满足要求,一般只能将元件散开排列,大部分需要人工调整元件布局,所以不需要详细设置布线参数,一般选择默认即可。
8.5.2元件自动布局
在进行自动布局前,必须在KeepOutLayer上先定义电路板的电气边界,且将当前坐标原点恢复为绝对原点,再加载网络表,否则屏幕会提示错误信息。
执行菜单命令ToolsAutoPlacementAutoPlacer,屏幕弹出如图8-9所示的自动布局对话框。对话框中显示了两种自动布局方式,每种方式所使用的计算和优化元件位置的方法不同。
(1)ClusterPlacer:群集式布局方式。
根据元件的连通性将元件分组,然后使其按照一定的几何位置布局。在8.5.1节介绍的自动布局规则就是为该方式设置的。这种布局方式适合于元件数量较少(小于100)的电路板设计。其设置对话框如图8-9所示,在下方有一个QuickComponentPlacement复选框,选中它布局速度较快,但不能得到最佳布局效果。
(2)StatisticalPlacer:统计式布局方式。
使用统计算法,遵循连线最短原则来布局元件,无需另外设置布局规则。这种布局方式最适合元件数目超过100的电路板设计。如选择此布局方式,将弹出如图8-10所示的对话框。
对话框中各选项的含义如下。
GroupComponents复选框:将当前网络中连接密切的元件合为一组,布局时作为一个整体来考虑。建议如果电路板上没有足够的面积,不要选取该项。
RotateComponents复选框:根据布局的需要将元件旋转。
PowerNets文本框:在该文本框输入的网络名将不被列入布局策略的考虑范围,这样可以缩短自动布局的时间,电源网络就属于此种网络。在此输入电源网络名称,若有多个电源,可用空格隔开,如:+12-12。
GroundNets文本框:其含义同PowerNets文本框。在此输入接地网络名称GND。
GridSize文本框:设置自动布局时的栅格间距。默认为20mil。
采用统计式布局方式,它不是直接在PCB文件上运行,而是打开一个如图8-11所示的临时布局窗口(生成一个Place1.Plc的文件)。当出现一个标有Auto-PlaceisFinished的对话框时,单击OK按钮,将出现如图8-12所示的DesignExplorer对话框,提示是否将自动布局的结果更新到PCB文件中。单击Yes按钮,更新后系统返回到PCB文件窗口。
对于本例,因为元件较少,故选择群集式元件布局方式。自动布局后的效果如图8-13所示。
8.5.3人工调整布局
如图8-13所示的自动布局后形成的PCB图中,元件在电路板上的布局并非十分合理,元件的标注字符显得杂乱不美观,所以我们要采用人工方法对布局进一步调整。人工调整布局包括对元件和元件标注字符的调整。