中文 英语

扩展模拟

模拟性能是否停滞不前,业界正在采取什么措施来纠正它?

受欢迎程度

如果没有功能模拟,半导体行业就不会有今天的发展,但业内一些人认为,它没有得到应有的关注和研究,导致性能停滞。其他人不同意,指出设计尺寸增加了数量级,而设计时间却缩短了,指出模拟仍然是工作的合适工具。

在最近一次DVCon面板美国国防部高级研究计划局(DARPA)微系统技术办公室的项目经理塞尔日·利夫(Serge Leef)说,模拟器的性能自1988年以来基本上停滞不前,这一说法捅了马蜂窝。“我们不能指望处理器时钟速率持续提高,因此模拟性能已经停滞。我们需要重新思考模拟内核,使其更好地映射到云上,这样它就可以随着实例的增加而线性扩展,这样我们就可以使用HPC策略。”

工业界解决这个问题的方法取决于验证正在执行的任务。对于调试运行,您希望单个模拟尽可能快地到达故障点。对于回归运行,您希望尽可能快地知道在多次运行中是否发生了更改。

对于单次运行,您可以在设计本身中利用细粒度并行性,其中并发活动由多个核心处理。对于包含许多单独模拟的回归运行,您可以将操作分布到许多机器上。像回归这样的验证任务最近受到了更多的关注。AI/ML技术正在被引入,以优化运行,确保在最短时间内获得显著结果。

通用计算机的结构并不适合模拟。模拟需要非常大的内存,其中访问模式确实是随机的。这意味着缓存是无效的,在某些情况下,可能会降低模拟器的速度。因此,硬件辅助验证在早期出现也就不足为奇了。今天,它占据了用于核查的全部资金的很大一部分。

模拟器性能可能是错误的关注点。“最终,设计师们追求的是生产力,”安尼卡·马尔霍特拉(Anika Malhotra)说,她是at验证组的高级产品营销经理Synopsys对此.“他们正在为调试运行寻找更快的周转时间,或完全回归,或更快的覆盖收敛。这不仅仅是模拟。云的可用性使越来越多的客户可以使用解决方案。”

今天,模拟器比以前复杂得多。“在模拟器中有很多专门的发动机,这意味着当我们谈论性能时,我们谈论它的许多方面,”Amit Dua,高级产品工程组主管节奏.“这是关于回归吞吐量,这是关于RTL表现,它是关于testbench性能,是关于你如何解决约束和覆盖状态空间,是关于门级模拟。模拟器引擎必须是智能的,并针对这些进行优化。先进的、专门的模拟引擎补充了单核性能。”

西蒙·大卫曼,首席执行官治之软件他专注于模拟领域超过35年,并为大多数已取得的进展做出了贡献。1988年,Verilog XL刚刚发布。在门级别上,这比其他模拟器快10到20倍。1993年的VCS比Verilog快10到40倍,比一些VHDL模拟器快50到100倍。SystemVerilog引入位,启用双态模拟。这为多级逻辑提供了另一个数量级的性能提升。然后是层次结构、接口和捆绑方面的抽象。从那时起,设计抽象就没有改进过。我们试图引入状态机语言和协议语言,这可以改善模拟,但从可用性和进化的角度来看,它们并不实用。”

虽然基本的门级模拟器自1988年以来没有太大变化,但世界对模拟的要求已经发生了变化。已经有许多新的算法、技术和产品解决了其他问题。

跑得更快
如果是为了调试而执行模拟,则可能希望该模拟运行得越快越好。Synopsys的马尔霍特拉说:“如果你的设计可以并行化,那么单个模拟的高性能是可以实现的。”“例如,如果你有一个被复制8次的设计,它们可以并行模拟,你可以获得8倍的吞吐量。性能的提高取决于是否有足够的活动并行发生。这意味着活动不依赖于其他活动,并且在设计中没有顺序。细粒度并行性工作在具有多核的单机上。如果您在同一台机器上,则通信开销非常低。但如果你想在多台机器上运行,这就是云提供给你的,你就需要考虑分布式解决方案。”

理论上的并行化并不总能实现。Metrics总裁兼首席执行官Doug Letcher表示:“市场上有来自主要供应商的多核模拟器,但这些模拟器的规模都不能超过信号芯片上的核心。“即使在那里,收益也是有限的,并且依赖于设计。这当然不是线性缩放。”

越来越多的设计可以利用并行性。Imperas公司的大卫曼说:“阿姆达尔定律适用于所有事物之间紧密相连的情况。“在一个人工智能处理器中,如果你有一个处理器处理整个卷积平面,你有很多这样的处理器,你可以并行运行它们。它们只是与数据帧之间的连接非常松散,所以没有紧密的同步合作。”

模拟器能够检测设计风格。Cadence的Dua说:“我们继续在内核中添加优化,以适应新的建模风格、新的flops和latch,以及新的库单元格——特别是随着功率感知单元格的加入。”“有很多设计都有很多可复制性,尤其是在现代人工智能芯片中。内核需要是智能的,并在设计中检测复制。然后我们可以做共享优化。这对于控制这些大型soc模拟作业的速度和内存需求是必要的。这些都是在模拟产品中不断发生的引擎级优化。”

还有其他类型的模拟,其中可以添加特定的优化。Dua补充道:“如果在给定的模拟时间步骤中有很多活动,那么就有机会将其并行化。“这些高活性测试和DFT模拟是一个完美的例子,我们看到模拟速度加快了3倍到5倍。”

有可能实现数量级的加速吗?Metrics的Letcher说:“开发替代内核架构的学术研究由来已久。“这些技术还没有取得任何商业上的成功,而且在现实世界的设计中仍然存在限制收益的挑战。业界在SystemVerilog内核上投入了如此多的资金,如果没有性能上的巨大飞跃,就很难证明切换到不兼容的东西是正确的,而到目前为止,这一点还不明显。”

很多时候,价值并不在于模拟器本身,而在于它周围的环境。“模拟器只是根据输入计算你的逻辑门的输出是什么,”该公司验证主管菲利普•卢克(Philippe Luc)表示Codasip.“这项工作相当简单,而且完全是通用的。使用波形进行调试、跟踪分析、带有原理图的查看器——这些都是商业工具提供的功能示例,并增加了重要的价值。调试UVM就更复杂了。就方法论本身而言,全随机过于随机,定向测试过于直接。只有考虑到我们正在设计的硬件,我们才知道有趣的序列是什么,以及我们希望将验证工作集中在哪里。”

加速验证
虽然单个模拟器的性能对于某些任务很重要,但在模拟器上花费的大部分时间都用于执行诸如回归之类的任务。Malhotra说:“当我们谈论使用高性能计算(HPC)进行模拟时,你试图运行数千个模拟,问题是这些模拟可以多快完成。”“这与询问完成一个模拟任务需要多长时间是完全不同的。将模拟移动到确实需要对基础设施和工具进行一些增强,以便能够支持在如此大的容量下运行。重点在于如何加速模拟工作流程.”

Dua表示同意。“这是关于在最短的时间和最低的价格内找到漏洞。当我们开始从这个角度思考时,您可以提出一堆解决方案来提高回归吞吐量。我们可以管理如何将你的工作发送到云中的适当服务器上,这个领域有更多的机会。”

在今天的验证方法,一个重要的组件是约束求解器。“你的回归可能包含1000个测试,并达到60%或70%的覆盖率,”Malhotra说。他说:“你无法找出为什么有些事情没有被涵盖,因为你需要对刺激方案的分布有更多的了解或可见性。你可能过度约束了某些东西。在工具中有理解,也有学习。工具可以自动识别测试,或者分布将帮助您确定正确的测试,这将帮助您提高覆盖率或减少周转时间。”

目前的一个发展领域是通过确保包括最重要的情况来最大限度地提高核查任务的效力。Dua说:“当你谈论回归吞吐量时,你可以使用机器学习技术,在整个模拟回归中迭代学习。“然后在验证环境中分析模式,指导仿真引擎在减少仿真周期的情况下基本实现匹配覆盖。”

机器学习技巧可以让你取得更好的成绩报道或者在更少的周期内达到相同的覆盖率。这将直接影响验证效率,而不会改善模拟器性能。

得到援助
模拟并不是一种适用于功能验证的所有方面的技术。验证方法已经发展到可以识别其中一些,例如clock-domain穿越问题,并应用专用的形式化引擎。

专用引擎做得更好,减轻了模拟的负担。的营销主管Rob van Blommestein表示:“模拟总是会遗漏一些特殊情况下的bugOneSpin解决方案.“即使采用了多次模拟运行,漏洞也可能会逃脱。形式化不仅提供了详尽的验证,以确保检测到关键的角落bug,而且还允许全面覆盖整个设计。在设计和验证过程的早期使用形式化,将减轻模拟运行的压力,使模拟可以集中在非极端情况的问题上。”

业界一直都意识到通用计算并不特别适合模拟。大卫曼说:“1988年,IBM已经有了一个模拟加速器。“对于最大的芯片来说,模拟加速一直是必要的。我不认为在没有模拟器的情况下,任何大块的硅片都能被制造出来。这些只是使用FPGA或自定义处理器的模拟器。我们无法用软件模拟20亿个门的设计,所以只能用硬件。”

fpga几乎从发明之日起就被用于模拟加速。Xilinx设备为大多数早期硬件盒提供动力,今天仍然可以在其中一些硬件盒中找到。硬件原型最近变得越来越重要,这些原型由Xilinx设备提供支持。虽然早期的模拟器很难使用,但现代工具链意味着用户通常不知道他们的模拟是在专用的硬件引擎上运行的。没有任何云解决方案可能接近这些设备的性能,但每种解决方案都在某些任务上表现出色。

模拟不是万能的解决方案。“对于早期软件开发和系统测试的预期目的来说,模拟非常有用,”Letcher说。“这对于加速DV模拟并不是很好——至少在当前的模拟器中不是,因为可以有效运行的东西受到了限制。模拟器充其量是一种非常昂贵且难以使用的解决方案。硬件加速模拟的替代形式是可能的。”

该行业还开发了中间解决方案和混合解决方案。马尔霍特拉说:“有些人在寻找介于两者之间的东西。“你并不完全处于模拟世界中,但你也不是在模拟世界中。你在中间,你可以实现,也许不是1000倍,但可能是100倍到500倍。这就是你的设计的一部分是模拟的,而另一部分是在模拟器上运行的。”

这种技术普遍应用的一个领域是处理器模型。大卫曼说:“我们在指令级别模拟处理器,在那里我们甚至不用担心它的微架构。”“我们以软件看到的方式模拟它,所以我们可以以与硬件运行它们完全相同的方式运行生产二进制文件。今天,通过使用抽象,我可以在笔记本电脑上的模拟器中在10秒钟内启动Linux。如果我在1988年使用Verilog模拟器进行尝试,那将需要大约10个月的时间。”

行业成功
这个行业还能做得更多吗?可能。杜瓦说:“回到1988年,我们的芯片晶体管数量刚刚接近100万个。“今天,有数百亿个晶体管。晶体管计数可能不是唯一的度量,特别是对于主要发生在RTL的功能验证。但它给了我们一个想法,自1988年以来,设计复杂性增加了两到三个数量级,而从那时起,tapout周期缩短了。”

其他人也同意。马尔霍特拉说:“在80年代,许多芯片因为故障而被重新旋转。“如今,RTL问题在设计过程的早期就被发现了。人们希望看到的是对测试平台的完全可见性。他们想要更快地分析根本原因。这就是AI和ML将帮助您在更快的时间内调试或找到根本原因的地方。”

有没有更好的办法?大卫曼说:“如果你需要一种新的算法,钱不一定是解决问题的方法。“我们需要的是大量的研究,其中90%是有趣的,但在实际中没有用处。有人可能会想出一些东西来改变做事的方式,但我不相信它会在本土发生。EDA的突破是由大学里的研究人员完成的,然后发展成公司。”

但是现在很少有大学对函数模拟感兴趣,激发研究的是声望,而不是金钱。

大卫曼总结道:“摩尔定律意味着挑战总是存在的,我想说的是,我们能生产出有效的硅实在是太棒了。”“这意味着模拟做得很好。如果我们没有模拟,这些东西会在哪里?”



1评论

卢卡·德·桑蒂斯 说:

嗨,Brian,有没有提到Davidmann的声明“设计抽象性从那时起就没有改进。我们试图引入状态机语言和协议语言”?
谢谢你!

留下回复


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

Baidu