中文 英语

虚拟原型的驱动

原型正在迅速转变,以承担无数的任务,但它们受到缺乏抽象、标准和接口的阻碍。

受欢迎程度

芯片制造商对虚拟原型的要求越来越高,远远超出了最初的范围,迫使EDA公司显著地重新思考模型、抽象、接口、视图正交性和流程。

虚拟样机它已经存在了至少20年,但它的作用一直很有限。它在很大程度上被用作比实现模型更抽象的模型的集成和分析平台。它的核心是一个或多个处理器的指令集模型,使早期的软件开发能够在快速、功能准确的硬件模型上进行。历史上,性能依赖于提取时间信息。

这个词“左移位”应用于系统开发期间执行的任务的百分比增加。它提供了对下游决策将产生的影响的早期一瞥,以便在不良决策的影响有限时更早地发现它们。这首先是在将物理信息引入RTL工具时看到的,并且行业已经在这方面取得了很大的进展,因此下游的意外已经大大减少。设计团队不再需要无休止地迭代时间关闭。

但是从经济学的角度来看摩尔定律对于单个单片模具不再像过去那样工作,更多的注意力放在系统级别的分析和优化上。过去的架构正在受到质疑——处理器正在为特定的代码集或任务而设计,内存架构正在被改造,芯片正在被分解为2.5D甚至3D包。除了这些变化,电力正变得越来越重要,而热则被视为最终的限制因素。所有这些信息都开始以虚拟原型为目标,威胁到现有的分析技术。

“这有助于思考虚拟原型的作用,因为它适用于V形图(见图1),”尼尔汉德,战略总监的设计验证技术西门子EDA.“在左手边,你正在进行设计分解,并弄清楚你想要构建什么。实现和验证在底部,然后集成和验证在右边。在现代系统设计过程中,虚拟原型在V形图的每个部分都有一席之地。与虚拟样机集成的能力将是实现系统探索的关键,无论是电源还是性能,无论是硬件/软件分区,还是将传感器和执行器集成到整体系统设计中。”

图1:系统开发的V形图来源:半导体工程

图1:系统开发的V形图来源:半导体工程

在某些情况下,虚拟原型可以帮助改进特定的开发过程。Real Intent总裁兼首席执行官Prakash Narain表示:“左转是为了实现结构化的设计方法,这样你就可以有一个更可预测的设计过程。“当我们构建这些产品时,我们必须启用抽象和分层方法,以便能够处理即将到来的复杂性。我们的重点是功能验证,通过早期功能分析和创建有效的方法来覆盖不同的故障模式,以及可以早期部署的流程。”

在其他情况下,这些原型将指向过去没有封装在IP或工具中的新任务。“从历史上看,你买了一个处理器核心,使用基于一些多路复用器的互连把所有东西都插在一起,再加上一些中断、复位和时钟等,”杰出的工程师和SoC验证架构师尼克·希顿(Nick Heaton)说节奏.“这些内容大多都被封装在IP中。但随着越来越多的问题出现,情况并非如此。一致性问题已经驱动了许多新的验证工作,因为您无法验证一个IP的一致性。这是一个全系统的问题,而且还在增长。安全是一个全系统的问题,你无法孤立地验证这些问题。”

分层方法
这种担忧还在继续增加。如今,人们可以论证将早期的楼层规划信息输入虚拟原型。这对于热分析是必要的,以确保在一个包中成功地进行多模分区。

“分解流程正变得越来越有趣,”Tim Kogel说Synopsys对此.“这就是人们看到过去是一个芯片,但它已经变得太大了,他们想要分解它。我应该在哪里进行切割?每一次切割都是额外功率的潜在来源,或者可能会造成性能瓶颈。这给所有工具带来了额外的挑战。现在有多个探索点,理想情况下,你希望有一个非常灵活的方法来进行‘假设’分析。”

系统优化具有巨大的潜力。“当你开始考虑系统级优化,而不是局部优化——无论是通过基于芯片的设计还是通过更全面的系统设计——获得这些早期见解并做出明智权衡的能力,将对我们如何构建系统产生巨大影响,”西门子的Hand说。“这也带来了挑战。这些类型的虚拟原型只能和你现有的模型一样好。然后你就会质疑是否要投资这些模型,因为我不知道收益会是什么,但在我投资这些模型之前,我无法获得收益。”

模型一直是限制因素。“模型的可用性无疑是虚拟平台技术难以采用的领域之一,”公司创始人兼首席执行官西蒙·大卫曼(Simon Davidmann)说治之软件.“您需要获得最小数量的模型和最小数量的操作模式,以使任务能够执行。这通常是早期软件开发的限制因素。你能否对环境进行足够详细的建模,从而可以使用它而不是使用真实的环境?”

复杂性要求使用分层方法。Synopsys高级营销总监谢卡尔•卡普尔(Shekhar Kapoor)表示:“很多事情,比如时机分析,正在变成一个分治的问题。”“这可以归结为造型。我们正在尝试切割设计,将其分解为更小的分区,并创建一些快速而粗糙的模型,以用作分析的一部分。如果给工具的问题规模得到很好的管理,并且围绕它的约束得到很好的定义,分治法就可以很好地发挥作用。”

如果没有这种方法,问题就会变得难以解决。“如果你考虑电源完整性分析,你需要单独分析每个芯片,以及其他芯片对该芯片的影响,”Mallik Vusirikala说,董事和产品专家有限元分析软件.“解决电网问题的基本引擎保持不变,但你如何建模其他芯片将会改变。我们可以为其他芯片创建一个非常轻量级的模型,并将其集成到单个芯片系统的分析中。或者,你可以把所有的模具详细建模,然后一起解决它们,但这会产生不同的问题。如果你处理的是一个模具而不是三个或四个,容量的增加对引擎来说是一个挑战。这可能要留到最后签字。”

今天的许多工具都由特定的用例和场景驱动。Cadence的Heaton表示:“在进行IP测试时,你几乎需要开始进行系统级测试。“虚拟平台帮助你开始,而混合系统支持多个片段的抽象,包括RTL的实现。便携式刺激(PSS)在这方面发挥了一定作用,虚拟平台可以成为开发和测试你的场景的一个步骤,然后再将它们应用到RTL或其他工具中的慢平台上。”

其中一些可能超出了单个虚拟原型的能力。汉德说:“用一个模型来统治所有模型的想法是不会发生的。”“我们需要一种方法来管理模型所需的保真度和性能。在不同的点上,你需要不同的模型保真度。你会听到人们在设计过程中谈论数字线程和线程。有一个动力线程,有一个性能线程,有一个功能线程,在它们之间有区别,有意识的故障是很重要的。你对虚拟原型的目标是什么?是功率分析吗?是功能验证吗?是表现吗? That’s going to control the needs of the model itself. Whether you are looking at it from a virtual prototype perspective, whether it’s a coverage perspective, having a well-defined and well-separated understanding of what you’re doing for each of those threads is going to be important.”

Kogel表示同意。“我们在规范阶段对虚拟原型进行了区分,比如架构定义——这是规范级别IP的集成点——以及如何配置和定义IP(参见图2)。另一个集成点是硬件和软件。这是软件开发的虚拟原型,您要尽可能早地在RTL之前完成。最近,这也扩展到了后rtl和后硅阶段,因为它是现代CI/CD流程更方便的目标,在这里集成不是一次性的事件。它变成了一个连续的事件,并且您希望确保在进行更改时对其进行验证。因此,虚拟原型比用硬件管理实验室设备更方便、更好。”

图2:虚拟原型用例。来源:Synopsys对此

图2:虚拟原型用例。来源:Synopsys对此

模型
模型起着至关重要的作用。“在整个流程中,最重要的是所使用的抽象的一致性,”西门子EDA AMS产品管理和营销主管萨蒂什•巴拉苏布拉曼尼亚(Sathish Balasubramanian)表示。“整个流的IP一致性,无论是验证还是实现,都需要基于每个流所需的抽象进行维护。这一点现在变得越来越重要。”

这方面的标准目前还不存在。Imperas的Davidmann说:“标准允许重用和协作,所以很多人可以一起工作并共享东西。“这确实让人们更有效率。在虚拟平台世界中,有抽象,但没有标准。如果我建模一些东西,它能在你的系统中工作吗?TLM试图说明存在这种类型的抽象,但您需要的不止于此。语言抽象是兼容的,但是还没有设计接口。这是我们一直在努力做的事情开放虚拟平台(OVP)-建模和控制api的定义。这样,我们就可以在我们的专有解决方案中实现API以下的所有内容,但客户可以在API之上编写模型和分析功能。”

早期的软件开发已经到了一个临界点。Kogel说:“因为我们有TLM标准,所以每个人都了解软件虚拟原型的价值。“构建完整的虚拟平台仍然是一项重要的工作,但整个供应链都在等待它,利用它。它已经成为一个可行的生态系统倡议,从半模块开始,与模型提供商一起构建mcu模型,然后在整个供应链中利用它们。”

对于其他目的,您需要的不仅仅是功能模型,而且目前很少有用于这些目的的抽象或模型。

许多公司都在关注它的各个部分。Ansys首席产品经理郎林表示:“早期的任务是寻找所有可能的封装和模具解决方案。“我们已经为楼层规划开发了一个早期的原型流程,在那里组装不同的组件。在这个流程中,每个组件的模型可能只是一个具有一些材料属性的几何图形,但细节很少。一旦每个组件最终确定,在后期设计阶段,您就有了详细的几何图形。现在您可以创建一个更详细的模型并将其插入。有几个阶段:早期阶段,你需要提前计划;最后阶段,你需要在系统上进行精确的模拟。”

权力在每个阶段都变得越来越重要。Kogel说道:“人们越来越多地要求能够感知能量的虚拟原型。“我们在2015年发起了一项标准化计划,定义了UPF系统级功率模型。但是到目前为止,这还没有被广泛采用,尽管工具支持它。问题是模型的创建仍然是一个非常开放的问题。您可以使用针对RTL及以下级别的工具来校准功率,但系统级功率模型仍然是一个非常开放的问题。通过多芯片集成,这个问题必须得到解决——不仅是电源问题,还有热问题,因为现在你要把芯片堆叠在一起,你必须知道这个封装的热行为。”

结论
由于设计的复杂性和需要在开发流程早期做出的选择,虚拟原型以多种方式进行转换。这些决策可能对实施产生重大影响。这加剧了将信息向左转移的愿望,使更早的、知情的决策和分析成为可能。

但是这需要在不同的抽象级别上开发和验证模型,并且用于不同的目的,由于缺乏标准和抽象,这个过程变得更加困难。对于一些用例,例如早期的软件开发,需求和好处已经上升到解决方案被创建和成功使用的程度。但对其他人来说,旅程才刚刚开始。

目前正在开发一些点解决方案,但必须创建更健壮的建模工具和方法,以实现全部潜力。

编者注:关于虚拟原型及其应用的详细介绍将在以后的文章中继续讨论验证和调试。



1评论

卡尔·史蒂文斯 说:

我不同意工具和技术必须被创造出来。它更像是“醒醒吧,闻闻玫瑰的芬芳!”c#支持API和建模硬件设计所需的所有东西。

布尔变量和运算符就像算术变量和运算符一样。

一个关键元素是条件赋值。它很关键,因为不需要依赖if/else来做赋值。我认为Verilog也有条件赋值,但还没有人使用它。

相反,HLS花费了多年的时间和大量的努力。但是c#是一种用于软件开发(包括调试等)的编译语言,并且是开源的!

留下回复


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

Baidu