设计发布过程

我们在上一期Envision中介绍了Altium Designer新引入的高完整性数据管理功能,这些功能在我们的最新版软件——Altium Designer Release 10中得以实现。

你可以在这里阅读那篇文章,如果你在我们与日俱增的Altium Designer Release 10视频集锦中选择“智能数据管理”项,你就能找到那篇文章所依托的网络研讨会。

简要概括一下,那次讨论涉及了严格的设计数据管理的必要性,以及实现这一目标的传统做法如何给设计创新造成障碍并减缓项目开发进度。 Altium公司迎难而上,开发出高可靠性和高完整性数据管理过程所需的同步、跟踪和存储功能,而且这样的数据管理过程不妨碍创新。

结果在Altium Designer Release 10中造就了一套具有突破性的新的数据管理功能——现在生产率和设计自由度可以和高完整性数据管理和谐共存。它引入的设计数据管理模式可对设计世界和最终负责建造实际产品的供应链之间的联系进行正式定义。从电子产品设计的角度来看,产品生产项目一般是空白板和装配板。

为了继续先前的讨论和网络研讨会,我们现在来更详细地考查Altium Designer Release 10中的设计发布过程。这还是依托于一个很好的新的网络研讨会视频——名为高完整性发布,在Altium Designer Release 10的视频集锦中可以找到。它总结了发布过程所涉及的关键概念,演示了实践中的工作原理,给出了所用术语的上下文,并演示了如何管理从设计直到发布的这一整套流程。

高完整性设计发布

过去,向生产线发布电子设计数据的过程基本上是附加于设计过程最后的一系列非正式步骤。但电子产品设计的基本机制已经改变,这种粗放型的做法已不再适用。现代电子工业的制造和设计功能现在更加独立,工程师不能像惯常一样一头扎到生产车间去解决一个装配问题或发现一个生产瓶颈。

现在更常见的是与不同地域、甚至不同语言的生产者合作,这将给产品推向市场的过程带来很多不确定性。确实,对数据完整性的疑虑和带来不确定性的问题将成为大多数工程师的家常便饭。

例如,您可能向PCB加工厂发一套Gerber文件,后来经过几次设计更改后又生成一套新数据,但你怎么知道加工厂使用的是正确版本?又或者PCB板制作得没问题,我们将坐标插件文件和材料清单发到另一个国家进行装配。但是我们又担心那些生产说明未必和我们想要制造的PCB板配套,那么该如何克服这种紧张情绪呢?

在电子产品设计全球化的大背景下,通过良好、严格的数据管理过程可以在很大程度上减少变数和风险。迄今为止,这一问题唯一的解决方法仍包括很多束缚双手的僵化的手工流程,而且仍然容易出错。但在Altium Designer Release 10中,新开发的发布管理过程可助您解决设计管理问题, 无需 束缚双手。

 

[missing FMS file] [missing FMS file]

设计数据用来生成输出文件,这些文件的发布是为了制造实体产品——通常是空白板和装配板。

关键优势

下面只是采纳和使用新系统的部分优点:

  • 集成了版本控制
    此功能生效时,能保证工程师的硬盘上永远也不会有一份“私藏” 的重要设计文档——这样有可能遗失或遗漏。这可以避免花费数小时来搜寻生成一款发布的产品时所用的配套设计文档。
  • 详尽的回溯路径
    在发布过程中,Altium Designer记录版本控制存储库的地址及项目的修订,并将这些信息提交到发布版。这创建了一条完全透明的回溯路径,从源设计文档的初次登记一直记录到最新发布的修订版。
  • '一次性成功'的发布
    对任一目标项的任何给定修订版,系统只允许向其发布一个设计项目的一种配置,且只能发布一次。不能再生成任何数据并发布到这唯一的修订版。
  • 自动化和可重复的设计发布过程
    从抓取设计文件的快照,到验证、生成输出以及发布数据的最后提交,都是由一键触发的。如果任何一步失败,则发布过程停止。
  • 把设计的验证作为设计发布过程的有机组成部分
    为了更加放心并确保设计数据的完整性,可以向发布过程'流'添加验证检查。除标准的ERC和 DRC 检查外,还可以检查源项目和PCB是否同步。
  • 数据标识
    设计发布过程中产生的所有数据文件都有项目标识符(ID)和项目修订标识符(ID)作为前缀,确保从这些数据文件生成哪一项的哪一修订版时不会发生混淆。
  • 可选的生命周期管理程度
    可以没有任何管理,或包括状态和状态转换的简单管理,还有完全结构化的管理。
  • 权限可控的生命周期管理
    系统可实现文件夹级的安全机制,你可以指定谁能把修订改到某种状态——例如,从原型改成生产。
  • 基于云的出版
    从发布跳马(Vault)直接将发布数据出版到云的共享存储介质,如Box.net.

术语

上期网络研讨会讲到,被定义的设计发布管理系统这一新概念包含一些陌生的术语,为清晰起见需要加以定义:

  • 条目
    一件项目是你生产或获取的某样东西,它必须有唯一标识。按我们的情况项目通常是一块裸板或一组配件(基于该板)。该项目的标识符或项目ID也可以用来准确地识别 什么项目 将从输出(如一组Gerber文件)产生。
  • 修订
    一款电子产品的设计——在一定程度上还有其功能——可能随时间或根据不同的终端用户市场而有所改变,因此用于电子产品的生产输出必须标明项目 修订号。在创建输出 为它们预留修订版,这些输出将纳入该修订版或与之关联,这样就能确保不存在未分配修订版的输出。
  • 修订生命周期状态
    当我们运行一个发布版时,我们是在生成输出并将其放入该修订版,或者你也可以说将其存储于该修订版。修订版现在是在使用中,我们不能再次向同一个修订版发布,否则就破坏了一致性和完整性。但我们可以根据其用途打上标签。例如,开始时我们可能把它的状态从新设计升级到原型——也就是说,我们可以用该版本的生产数据来制造原型。如果原型运行良好,那么我们可能会把该版本升级到生产状态,这意味着我们可以用这些数据进行全面投产。另一方面,如果我们的原型失败了,我们可能会放弃这版修订。版本会经历类似这样的几种不同的状态,到后文再详细讨论。
  • 设计保险库
    把设计保存在源代码控制存储库——我们称之为设计跳马——使设计师能保留一份给定设计的进展记录,甚至实现了一些其它重要功能,如设计团队成员之间可协作设计——更多详情请参见新的“PCB设计协作”功能。使用设计跳马也使我们能够在任何时间点 原样 复制我们的设计。虽然跳马可以基于一个简单的文件夹系统,但通常一个像Subversion这样的版本控制系统才是设计跳马的后端。
  • 发布保险库
    由于所有的发布版都含有重要的产品信息,且它们的完整性必须保持,因此需要把它们存储在一个安全且唯一的地方——这就是发布保险库。在这个地方,其他关键人员——如生产工程师——能够进入存储空间并放心地选择正确的生产文件。发布版中的文件可通过条目ID、修订和生产状态清楚地辨识。
  • 数据质量
    生成发布版的重要一点是,你不希望发布未完成或低产出的设计。您还希望确保有一个可追踪的记录,以确认设计数据、完整性和检查已顺利完成。为了满足这一条件,发布过程也有一个验证阶段,在对电气规则、设计规则和设计保险库一致性进行检查后发布过程才能继续。

[missing FMS file]
想想为一件
'条目修订盒'内存储的项目创建一个修订版所要求的数据。反过来,这是(和任何其它发布的修订盒一起)储存在版本保险库中。

配置是关键

因为PCB设计工程所具有的参数性质使单个工程能够作为多个真实世界生产项目的源,所以发布一份设计的一个重要先决条件是,指定用设计数据产生什么产品(和修订)。例如,单个PCB设计工程不仅可以作为加工而成的'裸'板的来源,而且很可能作为一块或多块装配板的来源——每块板本身都是一件独特的生产条目。

这些生产条目的生产是由为工程定义的变体以及输出作业(Output Job)文件驱动的,这些输出作业文件生成该工程的制造/装配输出。Altium Designer利用一种正式的 配置 结构将设计保险库中的源PCB工程映射到发布保险库中指定的项目的条目——这就是PCB 工程配置的概念。

从根本上讲,你需要配置工程才能生成实际的发布版——也就是编制根据当前设计文件制造产品所需的指令。这包括可能需要的任何输出——Gerber、ODB++、坐标插件文件、材料清单等等。事实上,你可以为设计创建任意多种不同的配置。这特别有用,因为一块PCB有可能有几种不同的装配版本输出,甚至是板的不同变体,最终PCB上的元件丝印网板都可能不同。

配置是实际设计工程的一部分,并将设计域和制造域关联起来。每种配置代表一件我们想在现实世界中建立的项目,并定义生产者实际建立该项目所需的数据。因此,当我们发布一个设计工程时,我们实际上是在发布该工程的一个配置。生成的‘发布数据’存储于该配置中指定的目标条目的修订版。

验证和发布

在实际经过发布过程之前,你很可能希望能够对设计进行验证——也就是,运行设计规则检查器、电气规则以及更重要的——确保原理图和PCB分毫不差。你可能还希望生成输出文件,只是看一下Gerber文件或者为原型做一次元件的预采购,或者只是在正式提交发布版之前做一次试运行。这时输出生成器运行于设计模式(而不是发布模式)。

进行到发布模式时,重要的是要认识到,运行一次发布将把该版本提交为当前项目的修订版。为了防止丢失发布数据的完整性,这次修订只能用于 一次发布 流执行。之后再次运行一次发布的唯一方法是创建一份新的项目修订版。

发布流程主要包括以下几个自动步骤:

  • 检出一份快照
    这一步从设计保险库的当前修订版中创建出设计文档的一个标签,这里的设计保险库通常是一个subversion存储库。因为该标签是根据条目ID和当前的条目修订版命名的,而我们已将该修订版与这个特定的发布版关联,所以这份时间性快照是一份一致的拷贝,而且是可追溯的。
  • 验证设计
    这一步运行上文所述的验证检查。如果有一项失败,例如设计或电气规则检查,则发布过程就不能继续下去。这给发布过程带来了一个重要保证:关键的设计参数都达到或超过要求。在Altium Designer Release 10中,可添加特定的验证来支持严格的发布过程。例如,除原理图的电气规则检查和PCB的设计规则检查外,还可以包括一份差异报告。这保证了原理图和PCB设计完全彼此同步。
  • 生成输出
    假设验证阶段已经完成,且没有错误,则可以生成制造和装配输出。最终,这些就是生产实件所需的指令,生产出的实件作为一个有形产品,可以买入和卖出。究竟生成什么文件是由输出作业文件定义的,而输出作业文件则由当前的配置调用。
  • 提交发布
    在这个阶段,所生成的输出和设计文档的快照都以原子束的形式存储于发布保险库。如果当前的设计版本——假设版本号是1.A.1——已被发布,那么系统不允许它再被发布, 所以其它任何发布的版本都不可能偶然地覆盖修订版1.A.1。

在不断修订和发布中得到完善

当然,你很少只经过第一次修订就能完成设计,甚至经过第二次修订都无法完成。

一旦你(从发布模式)返回到设计模式,修订状态就从‘规划中’变为‘设计新修订’——我们有一个新发布,用当前修订号标识。这只是发布过程经历的各种状态之一。可通过发布保险库对发布进行查看和管理,将发布从‘设计新修订’升级为‘原型’状态——产品开发过程的下一逻辑步骤。或者,如果因为某种原因出了岔子,也可变成‘放弃’状态。

另一方面,如果我们在实际制造原型前发现了一个设计上的错误,我们就规划一个新的修订版,而不是把当前状态提升为‘原型’。通过‘创建规划修订’,可以创建出一个新的设计修订版(在本例中是1.A.2),并能进行相应的开发。假设之后它已顺利通过原型阶段,工作正常,并已通过了所有要求的测试,那么下一个出现的发布状态就是生产——也就是说,它会被用于生产。

[missing FMS file]
条目
修订的概念:状态从‘设计新修订’提升为‘原型’,最后是‘生产中’。

现在假设我们根据此修订版生产的产品的当前模型因为某种原因不再有效——它已完成使命,或只是到了升级产品模型的时候了。因此,我们需要规划一个新发布版本,以便在更新设计后建立一个新的原型。

为了做到这一点,我们将建立一个规划中的新原型。然后,假设原型成功了,我们转到生产阶段,然后我们想为该项目规划一个新的 模型, 那么我们用‘建立规划中的模型’。这相当于说,一家汽车制造商拥有特定车型的一个升级版的新模型。请注意,我们还能创建一件全新的规划项目,例如产品的一种变体,它被赋予一个唯一的新条目ID,以及当前项目的描述和评论经过编辑后的版本。

简要总结一下,在这里我们有一个三级的修订方案:模型、样机和修订。

数据完整性可见且可问责

你可以利用保险库的面板和项目发布历史来追踪所有的修订和状态。

在这里,所选项目的全部修订历史表现为一个线性的发布时间表,让您可以监控修订工作的进展情况。可以浏览发布文档和设计快照,这样能简便迅速地看出特定的修订版是用哪些文档生成的,还可得到一个发布版本的相关材料清单(BOM)信息,并且可以打开该发布版本生成的输出。

[missing FMS file]
这完全是关于使设计发布数据的流程可控、可管理。配置是设计域和生产域之间的可配置链接,由自动验证来控制流程。

利用这些概念、储存位置和管理工具,Altium Designer的新设计发布过程使设计向外部世界的发布具有高可信度和数据完整性。这个过程很容易重复,且完全可审查、可跟踪,同时也使设计的发布足够灵活,能完全按照你的需要发布。

结果是实现了一个设计数据管理模式,它允许对设计世界和最终负责建造实际产品的供应链之间的联系进行正式定义。这一模型将设计数据映射到供应链实际要建造的生产项目的特定修订版。它解放了电子设计人员,使他们集中精力完成核心任务:开发创新性方法来解决问题或者丰富产品用户的生活。

► 2010年6月Envision主页