中文 英语
18.luck新利
的意见

数字设计的持续集成

将敏捷方法应用于硬件开发的挑战和好处。

受欢迎程度

文/ Christian Skubich, Nico Peter

2001年,敏捷软件开发宣言[1]为许多现代软件开发过程奠定了基础。20年后的今天,敏捷方法在许多领域得到了广泛的应用。在研究参与者中现状(已扩展)敏捷2020[2],只有9%仍然依赖经典的项目管理方法。

敏捷方法的一个核心元素是持续变化。只有在尽可能早地识别出变更带来的潜在问题时,这才有效。由于这个原因,持续集成(CI)已经成为软件开发中必不可少的工具。这涉及到与自动化流程频繁集成变更和测试。附加的步骤,例如生成度量、文档或者甚至交付构建,可能是所谓CI管道的一部分。

这种方法提供了许多优点,例如:

  • 早期识别集成问题,
  • 最小化识别和纠正错误所需的时间,以及
  • 更简单的持续部署实现。

通过这种方式,单个更改的成本降低了,并且更容易适应不断变化的技术条件或需求。

然而,与软件开发相反,CI目前还不是硬件开发过程的标准组成部分。尽管与软件开发有许多相似之处,但同样适用于asic和fpga的数字设计。这有很多原因:CI系统通常专注于软件开发,因为该领域的用户数量明显更高。同时,依赖于商业EDA软件的设计过程使得CI系统的引入变得复杂。在软件开发中,编译器调用通常“仅”消耗计算时间,而硬件合成则需要(昂贵的!)许可证。最后,为每个代码更改执行完整的综合可能代价太大。在硬件设计测试期间,模拟的计算费用是除许可成本之外的另一个成本因素。在这里,完成测试套件所需的时间也有问题——毕竟,必须尽早识别集成问题。基于gui的工作流是硬件开发中仍然经常遇到的另一个障碍。

在硬件开发中,协调开发过程和CI系统是必要的:测试时间必须保持在合理的范围内,工具必须由脚本控制,工作流必须是可自动化的。使用物理硬件(例如基于fpga的硬件)进行更广泛的测试也需要资源管理,因为硬件经常只能在一次测试运行中使用。必须准备好用于评估项目进度、测试覆盖率或代码质量的生成度量,并将其信息可视化。

在数字设计中使用CI系统肯定会有回报。复杂的流程可以自动化,并且可以定期测试硬件和软件的集成。真正的硬件甚至可以用于测试——包括手动测试无法实现的测试范围。例如,对SoC硬件的单独更改可以通过FPGA原型上的相关软件以自动方式进行测试。这增加了对开发质量的信任。同时,项目进度的速度可以更准确地测量:度量标准为员工和项目经理提供了更大的透明度,并为持续的开发过程提供了所需的数据。

参考文献

[1]https://agilemanifesto.org/iso/en/manifesto.html

[2]https://www.hs-koblenz.de/en/bpm-labor/status-quo-scaled-agile-2020

Christian Skubich是Fraunhofer IIS EAS智能多传感器系统小组的成员。

Nico Peter是Fraunhofer IIS EAS智能多传感器系统小组的成员。



留下回复


(注:此名称将公开显示)

Baidu