1.3 Altium Designer 10的设计工程
设计文件中包含了用于制造产品的数据,但是脱离了设计工程它们就是不完整的。在Altium Designer中,设计工程负责定义设计文件之间的关系,它是建立在统一的数据模型基础之上的。
简而言之,设计工程是一系列的设计文件,连同存储在设计工程文件中的设置,定义了设计的方方面面。每个设计文件单独存储在硬盘上,设计工程文件本身也是一种ASCII码的文件,它包含了所有设计文件的链接和工程级的设置。由于设计工程文件不涉及具体的文件存储,所以它可以包含任何来源的文件。
由于使用了设计工程的概念,Altium Designer可以构建和管理基于统一数据模型的设计同步。当在一个设计文档中作了更改,它可以编译成统一的数据模型然后传递到设计的其他部分。本节主要讨论不同的设计工程类型及其应用。
1.3.1 设计工程的类型
每个设计工程将执行并产生一个结果,根据最终结果的不同分成不同种类的设计工程。如果目标是产生一个PCB,就要使用PCB工程把所有的原理图文件和PCB文件囊括在一起。如果目标是创建一个可以在FPGA上运行的设计,就要使用FPGA工程。在工程中添加任何设计文件几乎是没有限制的,但是它所属的设计工程将决定如何解释和编译这些文件。
PCB工程(*.PrjPcb):这一系列的设计文件用于制造印制电路板。使用原理图建立电子电路,从库中选择元件的符号放置在图纸上并把它们连接起来。接下来把设计转移到PCB编辑器,每个器件具体化为封装,原理图的逻辑电路连线变成了点对点的连线。在PCB编辑器中定义PCB外形和所有的物理层,根据布线要求定义一系列设计规则,例如线宽和安全间距等。器件封装放置在PCB之后,采用手动或自动的方式用物理走线代替所有的连接线。设计完成后,产生用于生产裸板和配置装配标准格式的输出文件。
FPGA工程(*.PrjFpg):这一系列的设计文件用于生成FPGA器件的编程文件。使用原理图或者HDL代码(硬件描述语言VHDL或者Verilog建立设计),在工程中添加约束文件来说明设计要求,例如目标器件、内部网络到器件引脚的映射、时钟引脚分配等。设计综合使用EDIF标准文件格式把源数据翻译成低级的门电路形式。器件厂商的工具处理EDIF数据后,按照适合目标器件的方法去实现布局,成功之后生成器件的下载代码。此后用户可以在放置有目标器件的开发板上进行设计,并可以对设计进行测试。
嵌入式工程(*.PrjEmb):这一系列的设计文件用于生成可以在电子产品的处理器上运行的软件应用。使用C语言或者汇编语言编写代码。编写完所有的代码后,所有的源文件被编译成汇编语言。汇编器把它们转变成机器语言(目标代码)。目标代码文件被链接在一起,然后映射到内存空间中,生成一个可执行的输出文件。
内核工程(*.PrjCor):这一系列的设计文件用于生成应用于FPGA中的功能器件的EDIF表达(模型),使用原理图或HDL语言完成设计。在工程中添加约束文件,用于说明支持的器件。设计综合使用EDIF标准文件格式把源数据翻译成低级的门电路形式。原理图符号代表了可以放置在原理图的器件,它将参考EDIF描述。
集成库(*.LibPkg & *.IntLib):这一系列的设计文件用于生成集成库。在库编辑器中绘制原理图符号,并为其指定参考模型。参考模型可以包括PCB封装、电路仿真模型、信号完整性模型和三维机械模型等。包含所有模型的文件被加载到集成库包装文件(*.LibPkg)中,或者使用搜索路径指定它们所在的位置。原理图符号和模型被编译成为一个文件,称为集成库。
脚本工程(*.PrjScr):这一系列的设计文件保存了一个或者多个AltiumDesigner的脚本。当脚本在Altium Designer运行时,将会翻译一系列的指令。用户在相同的环境中编写和调试脚本。Altium Designer提供了两种脚本,即脚本单元和脚本表格。脚本单元可以使用DXP应用编程接口(API)来修改设计文件中的设计对象。脚本表格主导控件,同时使用DXP的API提供了一个脚本对话框,可以在Altium Designer当前打开的设计文件中运行。
1.3.2 使用工程
1.工程面板
工程面板是浏览、链接或者重新排序该工程内容的主要途径。需要强调的是,工程面板中的文件表示并不代表它们在硬盘上的存储方式。工程面板上只是展现了这些文件的逻辑关系,文件可以以任意形式在硬盘中存储。用户可以把正式的文件存储在公司的公共服务器上,而复件放在自己的计算机上。或者可以通过Altium Designer使用版本控制系统,从中央数据库中把文件检出到服务器的个人工作区。
2.创建一个新工程
可以采用多种方式创建一个新工程。
(1)在【文件】菜单上逐级选择创建一个新工程,如图1-51所示。
图1-51 使用【文件】菜单创建一个新的工程
(2)在文件面板的“新的”选项中单击需要创建的工程,如图1-52所示。如果文件面板没有打开,单击工作区域右下角的按钮,然后在弹出的菜单中选择【Files】。
图1-52 在文件面板中创建工程
新建工程保存于内存中,使用【保存】或者【保存为】菜单命令把它以合适的名字保存在合适的位置。
(3)在“Home”页面(【察看】/【视图】?【首页】)的“任务”区域中的“设计任务”部分,单击相关的条目生成新的空白工程,如图1-53所示。
图1-53 通过“Home”页面生成新的空白工程
当打开一个现有的工程或者新建一个工程时,在工程面板上会出现一个工程入口。该工程包含的文件或者新添加的文件,会根据相应的目的或者类型出现在不同的子文件夹中。
为了与厂商构建的一些FPGA工具兼容,FPGA工程、内核工程和嵌入式工程的名字不能包含空格。
3.添加文件到工程
1)添加设计文件到工程 创建了工程并把它存储在需要的位置之后,就可以添加设计文件了。为工程新建或者添加已经存在的文件的最简单的方法,是在工程面板中右键单击工程的名字,然后选择【给工程添加新的】或者【添加现有的文件到工程】菜单选项,如图1-54所示。
图1-54 为工程添加新文件
2)在工程中包含其他文件 其他相关的文件,例如Word文件或者Adobe PDF文件,也可以添加到工程中。可以用常用的方法添加它们,但应注意要把文件类型列表设置成所有文件“All Files(*.*)”。文件会出现在工程面板中名字为“Other Documents”或者“Documentation”的文件夹图标下。
4.指定文件在工程中的顺序
一个群组中的文件如源文件,在工程中按照被添加的顺序显示在工程的默认目录中。要改变文件在显示目录中的顺序,只要拖曳文件到新的位置即可。一旦这个工程被编译,所有源文件会按照设计的层次关系显现。
不能在面板中通过拖曳文件来构建它们在工程中的层次,文件在工程中的层次关系是用图表符与子图定义的。
5.在工程间共享文件
由于每个文件都是链接到工程的,用户可以在不同工程之间共享文件。共享的文件可能是一个在不同产品中使用的标准电源的原理图,或是用户希望使用的一部分设计。
当在多个工程中共享文件时要特别注意,文件的任何变化都会影响到所有的工程。如果要复用已验证的电路,更好的选择是使用一个被妥善管理的文件。
6.以新名字另存文件
使用【保存为】命令可以用新名字来保存文件,这并不是为原始的文件重命名,而是复制了这个文件并使用新的名字来保存,原始文件仍然在硬盘上。工程将更新链接指向新保存的文件。如果想创建一个文件副本而又不影响当前工程,需要使用【保存拷贝为】命令。
如果一个文件属于两个工程,并且把该文件保存为新名字时两个工程都处于打开状态的话,相关的两个工程都会用新文件名更新来保持工程的完整性。
7.从工程中删除文件
从工程中删除一个文件,只要在工程面板中右键单击这个文件的图标,然后选择【从工程中移除】命令即可,如图1-55所示。从工程中删除文件,只是简单地删除掉文件的工程链接,文件本身仍然保留在硬盘上,而不是真正地删除掉。
图1-55 从工程中移除文件
8.改变工程
正在编辑的文件,即当前活动的文件,在面板中高亮显示。从图1-56中可以看到,工程以及当前活动的文件都被高亮显示出来,该工程被称为当前活动的工程。通过【工程】菜单命令做出的任何改变,都是针对当前活动工程的。
图1-56 右键单击工程名字访问工程相关命令
当打开多个工程进行编辑时,有一个简单的方法来执行与工程相关的命令,就是在工程面板中右键单击目标工程的名字,会出现一个右键菜单,用户可以利用这个菜单对工程进行操作,而不用去管当前活动的文档属于哪个工程。在图1-56中显示了当前活动的文档文件是属于嵌入式工程的,但是右键单击PCB工程出现了相关菜单。
9.命名工程
工程只是一个简单的文件,类似于硬盘上的其他文件,它包含了所有文件的链接来组成一个完整的设计。正如文件可以另存,工程文件也是如此。
【保存工程为】命令只是以新名字另外保存这个工程文件,原有工程文件仍然在硬盘上。所有连到这个工程的文件都是原封不动的。
不能使用命令来迁移整个工程,这只会在新的地方保存工程文件,而不会影响工程关联的文件的位置。工程面板并不用于文件管理,如果想要迁移工程,请使用操作系统的文件管理器。
1.3.3 传递设计工程
有些情况下用户需要备份整个工程,或者将其传送到外接硬盘等,以便于在其他地方继续工作。工程打包器(【工程】?【存档】)就是专为这种情况设计的。
工程打包器可以把工程的全部内容压缩成一个带有时间标签的文件,通过向导可以指定哪些相关的文件可以包含在工程压缩包中,指定压缩文件的存储位置,以及是否包含已生成的或者系统文件,如图1-57所示。
图1-57 使用工程打包器传递设计工程
1.3.4 设计工程封装
使用统一平台工具的一个好处是可以把不同领域的设计文件放在一起,对设计工程而言也是如此。在Altium Designer中可以实现工程结构的层次设计,也就是说设计工程本身就是更高级设计工程的子工程。
一个非常好的例子就是:包含FPGA器件的PCB设计,而FPGA器件里又包含一个运行软件的嵌入式处理器。这种情况下,最高层的设计工程就是PCB工程,它包含了所有用于制造PCB的文件;PCB工程的子工程就是FPGA工程,它包含了定义FPGA内部电路的设计文件,这些设计文件包含一个软处理器内核;作为FPGA工程的子工程的是嵌入式工程,它包括了需要在处理器运行的所有软件源代码。图1-58说明了这三个工程是如何在工程面板中呈现的。
图1-58 Altium Designer支持设计工程层次化
1.链接工程
通常使用工程面板的“结构编辑器”页面链接工程,如图1-59所示。
图1-59 在工程面板的“结构编辑器”页面拖曳工程建立链接
(1)打开两个需要链接的工程。
(2)把工程面板切换到“结构编辑器”页面。
(3)把子工程拖到父工程上面,有效的放置位置会以蓝色高亮显示。
(4)把工程拖到有效的位置。
2.取消工程链接
用户还可以在工程面板的“结构编辑器”页面中把链接的子工程从父工程上面拖到空白地方,从而取消工程链接。
1.3.5 工程的版本控制
Altium鼓励设计者使用版本控制工具,并且支持多种版本控制工具。在“参数选择”对话框(【DXP】?【参数选择】?【Data Management】?【Version Control】)中进行相关设置后,用户就可以在Altium Designer的工程面板中使用右键菜单执行工程和文件的版本控制操作,如图1-60所示。
图1-60 Altium Designer支持在设计环境中与版本控制系统交互
1.提交工程到版本控制
(1)确保设计资料库已经建立,并在“参数选择”对话框中已经启用。
(2)在工程面板中右击工程名称,在弹出的菜单中选择【版本控制】?【添加工程到版本控制】选项。
(3)在“添加到版本控制”对话框中,选择或者新建文件夹,如图1-61所示。
图1-61 为工程在设计资料库中创建一个新文件夹
(4)选择希望添加的文件,包含所有的源文件,但不包括生成的文件,如图1-62所示。
图1-62 选择希望添加到版本控制的文件
(5)单击按钮,工程面板中新添加版本控制的文件旁边会出现标志,如图1-63所示,表明这些文件都被加入到了版本控制系统,但是还没有提交。
图1-63 带有标志的文件已经添加到版本控制中
2.提交文档变化到版本控制
(1)所有文件都保存后,右键单击希望提交的工程,选择版本控制提交整个工程选项。
(2)如图1-64所示,添加一个注释标明本次提交的目的,然后单击按钮。
图1-64 添加一个注释标明本次提交的目的
(3)当工程被顺利提交后,工程面板中的版本控制标识将更新为,如图1-65所示,指示设计文件已经与设计资料库实现了同步。
图1-65 工程面板指示所有文件都是最新的