写点什么

版本控制 | 想要成为硬件设计高手?最佳实践了解一下!

  • 2022-11-09
    上海
  • 本文字数:2183 字

    阅读完需:约 7 分钟

版本控制 | 想要成为硬件设计高手?最佳实践了解一下!

硬件电路是电路系统的重要组成部分,其设计是否合理会直接影响电路系统的性能。本篇文章将介绍硬件设计挑战的独特之处、分支/合并问题以及推荐的工作流程,帮助硬件团队更好地与其他团队协作并加速交付。

龙智作为 DevSecOps 研发安全运营一体化解决方案供应商、Perforce 授权合作伙伴,持续关注研发生命周期管理领域动态与发展,为您提高最新洞察与最佳实践参考,帮助大型开发团队更好地进行研发资产管理,加强协作,提升研发效率。立即联系我们,了解集成电路芯片研发领域的数字资产管理及生命周期管理的最佳实践与案例。


硬件设计团队通常由各种不同学科背景的设计师组成。这些设计师每个都管理着项目的不同方面,他们可能使用不同的工作流程,并生成大量不同的数据。像Perforce Helix Core这样的数据管理工具能协助您管理大量数据。


阅读本篇文章,您将了解如何将 Perforce Helix Core 与 IP 生命周期管理平台(如Methodics IPLM)结合使用,来解决硬件设计项目中的独特挑战。


硬件设计面临的挑战


由于硬件设计中涉及到所有不同的角色和流程,因此给开发项目带来了以下这几种独特的挑战:


  1. 混合资产:项目中混合着二进制和 ASCII 文件,尤其容易出现在混合信号设计中。

  2. 团队规模大:项目团队中的每个子团队有 10 名以上的成员,整个项目可能有 50-100 名以上的成员。

  3. 文件数量大:项目硬件工作空间中包含大大小小的文件,数量往往达到 1 万甚至 10 万以上。

  4. 漫长而复杂的流程:从验证、合成和 P&R,到清理 LVS,再到回归运行,每个流程都需要数小时、数天甚至数周。

  5. 巨大的工作空间:10–100GB 的工作空间很常见。


在使用像Perforce Helix Core这样的数据管理系统前,您需要着重考虑以上这些硬件设计的所有特征。


硬件设计中的分支/合并问题


分支和合并是软件开发中的一种常见范式。在这种类型的工作流中,项目成员从主干代码库中创建分支,然后修改该分支中的文件,不会影响其他更改。当更改准备好与团队中的其他成员共享时,再把分支合并回主干。


虽然表面上看起来没什么问题,但由于硬件设计与典型的软件开发不同,它的独特特征让团队难以利用分支/合并工作流。


大型团队


硬件领域中,由 20-50 名设计师组成的团队很常见。这就需要流程来管理许多分支,并将它们合并回主干。所有这些分支和合并的管理很快就成为一个难题。


获得干净的合并点变得越来越难,这需要协商合并过程,并进行人为限制,合并的组织管理会主导开发过程。


混合信号开发——无法合并二进制文件


不能合并二进制文件,如果发生冲突,用户必须在两个版本中二选一。这意味着解决冲突要么会导致工作内容丢失,要么需要手动重做,将非冲突的更改子集重新合并回文件中。


共享工作文件


在混合信号设计中,不同的人必须处理相同的物理文件才能完成工作(例如布局工程师)。但是,如果用户不在自己的分支中工作,就无法知道有没有别的用户以相互冲突的方式修改了同一个文件,这将导致合并问题,还会白费之前的努力。他们依靠Perforce Helix Core文件锁来解决这个问题。


冗长的工作流程


许多硬件设计工作流程需要很长时间才能完成。回归可以持续好几天,功能添加和 bug 修复可能需要几天或几周的时间。


如果用户长时间不在自己的分支上工作,他们的分支很快就会与主干上的其他更改和合并完全不同步。将这些分支重新同步涉及的工作量过大,导致用户推迟同步,分支上积累的更改越来越多,主干转移也越来越多。当用户尝试同步的时候,这已经变成了一个会浪费很多天时间的工作,让用户充满挫败感的同时损失了生产力。


大文件数量和庞大的工作空间


由于硬件工作空间中的文件数量一般都很庞大,因此创建项目所需的所有分支可能很困难(而且很麻烦)。此外,由于工作空间很大,创建更多分支会导致存储库的大小膨胀到无法管理的程度。


硬件设计团队的推荐工作流程


如上所述,硬件设计环境中的生产力可能会被分支/合并流程所阻碍。团队本来是出于好意采用这种流程,结果发现他们的时间被合并冲突和组织管理所支配,以至于没法完成重要的工作。将Methodics IPLMHelix Core结合使用可以解决这些挑战。


在这种情况下,最合适的推荐流程是限制分支的数量,让多个用户在主干或是一小组长期存在的分支上进行协作。


这些功能分支并不一定要合并回主干,它们一般用于进行在该功能分支的上下文中进行一些有意义的自定义更改。大部分的开发工作还是在主干上进行。


用户应该考虑采用基于版本的流程,同时主动地、程序化地管理 Helix 命令行客户端 ViewSpec,来克服硬件设计的独特挑战。


  • 基于发布的流程解决了分支/合并管理、二进制文件合并和共享工作文件的问题。

  • 主动管理 Helix 命令行客户端 ViewSpec,能够解决与大量工作空间和大量文件相关的问题。


作者简介: 



迈克·芒西(Michael Munsey)

营销、企业战略和业务发展副总裁,Perforce Methodics IPLM

迈克·芒西在工程设计自动化和半导体公司拥有超过 25 年的经验。在加入 Methodics 之前,迈克是 Dassault Systemes 半导体、软件生命周期管理和物联网的战略和产品营销高级总监。除了战略计划外,他还负责业务发展、合作伙伴关系以及汽车电子和并购等跨行业计划。迈克的职业生涯开始于 IBM,是一名 ASIC 设计师,之后转到 EDA,他曾在营销、销售和业务开发方面担任过各种高级和执行级别的职位。他是 Sente 和 Silicon Dimensions 创始团队的成员,还曾在 Cadence、VIEWLogic 和 Tanner EDA 等知名公司工作。迈克获得了塔夫茨大学电气工程学士学位。


文章来源:https://bit.ly/3DUacEw


用户头像

还未添加个人签名 2021-05-18 加入

分享DevSecOps解决方案最新动态,帮助您学习与使用Atlassian, Perforce, Whitesource, Cloudbees及龙智自研产品,实现软件研发的高度协同与自动化,提高交付效率与质量,并确保开发过程可追溯、可度量。

评论

发布
暂无评论
版本控制 | 想要成为硬件设计高手?最佳实践了解一下!_版本控制_龙智—DevSecOps解决方案_InfoQ写作社区