中文 英语

使用软件方法在硬件验证

为开发硬件testbenches敏捷开发越来越受人关注,但仍面临着巨大的挑战。

受欢迎程度

敏捷方法,创造了以提高质量在软件代码中,越来越多的被应用于硬件验证。

这是少比它可能首先出现剧烈的转变。开发一个验证testbench主要是软件,和类似的方法可以用于减少bug的硬件。

“testbench只不过是一个大型软件项目,和完美的意义采取敏捷开发过程,”哈利说福斯特,首席科学家验证导师西门子的业务。“SystemVerilog Verilog和扩充新的面向对象的结构,促进现代代码集成,发展成testbench。在此之前,我们创建了测验仍出于C, c++, SystemC。”

它不是那么简单与敏捷开发方法,。“有很多硬件组想采用敏捷到硬件开发,但是敏捷最初从未想过在硬件方面,所以有差异,”福斯特说。

要理解为什么,它有助于记住敏捷开发的主要结构:

•个体和交互过程和工具。
•全面的文档的工作软件。
•客户协作合同谈判。
•响应变化胜过遵循计划。

“硬件开发过程包括很多工具和过程,这样做是为了确保重复性和质量,”福斯特说。”因此,敏捷的第一个关键方面,个体和交互流程和工具,成为一个问题。软件开发从未真正有那么多可重复性。我不能按一个按钮,得到相同的结果。更多的创意过程,所以有较少的软件开发工具和正式的比硬件开发过程。”

即便如此,许多敏捷开发过程的项目整合方面在世界的硬件,包括军事和高端服务器。“我知道一些硬件采用scrum敏捷框架的项目,特别是冲刺,所以当他们创造他们的RTL代码,做一点一点冲刺添加功能,”他说。“这是非常成功的。的另一件事真的是成功采用持续集成。”

虽然持续集成了一些成功在硬件的世界里,仍有问题。具体来说,持续集成之前,工程团队将开发RTL,然后同步多个签到,所以会有多个IPs的最后一天或每两天。然后综合集成的噩梦开始了,因为一些事情打破其他事情,和工程团队经常不知道为什么。

持续集成,在检查的时候,它通过回归测试。如果它不工作,别人可以继续工作,简化了调试过程。

“持续集成是一种自然符合敏捷,“说拉里•悟道系统中产品管理总监&验证群节奏。“当你正在调整,使这些变化,真正燃料的能力,而不是失去控制是一个持续集成,那里是一个非常坚实的测试和回归验证方法。作为正在发生变化,您可以快速验证看到你不打破东西,或者设计一个不稳定的地方。如果你做太多的改变没有验证,你可以把自己的不稳定和挖一个洞,你很难摆脱。这一点上,敏捷和持续集成或接近持续集成几乎要成功部署它。”

幸运的是,尽管采用的硬件可能是相对较新的世界,在这里工作已经发生了的过去二十年里,弗兰克Schirrmeister说,高级组仿真产品管理和营销主管,fpga原型和硬件/软件实现节奏。“一旦行业术语,它变得更容易谈论它,但它已经在使用模型的半导体公司持续很长一段时间。的概念能够早点开始集成的硬件和软件,然后在每一个变化,验证你没有打破任何之前的测试,然后进一步细化测试你在抽象的水平下降,增加更多的测试需要时间,需要增加更多的测试类型时机甚至门水平,类似这样的事情。现在是更好的捕捉到持续集成。”

这预示着采用敏捷方法和应用。

“从敏捷的角度来看,我们确实看到诸如scrum工程团队,例如,关注产品功能开发,“Shirrmeister说。“他们会说,‘这周,我们在这个冲刺关注,让我们看一看这三个特性。在这种情况下,我们在核实的情况,你有这个验证计划。在敏捷,也有焦点的验证随时间改变,你可以说,‘我现在专注于视频子系统。其中一些可以并行运行,但其他子系统得到证实。还有焦点非常类似于你所看到的在scrum或者sprint在敏捷方法。但更关键的软件部分,你需要确保你不要打破任何以前的测试的回归成长为你所做的。”

塞吉奥Marchese、技术营销经理OneSpin解决方案指出,他的公司已经采用了许多敏捷研发的技术。在硬件方面,虽然有一些共识,敏捷可以减少开发浪费和促进一个更合作的工作环境,采用有限。一个例外是验证,特别是,形式验证。”

验证工程师,他有很多的成功经验应用敏捷原则。“敏捷硬件开发的一个关键好处是,周转时间识别并修复一个错误,并验证新RTL版本,可以显著降低,从天分钟在复杂的项目中,”他说。(参见图1)。


图1:敏捷的优势。来源:OneSpin解决方案

正式的验证工具使这种类型的过程。“设计师可以使用正式的工具本身执行自动化的快速检查和探索复杂的设计功能不需要模拟testbench,“Marchese说。“他们也可以并肩工作与验证工程师开发端到端断言结对编程的形式,旨在提供正确的代码迭代。传统的最终衡量成功的标准是,非敏捷验证应该发现很少或根本没有错误。”

挑战
不过,这并不总是那么容易。

“虽然硬件社区有一个敏捷方法的兴趣越来越浓,得益于其成功的软件项目来说,很明显,敏捷方法不能应用于硬件项目没有适应,“Marchese说。“此外,公司旨在充分拥抱敏捷需要改变他们的工程文化,这是一个渐进的和复杂的过程。”

还有其他挑战。梅尔说,需要一个安全网,这是持续集成块。此外,重要的是不要忽略设计的路线图。

”这是一个真正的风险和敏捷,“悟道说。“你的日常操作实践说,“我们需要这么做,我们需要这样做,”这是非常,非常重要的高层上下文不丢失。团队应该说,‘等一下,我们创建这个产品,使用功能都有。不要落入陷阱的失去的目标,加倍努力。和验证计划需要领带回到需求跟踪。这些事情可以让你建立路线图上。”

另一个使组件进行持续集成工作是便携式刺激,Schirrmeister说。“验证重用的概念是巨大的在这种情况下,因为你不能开始重写相同的测试在一个新的环境一旦你是另一个三个月通过项目流。验证重用的数量肯定是未来将更加重要的东西,这使敏捷能够重用之前的验证测试,完善和加强他们。”

结论
可以肯定的是,敏捷过程正在不可避免的进入半导体设计和验证。

一般”,迭代设计和测试组件集成到持续地运行回归环境,”戴夫Kelf提到的,首席营销官Breker验证系统。“库如GitHub允许一定程度的自动化和基于云的环境将进一步改善这一过程。提供文摘testbenches操作系统层面,移植到不同的验证引擎将形成敏捷的支柱回归环境。单个元素的意图规范可能会选择目标具体设计组件,而收集全球覆盖率指标。”

这只是开始削弱设计世界,经过多年的讨论。

“敏捷是今天在验证,如果人们不这样做,他们应该看看它,“导师的福斯特说。“这是一个非常有效的方法来加速,变得更有效率,并提供客户想要的东西创建testbench。”



1评论

塞吉奥Marchese 说:

我写了这篇文章几年前。它是关于应用敏捷验证下两个RTL模块开发。

留下一个回复


(注意:这个名字会显示公开)

Baidu