本文介绍了一种PCB设计复用方法,它是基于Mentor Graphics的印制电路板设计工具Board Station进行的。一个设计可以复用另一个设计的部分或全部电路,也可以对自身的部分电路进行复用,本文以第一种方式为例进行讨论,第二种方式与它相似。
引言
随着科技的不断发展,PCB板趋向小型化、多层化与复杂化。特别是高速印制板,需要经过很长时间的反复调试才可以定型。如果已有一个定型的设计(A),现需要一个部分电路与其相同或相似的设计(B),传统设计流程如下:
图1:传统设计流程图
由此流程图可以看出,设计B采用设计A的思想,人工重复了设计A的设计过程。
实现方法
Board Station作为一个大型的EDA软件,不仅应用范围广、功能强,而且所有设计文件都以ASCII码格式保存,允许用户修改设计数据,PCB设计的复用提供了基础。
打开一个PCB设计,其主要文件结构如下: Schematic路径下为原理图数据文件;Design_geom路径下为物理器件(Geometry)数据文件;Pcb路径下为印制板数据文件,其中comps为元器件(Component)数据文件,包括器件标号(Reference)、逻辑符号(Symbol)、对应物理器件(Geometry)、在印制板上的位置(Board_location)以及特性(Properties)等信息;Nets为网表数据文件;traces为印制板连线数据文件,包括网表名称(NET)、连线宽度、所在物理层,起始及终止点坐标等信息。一个设计下的文件远不至于此,但其它文件均可由Board Station自动生成或者派生。
图2:Board Station软件主要文件结构
Board Station包括Design Architect、Librarian、Package、Layout、Fablink五个模块。假设设计A是现在正在进行的设计,设计B为需要复用的设计。首先,在Design Architect模块打开设计A ,将设计B被复用部分的原理图拷贝到设计A;然后,将设计B被复用部分的物理器件(Geometry),从设计B的Design_geom路径下拷贝到设计A的Design_geom路径下;第三步,将设计B被复用部分的元器件(Component)数 据从设计B 的comps文件拷贝到设计A的comps文件中;第四步,参考设计B Nets文件中被复用部分的网表(NET)数据,修改设计A的Nets文件中的相应部分;最后,将设计B的traces文件拷贝到设计A的pcb路径下,实现PCB设计复用。
应用举例
以下以设计A为正在进行的设计,设计B为被复用的设计,举例说明PCB设计复用的实现方法。
图3:设计B的印制板图及原理图
图4:设计A的原理图
按照以下步骤执行:
1. 在Design Architect模块照图4画设计A的原理图,存储。
2. 进入设计A的Librarian模块,建立物理器件(Geometry)以及映射文件(mapping file)等。
若图4中的器件U1、U2、R1、R2、R3、R4中任何一个对应的物理器件(Geometry)与图3中相应器件的物理器件(Geometry)不同,将设计B的Design_geom路径下相应的物理器件(Geometry)拷贝到设计A的Design_geom路径下。即器件U1、U2、R1、R2、R3、R4在设计A和设计B中的物理器件(Geometry)必须相同。
为了保证图4中的器件U1、U2、R1、R2、R3、R4所对应的物理器件(Geometry)在设计A和设计B的印制板上位置相同,将设计B的印制板Geometry(Board)由设计B的Design_geom路径下拷贝到设计A的Design_geom路径下,然后在Librarian模块对其进行修改。完成所有功能后,存储并退出。
3. 进入设计A的Package模块,建立逻辑符号(Symbol)与物理器件(Geometry)的对应关系,完成所有功能后,存储并退出。
4. 修改设计A的comps文件。
在Board Station软件的任何一个模块中,采用下拉菜单MGC-->Notepad-->Open-->Edit...
打开设计B的comps文件,将与器件U1、U2、R1、R2、R3、R4有关行选中并复制(Copy)。
打开设计A的comps文件,将与器件U1、U2、R1、R2、R3、R4有关行选中并删除(Delete),然后粘贴(Paste)。
即器件U1、U2、R1、R2、R3、R4在设计A和设计B的comps文件中的内容必须相同。
5. 修改设计A的Nets文件。
# BOARD STATION NETS FILE FORMAT 1.0
# Application : PACKAGE v8.6_4.1 Thu May 20 11:26:46 PDT 1999
# date : Saturday October 14, 2000; 04:30:40 #
NET '/N$2' U3-4 U7-2
NET '/N$3' U3-5 U6-2
NET '/N$4' U3-1 U8-1 U4-2
NET '/N$7' U2-14 U3-7
NET '/N$8' U2-13 U3-6
NET '/N$9' U2-18 U3-9
NET '/N$10' U2-17 U3-8
NET '/N$29' R1-2 U2-3
NET '/N$30' R2-2 U2-4
NET '/N$40' R3-2 U2-7
NET '/N$41' U2-8 R4-2
NET '/N$45' U1-14 U3-11
NET '/N$46' U1-13 U3-13
NET '/N$47' R1-1 U1-18
NET '/N$48' R2-1 U1-17
NET '/N$49' R3-1 U1-16
NET '/N$50' U1-15 R4-1
NET 'GROUND' U5-2 U3-10 U7-1 U8-2 U6-1 U1-10 U2-10
NET 'VCC' U5-1 U3-20 U4-1 U1-20 U2-20 (表1:设计A的Nets文件)
# BOARD STATION NETS FILE FORMAT 1.0
# Application : PACKAGE v8.6_4.1 Thu May 20 11:26:46 PDT 1999
# date : Monday November 20, 2000; 12:52:50 #
NET '/N$9' R1-1 U1-18
NET '/N$23' R3-2 U2-7
NET '/N$25' R5-2 U2-13
NET '/N$27' R7-2 U2-17
NET '/N$230' R2-2 U2-4
NET '/N$231' R4-2 U2-8
NET '/N$232' R6-2 U2-14
NET '/N$233' R8-2 U2-18
NET '/N$234' R1-2 U2-3
NET '/N$235' R2-1 U1-17
NET '/N$236' R3-1 U1-16
NET '/N$237' R4-1 U1-15
NET '/N$238' R5-1 U1-14
NET '/N$239' R6-1 U1-13
NET '/N$240' R7-1 U1-12
NET '/N$241' R8-1 U1-11
NET 'GROUND' U1-10 U2-10
NET 'VCC' U1-20 U2-20 (表2:设计B的Nets文件)
在Board Station软件的任何一个模块中,采用下拉菜单MGC-->Notepad-->Open-->Edit...
参考表2修改表1,即将设计A的Nets文件与设计B的Nets文件中连结相同管脚的NET名称改为相同,例如:在设计B的Nets文件中第一行为NET '/N$9' R1-1 U1-18,则将设计A的Nets文件中的相应行NET '/N$47' R1-1 U1-18,改为NET '/N$9' R1-1 U1-18。
若设计A的Nets文件中修改后的NET名称与原有的NET名称相同,修改原有的NET名称。
# BOARD STATION NETS FILE FORMAT 1.0
# Application : PACKAGE v8.6_4.1 Thu May 20 11:26:46 PDT 1999
# date : Saturday October 14, 2000; 04:30:40
#
NET '/N$2' U3-4 U7-2
NET '/N$3' U3-5 U6-2
NET '/N$4' U3-1 U8-1 U4-2
NET '/N$7' U2-14 U3-7
NET '/N$8' U2-13 U3-6
NET '/N$99' U2-18 U3-9
NET '/N$10' U2-17 U3-8
NET '/N$234' R1-2 U2-3
NET '/N$230' R2-2 U2-4
NET '/N$23' R3-2 U2-7
NET '/N$231' U2-8 R4-2
NET '/N$45' U1-14 U3-11
NET '/N$46' U1-13 U3-13
NET '/N$9' R1-1 U1-18
NET '/N$235' R2-1 U1-17
NET '/N$236' R3-1 U1-16
NET '/N$237' U1-15 R4-1
NET 'GROUND' U5-2 U3-10 U7-1 U8-2 U6-1 U1-10 U2-10
NET 'VCC' U5-1 U3-20 U4-1 U1-20 U2-20 (表3:修改后的设计A的Nets文件)
打开下拉菜单MGC-->Design Management-->Copy Object...
在Options...选项中选择:
* Update All References
* Overwrite All File Conflicts
* Create Destination
这样,就将设计B中印制板上的所有与设计A相关的连线拷贝到了设计A的印制板上。
7. 进入设计A的Layout模块,不需要进行任何操作,即出现图5所示界面。
图5:设计B被复用部分印制板图
至此,完成设计B到设计A的PCB 设计复用。
结束语
Board Station软件作为一个大型EDA软件,不仅可以进行板级设计,也可进行系统级、门级的设计以及原理图仿真、板级仿真等。本文仅讨论了在PCB设计中的一点技巧,希望能为系统级、门级等设计的复用以及仿真复用提供参考。