在当今的PCB(PrintedCircuitBoard:印制电路板)设计领域,经常会因为项目进度或者上市时间TOM(timetomarket)等因素的影响使得PCB的设计周期非常有限,但同时PCB的设计内容和复杂程度还是日益递增的。面对这样一个愈显突出的矛盾,一种行之有效的解决方法就是PCB的协同设计,也就是说,几个设计人员同时设计一块PCB单板,每个人负责其中的一部分,在设计进行到一定程度时,再将几个人的设计结果合并到一起。这种方法能有效的提高PCB单板的设计进度、缩短PCB单板的设计周期。本文就这种PCB的协同设计方法进行分类研究,以期对大家以后的工作有所裨益!因为我们公司使用的PCB设计软件是Cadence公司的PSD系列产品,所以对PCB协同设计方法的研究也只局限于在Cadence软件中的应用。在Cadence公司的Allegro软件中实现PCB协同设计的方法大体有三种,第一种是利用Script脚本文件的方法,第二种方法是利用Sub-drawing的功能,第三种是利用坐标文件的方法,下面分别对这三种方法的实施步骤、应用场合、优缺点等方面进行讨论:Script脚本文件:Script脚本文件是一个类似于批处理的文本文件,我们可以通过创建脚本文件来记录执行的一系列操作命令,也可以运行脚本文件来执行脚本文件中记录的一系列命令。当需要几个人协同设计一块PCB时,可在单板上划分不同的区域,每个人负责其中的一块儿。在开始设计时,每个人生成一个Script脚本文件,该文件自动的记录每个人所进行的所有操作。在设计后期,在最终要合成的单板上导入所有的Script脚本文件后就可将其他合作人员的设计结果合并到最终的单板上。当创建Script脚本文件时,选择Allegro工作界面中的File→Script命令,出现下图所示界面。在File栏后的文本编辑框中输入Script脚本文件的文件名,点击界面中的按钮后系统开始自动记录所进行的每一步操作。当要结束Script脚本文件时,在工作界面中选择File→script命令,出现下图所示界面。点击界面中的按钮后系统结束对操作步骤的记录。当要导入Script脚本文件中记录的命令时,在工作界面中选择File→script命令,出现下图所示界面。在File栏后的文本编辑框中输入前面创建的Script脚本文件的文件名,或者点击界面中按钮搜索脚本文件,缺省情况下,系统会将脚本文件存放在Brd文件的同级目录下。最后点击界面中按钮开始运行脚本文件中记录的所有命令。在应用脚本文件进行PCB的协同设计时需要注意以下几点:1、所有设计人员在开始创建Script脚本文件时,所有的Brd文件的状态都应该是完全一致的。也就是说,最好是几个人同时拷贝一个Brd文件开始设计,这样,脚本文件开始记录的叠层结构设置、格点设置、颜色设置、显示对象设置、操作对象等都是完全一致的,这样就保证了随后的导入操作是从同一起点开始的,否则很容易因为以上各点细微的设置差别导致大量的错误或者损失一部分已经完成的工作。2、在Script脚本文件记录操作命令的过程中,每执行一项操作,最好点击锁定在设计界面右边的显示控制窗口中Find标签栏中的按钮(如下图所示)清除所有选项,然后再选中命令的操作对象后进行设计。这样的操作也是确保在导入Script脚本文件时不会因为Brd文件的状态不一致产生错误或者损失一部分已经完成的工作。3、在Script脚本文件记录操作命令的过程中,不可进行任何存盘操作。如果进行了存盘操作,Script脚本文件中将不会记录任何操作命令,是一个空文件。4、应用Script脚本文件进行PCB协同设计时最好半个小时到一个小时就进行一次合并,不宜间隔时间过长,否则合并后可能会产生让人无法解释的结果。Script脚本文件完全记录了设计过程中的所有操作,在合并时可以很直观的观察到各个命令的操作顺序,这样就利于我们及时的发现问题采取措施。而且它还是一个很全面的方法,Brd板上的所有对象都可以用这种方法进行合并。这种方法的缺点就是需要在设计过程中多次合并,及时的避免冲突、保持Brd板的状态一致。Sub-drawing功能:利用Sub-drawing功能进行PCB的协同设计就是利用类似子设计的思想将一个较大设计中的一部分进行导出和导入操作,可以针对Brd板上的所有对象进行操作。想要将一个设计中部分设计元素导出的操作如下:选择Allegro工作界面中的File→Export→Sub-Drawing命令,点击右边显示控制窗口中Find标签栏中的按钮清除所有选项,然后再选中要导出的对象,多数情况下是Symbols、Vias、Clines和Shapes几项。点击鼠标右键在弹出菜单中选择“TempGroup”项。界面下面的命令状态栏显示“Enterselectionpoint”字样,点击鼠标左键框选要导出的元素。选中的元素是高亮显示的,并且可以进行多次选择。选中所有要导出的元素后点击鼠标右键在弹出菜单中选择“Complete”项。命令状态栏显示“Pickclipboardoriginpoint”字样,在命令提示符后面输入“x00”后按回车键,出现下图所示界面。接受系统设置(也可以设置不同的剪贴板文件名和路径,这一点无关紧要)后点击按钮后就将要导出的元素存储在剪贴板文件中。在导出的过程中,界面底部的命令状态栏会显示出导出进行的百分比进度。想要将剪贴板文件中的内容导入到Brd文件中的操作如下:选择Allegro工作界面中的File→Import→Sub-Drawing命令,出现下图所示界面。选择要导入的剪贴板文件后点击按钮,界面下面的命令状态栏显示“EnterPoint”字样,在命令提示符后面输入“x00”后按回车键即可将剪贴板文件中的内容导入到Brd文件中。在导入的过程中,命令状态栏同样会显示出导入进行的百分比进度。在应用Sub-drawing功能进行PCB的协同设计时需要注意以下几点:1、在将剪贴板文件中的内容导入到Brd文件中时,应该首先将Brd文件中要导入的对象删除干净。如果Brd文件中在要导入的地方还留有一些和导入内容相关的元素,导入后两者进行了合并会引起很多错误,修改和调整也比较麻烦。2、在应用Sub-drawing功能进行PCB的协同设计时,对Symbols的操作最好和对Vias、Clines、Shapes的操作分开进行。在对Symbols进行导出和导入操作时,一定要注意保持器件位号不变。导出操作时要选中显示控制窗口中Options标签栏中的“PreserveRefdes”复选框(如下图中左图所示),导入操作时要选中Options标签栏中的“AssignRefdes”复选框(如下图中右图所示),这样才能确保导入的元器件有正确的位号和网络关系。否则导入的器件没有明确的位号,都是用“*”来代替的,需要对其人为的设置位号后才有意义。3、在应用Sub-drawing功能进行PCB的协同设计时,对于Shapes的操作还有些不同之处,就是导入Shapes后Shapes是没有网络属性的。需要人为的对Shapes进行编辑。利用Sub-drawing功能进行PCB协同设计时,可以很有针对性的选择自己想要进行操作的对象进行合并,比起利用脚本文件进行协同设计就更有针对性,目标也更明确。但在选择对象时,有时可能发生漏选或者多选的情况,漏选后导入没有完全合并设计结果,多选后导入就会产生DRC错误,都需要人为的参与调整。利用Sub-drawing功能在时间上也没有很明确的限制,也无需多次合并,对Brd文件的状态一致性没有很严格的要求。坐标文件的方法:这种方法只适用于整板的器件布局。当几个人协同设计一块PCB时,有可能某些设计人员移动了其中的一些器件,在最后合并的时候可以用坐标文件的方式对器件的位置进行统一。选择器件最终定位的Brd文件,在Allegro工作界面中选择File→Emport→Placement命令,出现下图所示界面,接受系统的缺省设置,点击按钮后系统将Brd文件中所有器件的位置坐标导入到文本文件中。系统生成的坐标文件缺省情况下和当前的Brd文件在同一级目录下。打开需要对器件进行定位的Brd文件,在Allegro工作界面中选择File→Import→Placement命令,出现下图所示界面,接受系统的缺省设置,点击按钮后系统将按照place_txt.txt文本文件中器件的坐标位置对器件进行重新布放。这种方法在PCB协同设计中应用很有限,只能用来统一元器件的坐标位置,其操作过程也很简单,只要确保在导出坐标文件和导入坐标文件时放置原点(PlacementOrigin)的设置一致就可以了。在PCB的协同设计过程中,以上几种方法是可以相互补长去短的,应该分析单板的实际情况进行灵活应用,这样才可以发挥每种协同设计方法的优势,更有利于提高PCB设计速度。