中文 英语

验证的拐点

验证的未来会看起来像什么?在验证团队中被置于验证团队的新要求导致行业深入了解可能性。

受欢迎程度

功能性核查正接近一个转折点,这是由于不断增加的复杂性和它与其他学科混杂在一起的许多触角所导致的。需要新的抽象或不同的方法来处理这些问题。

作为验证工程师不再足够了,除了那些关注的块级验证。在验证中花费的大部分时间和精力现在都专注于芯片,系统,性能,电力,安全性,安全性,以及越来越多的关注点,其中最新是与机器学习相关联的。

确认始终一直在追赶。设计有一个20年的脑袋。在早期,测试进行设计,未经验证。这不是今天仍然使用的术语,因为引入了模拟以虚拟化物理测试过程。测试人员大而且昂贵,因此公司无法在这些机器上开发测试载体套件。相反,能够在设计上进行这一点,因为它正在开发允许以更具成本效益的方式开发更好的测试套件。

即使是我们与验证相关联的第一种语言也是为了帮助改善测试开发过程。有些人声称验证的诞生发生了Verilog,一种能够描述硬件的语言,也可以用来定义testbench。另一些人认为,只有当第一个约束随机测试模式生成器被开发出来时,验证才开始。不管怎样,核查工作从那以后一直在迎头赶上,目前还不清楚它是否正在取得进展。

在最简单的层面上,可以用数学方法来看待它。该公司副总裁兼总经理保罗?坎宁安(Paul Cunningham)表示:“如果你把大门数量翻倍,你就等于把整个州的空间平方了。节奏。他说:“核实的轨迹与其他任何事情都不同,这是存在的。随着我们不断地把更多的计算放到硅上,验证问题将会超出界限。如果你每18个月增加一倍的门数,那已经是指数增长了。但如果你每18个月将复杂度平方,就会得到双倍指数。”

详尽的核查已经有很长一段时间不可能了。“你必须回过头来看看仿真和验证之间的区别,”该公司设计验证技术营销总监尼尔•汉德表示西门子EDA。“如今,验证利用了一整套工具,包括数据分析,你要看的是如何获取这一大堆数据,并使其对验证工程师具有可操作性。它一直在膨胀,一直在膨胀。对于任何重要的系统,您永远不会检查所有内容。它会有一个你不能完全覆盖的状态空间。你需要的是能让你专注于你应该关注的地方的工具和技术。”

平衡是必要的。“People are running formal, simulations on a farm, emulators, FPGAs, they’ll be doing stuff by hand, they’ll be doing stuff automatically, they’ll be doing continuous integration, all with the remit of trying to get something hugely complicated, with several dimensions, out the door in a way that doesn’t come back to cost the company money or lose the company time,” says Colin McKellar, vice president of verification platforms for想象力技术。“由于复杂性迅速增加,但不一定备份收入或投资的相应增加,验证和验证团队正在变得更加挑战,需要更多的自动化和更多能够快速遍历数据,以及更多的帮助流。”

增加范围
增加的复杂性会影响功能验证,但这并不是今天验证团队肩部的唯一任务。“它不再是功能验证,”想象力的曼德拉尔说。“事实上,它没有一段时间。电源,性能,驾驶员稳定,驾驶员质量,安全影响,功能安全都是巨大的挑战。功能验证非常迅速地变为更大的东西,而不一定具有跟上的工具,而且群体的专家们参与了这一过程。“

在某些情况下,这些任务被推出给其他组。“有人在做安全验证,并且他们不是那些进行功能验证的人,”西门子的手说。“他们和那些在一起的人都不一样正式验证。他们不是同一个人电源验证。我们看到很多用户都经历了这种分裂。规模较小的公司面临的挑战是,它们负担不起不同的集团。规模较小的公司要求其核查工程师承担的工作量比过去多得多。”

这些问题的范围没有很好地界定。Cadence的Cunningham说:“无论是与安全相关的需求,还是与安全相关的需求,还是与可靠性相关的需求,你都有一个来自原始需求的瀑布式流程。”“你在软件级别上尝试了多少来验证和验证这些需求?”它们有多少被分解成芯片级的需求?你可以看到功能安全的二元性,你有安全机制来确保你在软件测试级别上满足你的安全需求,或者你可以尝试将它们分解成单元级别的需求,并在芯片级别上检查它们。”

功能安全需要一致的努力。“对于安全认证,验证此设备是否有效是不够的,”Darko Tomusilovic说,验证总监vTool.。“我们也必须证明我们尊重该程序,我们可以重现所有错误,我们记录了所有流程的所有审查。这增加了一个已经非常困难的职业的复杂性。验证必须测试功能集,也应尝试打破功能集。“

安全进一步扩展了其中一些概念。Vtool的高级验证经理Olivera Stojanovic说:“你必须验证支持所需功能所必需的案例,但你也必须验证没有所需特权的案例。”“你的工作增加了一倍多。你需要从积极和消极两方面检查所有的组合。”

侧通道攻击被认为是,因为这需要关于实施的物理方面的亲密知识。“如果从硬件角度看它,如果从应用程序视点看它,那么它与从应用程序视点看起来的不同之处,”Mckellar说。“这意味着通过各种软件层,以及各种硬件块。这是一件非常具有挑战性的事情,可以验证和验证。“

在集成IP块时,这也是一个有趣的挑战。“你如何向客户证明,如果你把所有这些组件用这种方式紧固在一起,就能保证安全性?””麦克拉补充道。“这有可能吗?”考虑到行业的本质,以及快速高效地开发产品的愿望,这就带来了各种各样的挑战。”

芯片或产品发货后,验证不再终止。“当我们谈到整个产品生命周期的持续验证时,我们必须采取一种全面的方法来验证,”Rob van Blommestein说奥克森解决方案。“我们需要着眼于解决方案,不仅要验证功能行为,还要验证安全性和安全方面,而仅仅是模拟不能解决问题。如果要实现适当的核查结束,正式应是核查难题的一个组成部分。设计团队应该尽早为验证制定计划,以便在太晚和延迟发生之前发现特定的bug,包括紧急情况下的bug。设计和验证团队应该与安全工程师和安全工程师密切合作,以实现这一目标。”

域名侵犯
另一个因素是软件与验证之间的扩展重叠。“几乎每个芯片和您验证的每个设备都有至少一个,如果不是更多的,则处理器,”VTool的TomusIlevic说。“在硅预验证阶段中,您需要运行一些基本软件和系统方案,以确保设备按预期工作。这涉及我们开发在我们的仿真环境中运行的软件驱动程序,并且与为最终产品开发的嵌入式软件开发人员提供的软件驱动程序。“

责任也与这些变化一起转化。“团队每年都在验证工程师,但还有越来越多的软件内容,”Cunningham说。“他们正在寻找软件,验证团队的挑战更模糊,谁承担了哪些责任。如果某些东西是纯软件,那么您在切换点处有合同。你必须划分某个地方,这是一种相当合理的方式,你在两支球队之间提出的那些合同。谁拥有什么和谁对此负责?“

发展如RISC-V让这变得更困难。汉德说:“当你看到像RISC-V这样的东西时,人们可以改变指令集,你不仅仅是在看我的软件是否工作。”“现在你会问,‘我的软件是否正常工作,处理器是否在我的约束条件下按照我的预期运行?’这并不总是明确谁的责任。”

这正在改变一些团队的动态。Vtool的Stojanovic说:“软件团队的人会去找验证工程师,问他们问题,而不是问设计者。这是因为验证工程师更熟悉如何使用DUT,如何配置它,以及启用某些功能所需的过程。他们被认为是功能建筑师,了解整个系统。”

拐点
一些业内人士认为,我们正在到达一个拐点。麦凯勒说:“通过不断增加的核查来增强信心,这与我们所需要的恰恰相反。”“相反,我们应该问,‘我们应该停止跑步什么?我们如何提高生成数据点的效率?我们需要从成本的角度来管理,从环境的角度来管理。我们需要在这方面取得良好的平衡。”

它需要结构性变化。“验证不再独自站立,”手说。“验证是该系统设计过程的一部分。我们需要将验证链接到系统的设计中,我们正在通过需求管理来实现这一点。它并不一定意味着系统设计人员需要了解验证,或者验证人员需要了解系统设计,但他们需要有办法交换数据。“

它需要新技术。“用于传统功能验证的技术不会扩展到SOC水平,”Cunningham说。“验证必须改变为不同的抽象级别。您不能只做信号级,约束随机UVM TestBenches,您需要在芯片上运行真正的软件工作负载并尝试验证它是否正常。单位级别方法是不可能的。这不是易行的。“

提高抽象级别
在过去,该行业已经看着提高水平抽象解决复杂的问题。这条道路并不总是被采纳的。在设计方面,通过集成IP概念的封装胜过了许多功能的高级合成。

在验证,uvm.增加了越来越多的抽象概念。“我们有UVM框架,它允许我们做更多的抽象,”Hand说。“最近,便携式刺激给我们另一个抽象级别。它始终迁移到更高级别的抽象。变化似乎真的慢慢发生,但在后智,它看起来像一场革命。我们现在是其中一个,我们将转向更高层次的抽象。我们用UVM完成了它,我们将通过便携式刺激进行。“

许多人仍然不熟悉便携式刺激。坎宁安说:“它正在努力创建一种新的编码测试语言,这种语言非常针对系统级。”它的目标是介于运行纯软件和编写传统的SystemVerilog/UVM测试台之间的中间区域。这是事务级的随机化。描述场景,本质上是行为的图或状态机。这些行为可以任意抽象。图中的弧线可以发送一个数据包或处理一条信息。该语言允许您将这些抽象场景描述为行为的集合。然后将它们编译为在SoC中的处理器上运行的软件程序,并执行场景的不同部分。或者它可以编译成信号级别的刺激,你将注入总线或通过外设。 It can be a layer that wraps around and feeds into a UVM or signal-level testbench.”

思考这一点作为系统级模型可以实现更具结构性的变化。“这可能是圣杯,”Stojanovic说。“如果我们可以以某种方式使用验证码来创建模型,您正在实现类似于设计的内容。如果验证环境在RTL之前准备就绪,可以开始使用这些模拟模型来实现软件测试。“

该模型将使未来的变化能够实现。“它可以是您在尝试实现的内容的模型,或者在一些高水平的硬件或两者组合的模型中,”Mckellar说。“客户越来越多地要求在项目开始时准确,快速的模型。他们需要他们制作硬件架构决策和软件架构决策。如果我们可以提前生成模型,那么我们可以将它们交给客户的客户,这是编写应用程序并尝试解决这些计算核心的使用。我应该在图形核心上运行这个吗?我应该在神经网络加速器上运行这个吗?我应该在CPU上运行它或将其卸载到DSP吗?如果他们在进程开始时得到了错误,他们可能会有从来没有表现表现的软件,因为他们根据错误的假设花了他们所有的时间写作。一切都是因为他们没有正确的型号。“

但我们需要保持开放的心态。“小心,可以扩展功能验证,为绩效和安全等其他领域提供信心,”中央工程集团丹尼尔沙索德克,建筑师兼研究手臂。“然而,这并不总是最好的方法,因为使用不同类型的抽象可以更快地提供更好的结果。例如,在信息流方面可以更容易验证安全性,而不是尝试建模实现的细节。此外,验证功能安全或功率等功能需要额外的功能,用于用于功能验证。因此,验证IP需要多个流量和工具,以确保所有区域都已正确解决。“

麦凯勒也在思考同样的问题。“为了功能安全,我们正试图改变你分析数据的方式。通过跳出固有思维模式,思考如何生成数据。”

结论
验证很长一段时间已经受到压力。奇迹般地,随着时间的推移,芯片故障率没有显着增加。这意味着今天存在的工具和流程,虽然不完美,正在做足够的工作。

然而,我们不应该停止寻找更好的解决方案。继续朝着我们一直在走的方向前进,正在引起新的环境问题,而对核查小组提出的额外要求正开始使核查小组之间的责任变得混乱。这个行业正在越来越多地寻找我们可以做得更好的方法,而未来是什么样子还不清楚。

相关的
蛮力分析不跟上IC复杂性
如何确保你已经处理了设计中最重要的问题,因为找到这些点变得越来越重要。
伸展工程师
工程师的作用正在发生变化,如果他们保持有价值的团队球员,他们需要拿起新技能。他们可以进入几个方向。
RISC-V验证挑战传播
连续设计创新增加了验证复杂性,并推动更多公司实际做到这一点。
硬件辅助验证可避免吗?
仿真不再满足于系统级验证的任务,但是如果您没有提前进行充分的计划,那么切换到硬件辅助验证可能会导致一些意外。



发表评论


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