|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
PCB设计协作
常言道, 众人拾柴火焰高。长期以来PCB板设计工程师的梦想便是多人协作同时设计同一块电路板。这个任务看起来可能对设计者而言不会过分的复杂-可能仅仅是从那个板子中获取Bob的布线,从而引入到我的PCB板中 - 而最终的交付便需要几种关键能力的综合。
其中包括:[li]一个允许多个设计者进入同一块PCB板进行设计的系统,他们可以在自己的板子上工作以及保存他们所作的修改,而不会影响到其他的工程师。[/li][li]一个精确的比对和确认同一块PCB板的不同版本间差异的机制。[/li][li]能够被用于解决被探测到的差异的工具,并允许设计者来选择最合理的变化。[/li][li]能够自动的掌控大量的差异并且做出处理,而不会制造出任何的冲突的工具。[/li]
还有另外一个巨大的优点就是,这样的一个设计工具可以让你看到同一块PCB板的不同版本的差异 – 你也可以运用这样的能力来检查你的工作。完全忘记了这个星期前的布局布线情况?没关系,PCB编辑器的比对和合并的功能能够被用来识别和检测你所作的所有的变化,如果你想,甚至可以将其移除。
如何进行工作?
探测以及处理两个文档的差异,或者经常被称呼的对比与合并,都是在软件开发领域被证明了的成熟的流程。因为软件是以ASCII格式被书写并存储的,那么便可轻易的进行人为或者通过软件来阅读和对比,许多高品质,强大的第三方的 对比&合并工具都是可以进行使用。
将这样的能力赋予PCB板设计工程师,对比&合并的能力已经被融入了Altium Designer的PCB编辑器当中。PCB编辑器拥有一个强大的差异比较引擎可以探测到两个板子之间微小的物理差异。而物理差异引擎可以在形状比对的水平上进行工作,比较每一层上的所有形状。
比较与合并的功能实际上拥有两种工作方法。第一种是2路对比,被用来探测你当前的PCB板和其他版本的不同。你可以认为这是差异模式,它会将结果显示在Difference View页面中,很重要的是可以显示出什么和什么进行了对比。
第二种工作方法是3路对比,当其他人也工作于此PCB的时候,你可以使用这种方法。想象一下,你和你的同事Bob都从版本控制库中检出了PCB板的副本,你们都在这个相同的文件上进行工作,布局布线。Bob完成了他所负责的PCB部分,并且再将其检入到版本库当中。此刻你想检查并且合并Bob的工作到你的副本,那么Altium Designer又如何处理这样的状况呢?
为了准确的组建所有工程师所作出的改变,Altium Designer需要比较你和Bob的板子,并且与你们都刚开始检出时的版本(这个版本叫基本版)进行比对。这需要3路比对 — 通过这些,Altium Designer能够理解这一系列的变化,并且通过你的工具和命令来合并那些改变到你的那个版本的PCB中。无论何时合作,比较和合并面板上都会报告出版本控制的状态:请求合并,那就意味着Altium Designer已经探测到了在你检出你的PCB之后,某个人已经将他的工作检入到了版本库当中,那么你需要执行合并的动作来将他们的版本导入到你的PCB中。你可以将这个模式当作是合并模式,而Altium Designer将其作为Merge Resolution View.
原始的布线如左,然后你(Designer1)和Bob(Designer 2)对其进行了修改
当设计者1点击显示合并方案视图的时候,Altium Designer会显示每一个设计者的布线状况,就像是给对其进行修改的人加上一个标签。
第一个设计者的合并方案视图
怎么样使用PCB协同设计功能
使用Altium Designer的PCB协同设计功能是通过合作,比较和合并面板来进行操作的,点击工作区的右下角的PCB按钮来显示这个面板。面板的行为部分在控制和协同中都被使用。一旦合并或者比对被执行,便会在主编辑窗口中面板的差异图里面显示出来,正如下面的图形显示:
使用这个面板来获得状态信息以及运行命令来显示差异。
为了管理有差异的显示,板子临时被分成了很多不同的部分,当你在面板中的差异图部分移动光标的时候,这些部分将会被显示出来,并且也会在主编辑窗口的左下角显示出来。这部分的颜色表明了谁对其进行了改变,在示意图中使用legend来获取更多的内容。差异示意图也将为每一个PCB层加上一个层的标签,选择层并且点击一个部分来缩放到那个部分的主编辑窗口。注意到被改变了的目标通过颜色或者是重影而高亮,这些内容将通过下面的内容来进行解释。
面板的操作部分包括大量的命令,主要分成了三个部分。[li]现场协作 – 使用这些命令来配置,显示以及清除工作区。[/li][li]版本控制状态 – 当你工作于一个在版本控制状态下的pcb板的时候将显示出这个命令。[/li][li]比对 – 使用这些命令来执行和另外一个板子的差异比较,可能是在版本控制里面(点击显示任意不同版本的差异)或者不是(点击显示与任一PCB文档之间的差异)[/li]
使用这个操作命令来运行比较和管理现场合作的功能。
绝大多数的指令都是开关类型的命令,点击一次即可开启,再次点击即可关闭。一个命令,即可手动的标记为一个预工作区域,一旦在主编辑窗口点击光标,即可为定义一个区域做好准备。
术语和状态信息
术语 |
定义: |
Head |
被导入到版本控制系统里的最新的版本 |
Base |
刚检出到你的本机的文件版本 ,也称之为检出版本 |
Working Copy |
本机的处于版本控制中且正在编辑的文档 |
Local changes |
本机的尚未导入到版本控制系统中的文件版本 |
Status : File up to Date |
基础的版本是Head版本,并且没有作任何的变化 |
Status : Modified |
基础版本为Head版本,并且本机的副本已经作了改变,这个状态表明你是最后一个检入到版本库中的人,因此所有的变化都是在本机的且都是你自己的劳动成果 |
Status : File Out of Date |
基础版本比Head版本陈旧,并且自己本机的工作副本中并没有做任何的变化。这个状态表明其他的某个人已经在你检出之后将他的版本检入到了版本控制系统中,但是你自己的工作副本并没有作任何的变化。点击更新版本来替换你的旧版本 |
Status : Merge required |
基础版本比Head 版本更陈旧,并且本机的版本也作了变化。换句话说,这个文档要么是被修改了,要么是已经过期。这个状态也表明了其他人在你检出你的版本之后,已经检入了他们的版本,并且你已经对你自己的副本作了一些变化。这可以通过将其他人版本与你自己的版本进行合并来解决这个问题 |
Resolve |
更新基础版的数目到Head版本的数目,你必须在基础版本比你的Head板更旧的时候执行操作,并且将副本变成Head版本。这是从修改到合并的状态所必需的。 |
执行差异比较
只有你一个人工作于PCB板的时候,你可以执行差异比较,并且你想将你的版本和另外一个已经存在的版本做作对比检查。已经存在的版本可能是版本控制库中已经存在的版本,或者是硬盘上的一块PCB。
所有比较的动作都将在 协作,比较和合并的面板中开始。执行差异比较的时候,选择下面的一个指令来进入参考文档,你的选择如下:
1. 点击显示和head版本的差异 – 将你的板子和上一个已经检入到版本库中的版本进行比较。
2. 点击 显示与任一版本作比较所得的差异 – 将你的板子和任意一个以前的版本进行比较。
3.点击显示与任一PCB文档的差异 – 将你的板子和硬盘或者网络上的一个版本进行比较。
差异比较结果如何被显示
一旦比较命令被选择,所有的变化都将在差异图中显示出来。点击一个有差异的部分而跳转到那个处于主编辑窗口的区域。注意,你可以通过这个面板下方的Zoom Level按钮来改变缩放的程度,面板更低的区域将在当前所选择部分列出各自的变化。
在主编辑窗口,没有任何变化的部分被半透明的白色所覆盖,表明了这个区域没有任何的变化。如果一个部分包含了一些差异,那么便不会被遮盖。跳转到单层显示模式(shift+s)可以更容易看到其具体的差异。
可以通过很多的方法来将差异高亮出来,包括颜色,白色阴影,和重影(目标物将以阴暗,看似空洞的方式显示出来)。更详细的内容如下所示:
高亮 |
解释 |
|
增加的 - 这些变化存在于你的工作副本,但是并不在其他的文档中。 |
|
删除的- 这些变化存在于你的工作副本,但是不在其它的文档中 |
执行比对后的合并
当有两个或者更多的人工作于同一块板子的时候,你需要执行合并。鉴于这种状况,所有的设计者必须从相同的版本库中检出相同的板子的副本。每一个设计者都应该对Live Collaboration 功能进行配置,来保证他们最大限度的了解到其他人所做的工作。
如果这个面板的操作区域报告了一个版本控制的状态:合并请求,那么合并就被要求。在操作列表里选择Click to show merge resolution view 命令即可执行。
合并差异如何被显示出来
高亮 |
高亮 |
解释 |
缩小 |
放大 |
|
|
|
你做了添加的操作 |
|
|
你执行了删除的动作 |
|
|
其他人做了添加的动作 |
|
|
其他人做了删除的动作 |
处理差异
通过在参考文档中的差异的探测而合并到当前的板子而对差异进行分析。合并既可以在PCB编辑窗口被执行,或者在合作,比对和合并面板上被执行。当Show Merge Resolution View被激活的时候The Automatically merge in non-conflicting changes from the head revision命令将在面板上显示出来。它将使得你的在Head版本中所有没有冲突的变化被引入进来(在差异图中通过绿色的部分描绘出来)
从面板中进行合并,右击面板的差异图中的被修改区域来显示Add/Remove to match [ReferenceDocument] 命令。选择这个命令将修改那个部分的属性而和相关的文档相匹配。注意到参考文档属性将被显示在方括号内。多个部分都能在同一个时间被高亮出来(shift+click or drag+click to multi-select)允许很多被带到当前的板子上的或多或少的变化。
如果这个部分包含你想保留的和将其他人的引入到你的设计中的变化,你可以在主PCB编辑界面选择性的合并其变化了的内容。可以通过右击选择 合并按钮来执行这个操作。
右击选择合并按钮
在主编辑窗口一个有悬浮标记差异的目标上单击右键来处理这样的差异。弹出的菜单内容将包括一个合并的子按钮,因为那将合并为定制的特性,正如那个部分变化的状态。
右击一条被标记的线并且选择合并的子菜单中的一条命令
在子菜单中有三个可能的层次:[li]原始的 - 只有实际的线的部分/过孔/器件,你可以随意的通过右击这个动作对其进行修改。[/li][li]布线 - 对于你所点击的连线,所有的与之不同的线都将被修改。[/li][li]子集 - 所有的经过这个部分的线都是有差异的部分,也将通过这个动作而被修改。[/li]
通过右击合并的子菜单命令,如下的操作类型的命令是被支持的:[li]添加 – 当点击参考文档中的原始部分,而非你自己的文档会显示出来。从参考文档添加原始的属性到当前的文档,但是并不移除原始的部分。当添加器件的动作被执行的时候,他将尝试移除一个已经存在的器件,会造成UniqueID的冲突。[/li][li]移除 – 修改原始属性以便移除对当前板子所做的变化。[/li][li]替换 – 添加和移除原始部分以便最终的结果和用做比对的参考文档相匹配。[/li]
现场协作
Altium Designer的PCB的协作功能的支柱是版本控制系统和版本库。假如和Head版本不同,版本控制系统会记录每一个设计者检出的每一个版本。
为了使设计工程师能更好的跟踪其他工程师的工作,你可以使用Altium Designer的现场协作 和工作区功能。
现场协作功能详细的说明了其他的某一个设计工程师也工作于同一块PCB板。登录和每一个工程师的机器当前拥有相同的打开了的PCB文件(他们自己的工作副本)被详细的列在了协作,对比和合并面板的Difference Map 区域。
服务器路径协同
利用现场协作功能进行工作,Altium Designer使用了中央文件让参与设计人员和工作区信息(WIP.xml)进行登录。文件被存储在通过{*}Collaboration Server Path选项(Preferences》PCB Editor》General)*所定义的位置。为了使用这个功能,每一个设计者都必须在Altium Designer的安装中定义相同的路径。
工作区域
每一个设计者都能够定义一个工作区域 – 他们自己工作的一个区域。 工作区域是在主工作区中被定义,在你打算定义之前,使能面板中的Click to show work regions in the main editor选项来使其在主工作区中显示。
创建一个工作区域,点击面板中的Manually mark an area as work region命令,将光标放置在一个拐角被放置的位置,然后点击开始。工作区域是敷铜的时候,点击铜皮的每一个拐角,利用Shift+Spacebar来选择拐角模式,利用空格来选择拐角的方向,右击来终止这个图形并且结束放置。
注意: 你必须具备一个公用的Collaboration Server Path来查看其它工程师在同一块板子上所定义的工作区域。
版本控制的作用
协同设计的挑战已经在软件设计领域得到了解决。 最具实践的软件研发需要用一种有有组织,有序的方式来编写,伴随着代码被分成很多单个的文件,也会影响到整个项目的架构。 这便意味着软件的开发团队编写了大量的代码文件,其中包含了大量的代码。
为了更高效,更有影响力的进行协同工作,软件开发者自然的选择了版本控制系统。而一个版本控制系统,允许他们:[li]非常容易将所有的项目文件存储在单一,中央或者版本控制库中(使得备份更加容易)[/li][li]恢复变化,包含多份文件。[/li][li]存储以及检索一些以前开发过程中任一时刻的文件。[/li][li]独立进行工作,但是却依旧协同。每一个团队成员都拥有他们自己所需要的文件副本,当他们的研发达到一定的阶段,便可以将其检入到版本库当中。[/li]
如果你并没有工作于一个版本控制系统当中,你可能会认为,这样会需要清理很多的东西。事实上,不使用版本控制系统,会导致更多的清理工作,随着每一个人创建他们自己的系统来将具有奇怪名称的文件保存在特殊的位置,在那里,可能很快就会被遗忘。事实上,几乎任何赚钱的生意都是保证电子文件保存于一个版本控制系统中的。
那么VCS如何进行工作呢?一旦理解了和版本控制库的接口,那么基于版本控制系统进行工作不再是困难的事情。无论何时检入你的工作文件到版本控制系统中的时候,可能包含一些评论的信息,保留变化的信息,都将是非常的完美。你也可以轻易的查看到所有检入的历史版本,检查评论,或者是转换到任意文件的任意版本。一旦你检出你的项目副本到你自己的本机区域,你就可以像以前那样正常进行工作,只有在当他们被共享给其他人的时候,将你的更新的内容检入即可。Altium Designer也直接和文件库进行信息交互。只要在项目面板上右击文件即可检入你的文件。
如果我的项目不在版本控制系统中怎么办?
Altium Designer的协同PCB设计能力以版本控制系统为核心。提供了每一个工程师所需要的可以独立工作的机制,如果需要,也可以将他们的独立完成的工作汇集起来。为了充分的使用Altium Designer的协作,对比和合并功能,每一个工程师必须从同一个版本库中检出,在同一个项目的副本上进行工作。这是因为版本库是一个中央枢纽 – 通过和版本库进行信息的交流,Altium Designer能够为每一个工程师已经检出每一个版本的板子建立不同的版本,并且提供能够被用作比较而查询差别的命令,最终如果需要将合并那些差异。
如果你工作于一个并非版本控制系统中的板子上,你仍然可以使用对比与合并的功能,在Collaborate, Compare and Merge中Actions 部分*,使用Click to show differences against any PCB Document 命令来查看当前的板子和任意的板子之间的差异。注意如果你的板子并不在版本控制系统中,那么你将没有权限使用Live Collaboration{*}的功能。 |
|