彻底验证复杂的soc

有很多变量,验证复杂、异构设计是一项任务,有许多触手。

受欢迎程度

事情可能出错的数量在复杂的soc针对前沿应用程序是惊人的,而且没有迹象表明验证这些芯片的功能,预计将会变得更容易。

异构设计为前沿开发的应用程序,比如5 g,物联网,汽车和AI,现在本身的复杂系统。但他们也需要与其他系统在可预见的和可证明的方法对预期寿命和变量的条件下。这正是事情变得很复杂,因为芯片制造商不仅需要关注如何设计功能,但也确保设备是安全的,安全的,可信的。它必须按照预期的操作,即使在最不利的条件和不受不必要的或意外的干扰,是否意外或恶意的。

“数十亿门芯片和异构平台非常复杂,含有数以百万计的连接,模拟效率低下和不足,”罗布·范Blommestein说,营销主管OneSpin解决方案。“我们需要的是彻底的技术,可以处理大量的连接。如果我们看人工智能验证的应用程序利用浮点单元,这些设计必须考虑如何有效地验证浮点硬件,包括确保复杂的IEEE 754浮点标准得到满足。”

对于异构环境中使用行业功能安全是最重要的,关键是企业了解不同类型的故障以及它们如何影响设计。

“许多这样的设计也必须符合严格的安全标准,如ISO 26262还是- 254,”van Blommestein说。“设计师必须应对这些需求,。当说到安全与信任,正式的可以使用的方法。验证设计是否安全,信任需要证明没有额外的设计逻辑,缺乏对设计流程的修改。设计必须被证明是完全符合其提出规范和认证。”

通常,soc的无线物联网和人工智能应用程序构建分层次,使用IP块这可能是内部开发团队或从供应商购买。

“考虑这样一种情况:顶级SoC集成团队通知通过IP开发团队,IP的释放他们要带出一个严重的bug,新版本可用,“Amit Varde说,产品管理主管ClioSoft。“也许这个SoC的错误并不那么重要,他们是清晰的磁带,或者这个权证升级和重新验证IP用于SoC。无论哪种方式,使用设计管理系统,联系一个bug跟踪系统是至关重要的。”

要考虑全面,验证必须包括各种各样的技术和方法。需要使用各种验证工具和方法。

“这个过程可能开始与早期行为系统级验证在实际设计实现之前,“说Bipul Talukdar,北美的应用工程总监SmartDV。“最终通过块级仿真和块级别的正式产权验证,连接验证,X-propagation验证,和clock-domain穿越验证与多个时钟域设计。最后的步骤包括RTL和门电路级全芯片验证,全芯片模拟早期软件测试,系统启动模拟器,硅和fpga验证。”

复杂化、异构soc需要更多的验证热、机械和包装系统的水平。确保完全覆盖,以及成本/时间效率,验证流程复杂的soc应该与标准化验证集成流。包括coverage-based定量指标的签收,他补充说。

大小、应用程序和标准
在所有的大小起着重要的作用。人工智能芯片太大他们经常需要缝合,因为超过一个十字线的极限。相比之下,一个物联网芯片通常很小,更少的冗余,着重突出外部的交流。

此外,许多这些芯片也高度定制的。标准只是开始渗入到过去5克市场,这应有助于加速设计过程和添加一些可预测性。但对其他市场,标准可能存在I / O等功能,但不是其他部分的设计。例如,在人工智能算法的技术是如此的新几乎恒定的生产状态。

“5克,很多人都说,我们是标准化的方式,”让-玛丽•深色说,高级营销主任模拟部门导师,西门子业务。“是的,我们是来旅游的,但仍有一些进化了,部队的灵活性设计实现和设计验证和确认。同时,什么是非常不同的在这些大型系统不仅是大,但他们也需要在环境中大量的灵活性——快速灵活的扩展能力的大小。”

在人工智能,他解释说,你从一个小集群或小实体很快一个巨大的实体。“当你已经证实核心算法,这是一个扩展算法的问题非常大的系统来加快这一进程。他们规模很快,所以你必须要有灵活性,缩放操作。”

也有点不同的那些大型,复杂的芯片,系统软件内容变得非常,非常重要的。“5克,人们认为它只是协议的通信和有更多的带宽,所以他们需要检查,他们可以把这个通过带宽通信能力行,一切都没问题,”他说。“但我们开始看到Linux引导或者Android启动需要沟通。这意味着您需要查看您的最终软件的交互应用程序在您的硬件。这是好如果设计是小。如果设计是非常大的,它的复杂。对于汽车来说,是一样的。你听到汽车Linux和嵌入式操作系统的汽车非常不同的或集中在Android或Linux。因为这些复杂的芯片应该过程大量的传感器数据,他们也必须应对一个操作系统,这样一些软件可以被编程。”

将离开
在过去,左移位通常仅限于验证,特别是对于大型芯片用于服务器。使用这个概念现在蔓延。事实上,诺基亚已经公开表示,在5 g空间最大的挑战是左移位。你怎么左移位整个5 g的生态系统?这是什么意思?

“这意味着软件和硬件需要co-verified,这是非常复杂的系统是非常大的,”深色说。“汽车是一样的。如果你看看特斯拉宣布女性性功能障碍(完全无人驾驶)芯片,它非常有趣。Elon Musk基本上说,这是世界上最好的计算机芯片。他应该说这是世界上最好的电脑芯片对特斯拉的软件。如果你看看他的表现真的是定制的硬件设计工作的最佳所需的应用软件。是的,这是奇妙的特斯拉汽车,但它是完全无法使用另一辆车,完全无法使用另一个应用程序。这里是一样的与这些非常大的系统。他们定制的硬件和软件需要记住,交互是具有挑战性的,当你有数十亿计的晶体管和今天。最大的系统,客户使用我们的模拟器是在60亿年到80亿年盖茨。 That’s a lot of gates. When you have machine learning/AI chips that are used and you need to verify that the software works, well, it’s really complex to verify and really validate that it does the right thing.”

但无论是5克或汽车或AI,有相似之处。仍然是验证和确认,后者是关于软件的内容,和主要的操作系统平台,需要引导。“Linux和Android,这意味着可编程性引导代码必须核实你的软件和硬件之间的相关性。他们是大所以你不能运行,模拟,例如,因为它太慢了。所以你必须去硬件辅助平台,模拟或FPGA原型的一个大农场。那些有不同的价值和好处。但真正的关键是硬件和软件的交互软件需求增长非常好,硬件是巨大的,”深色说。

验证人工智能芯片
也有一些显著的差异。人工智能芯片大量冗余,因为性能在很大程度上依赖于并行处理,这使得比一个SoC验证更类似于一个处理器。

“人工智能,你在芯片验证发生了什么,”Frank Schirrmeister说,高级组的产品管理和营销总监节奏。“和你核实就像在一个处理器。你验证结构,这样,我计算所有这些系数等等美国有线电视新闻网我已经实现。但这是结构性验证,就像比SoC验证处理器验证非常不同。”

然而,人工智能就像一个移动的目标。“你需要优化你的CNN实现对数据集一点,所以你验证结构,这个处理器的原理和计算系数的方式我真的想这样做,”Schirrmeister说。“但你并不验证是一个完整的新领域或验证的功能网络。的东西是如此的好奇是人工智能实现我这个大与人工智能芯片,与一组流程,我验证结构,他们都可以互相交谈。如果比特翻转,进入一个安全的国家和所有的好东西。但为什么系数取决于训练集的数据。这就是为什么每个人都指的是数据集作为新的黄金或新的石油在这个世界上。验证整个训练集是正确的一个单独的问题本身,并验证人工智能实际上并没有做坏事的,基本上,它并不表现不好,很难做。你永远不可以训练所有的情况下,你会有。这就是人工智能的本质。 But you now can trick the AI in terms of what’s actually happening outside there, and that is a very curious and interesting thing from my perspective that we’ll have to deal with as vendors.”

所有主要的EDA公司指出,核查和验证人工智能芯片和系统的挑战。

“验证的可伸缩性的方法,我称之为多级验证在异构应用程序像我们今天看到的人工智能芯片,是征服更重要,”戈登·艾伦说,产品经理,模拟在导师。“你需要验证部分,连接,和芯片内的协议,以及整个芯片。但这些都是非常独立的层的验证策略。每一层有希望提供一个平台。它必须是可伸缩的,这就是基于仿真技术和仿真技术既能发挥作用在不同级别的芯片。”

艾伦指着Graphcore mega-complicated巨人AI的芯片为例。“设备这么复杂,你不可能把所有的东西在你的脑海中。你需要一个团队合作在不同的水平,和与工具很好地协同工作在这些流的不同部分。在EDA为我们,我们所有的通用标准,专注于提供工具通用api,常见的覆盖率,常见的调试——所有这些都在这些设计中发挥作用。”

多层次的验证是至关重要的,当有数组的人工智能处理器,以及主管处理器和其他组件。这些都需要验证个人和在一起。

“通常,当我们与验证团队合作方法我们讨论验证处理器单元,验证的内部功能,首先,”艾伦说。“然后,下一层为这种可伸缩的设备是验证所谓的X单位我们首先验证X的内部,然后我们验证X X之间的接口,另一个这是一个管道接口,通常。如果是深入的IP块与相邻的IP块,沟通,这本身是一个验证的挑战,因为它是高度管线式,bug通常在哪里。例如,这可能包括不同的协议活动来回接口。处理任何类型的数组的元素,如人工智能设备,要求绝对强劲的100%置信这个接口才能扩大。我们核实后的内部X和验证一个X到X接口,我们现在可以说我们验证单位,然后我们可以做一个模型。我们可以使用作为一个虚拟的平台更高级别的验证,例如,让软件工程师开始他们的一些层的SoC。”

下一层涉及到管理和性能经常担忧soc与多个元素。

“有验证每一个元素,我们现在需要验证这些正交担忧,他们通常的SoC的事情,中断,例外,重置,低功率模式,甚至像重置一样简单的事情。我们现在看到的客户想补习更多硅。他们远离不可复位复位的人字拖,这给了他们一个验证的挑战,我们一直与客户在重置验证这样的设计。这只是一个例子的大规模问题芯片,我们需要寻找这些复杂的设备。然后我们进入SoC水平,这是我们的模拟解决方案发挥作用,以及我们能够虚拟平台基于这些构建块。说验证这听起来容易,验证,但每个项目本身。通过验证,我们的意思是计划,创建testbench,创建刺激、调试、测量报道,关闭的报道。这是我们致力于优化生产力的领域。是否提供PSS或基于刺激,这是一个有用的方法来优化创造的刺激,例如。”

验证5 g芯片
5克补充道独特的复杂性,部分原因是技术从未实现大规模生产,部分原因是市场是新技术的结合是向后兼容老技术。

“首先,你有一个非常复杂的软件堆栈5 g协议所以你必须彻底检查,以确保你有一个5 g设备,”约翰内斯·斯塔尔说,产品营销高级总监Synopsys对此。“公司这样做,意味着可以从虚拟平台混合仿真平台。第二,有更高的数据速率,所以你想成为非常有效的实施。这里,人们实施具体的加速器,成为他们的硬件架构的一部分,它又需要验证的5 g协议元素。然后如果你想这样做,你不能做它没有真正的5 g的刺激,和写作5 g刺激手动是不可能的。写5 g刺激以你最喜欢的Matlab模型可能是一个起点,但是最后,没有实际驾驶5 g流量设计,你不能做验证。一些开发人员必须做的是连接他们的设计和测试物理5 g测试仪,和各种适应性,他们连接到模拟。”

虽然模拟很重要,斯塔尔说原型至少同样重要,因为如此多的交通运行的通信系统,它应该在尽可能高的性能。“仿真通常是当你5 g现代集成到一个应用程序处理器,然后将一切联系在一起。超越你所做的原型。但实际核心现代块功能,人们在原型和那些连接到测试人员做他们。”

然后现实世界的应用程序的技术需要之上。

“Pre-silicon,你可以做块水平验证非常成功,”说Gadge Panesar,首席技术官UltraSoC。“你可以把它在一起,验证硬件在系统层面。但你层上面的软件,然后你添加上外部的影响,因为整个需要功能在现实世界中。”

这是一个特别困难的问题当你谈论系统“超级”,他说,因为现实世界的刺激系统看到整个连接领域内可以来自任何地方。5 g的更糟的是,这不仅仅是用来连接手机,但是很多不同的设备,有自己的QoS,带宽和-日益重要的安全需求。

“无线尤其是细胞而言,在实践中我们一直以“生活中验证”方法很长一段时间。细胞的大部分地区基础设施部署,然后经常固件更新。核心组件都是这种情况,现在大量软件基础,边缘和前提设备,通常更新空气,也适用于有线宽带基础设施,”Panesar继续说道。

结论
所有这一切指的是真实的,实时的行为需要收集数据从这些大量的分布式系统,理所当然的,现实世界的数据原路返回到软件更新和未来的芯片的设计过程。然后,所有的必须再次检查是否按计划工作。

一个经典的例子多么困难这已成为涉及无线调制解调器应用程序部署。为了提高性能,这是更新改进的信道估计算法,进而造成很多不可预见的时机问题中处理器之间主SoC在特定信道条件。导致多个缓存错过整个处理器,最终打破了整个系统。整个场景是在现实世界中不可预见的系统运行的情况下,今天的系统比这更为复杂和相互依存的相对简单的例子。



留下一个回复


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

Baidu