混合仿真

专家在餐桌上,第1部分:使用单一执行引擎为验证任务是迅速成为例外当用户试图平衡性能,精度和上下文。

受欢迎程度

半导体工程坐下来讨论日益增长的使用混合验证方法与弗兰克Schirrmeister,高级组产品管理和营销主管节奏;项目主任Russ Klein pre-silicon调试产品导师,西门子业务;首席架构师蒙大拿系统;技术销售经理,Kalpesh Sanghvi IP与平台Open-Silicon。以下是摘录的谈话。

SE:我们从一个单引擎的时代验证在一个需要多个引擎整个设计流程。今天我们开始进展到混合动力车的发动机在多个一起使用来解决验证问题。我们今天的混合执行?

Schirrmeister:每一个大的EDA供应商有大量图形描绘四个或五个验证引擎,这取决于你如何计算它们。在硬件方面你可以结合这些之间,然后把它们与软件世界。结合他们的原因是使软件。正式的不太重要的这个话题,虽然有一些正式的方面,我们可以谈谈。模拟可以斗到底层软件的概念,在调试仍然是适用的。当你达到几千赫,它超出了一杯咖啡的互动软件开发人员想要的。如果不带着答案回来后我去喝咖啡,然后是没有用的。这就是软件开发人员的行为。不过即使是RTL模拟,我们引进的人手臂快速连接这些模型和仿真,所以你有复杂的抽象为软件和验证。的两大引擎模拟FPGA原型。首先你把它们,有时他们是真正结合硅。这当你想重用已经稳定的事情,而你可以连接到虚拟的平台软件启动的目的。在一个理想世界里,你应该能够带芯片的框图,并为每个模块定义是否应该在TLM或RTL。我们在那了吗?没有,但是我看过用户手工打造的大多数发动机的组合。有必要平衡速度与精度和时间的可用性。所以忠诚,速度和时间的可用性是决定者。

克莱因:有验证的目标。他们需要能够选择正确的引擎在正确的抽象层次得到正确的水平的细节,以满足需要。这将随着时间改变。加入虚拟原型仿真和FPGA原型,甚至与传统模拟,使您能够运行您的软件有效载荷快很多,和他们带来的环境中软件的人可以进入。在早期他们可以验证一个特定的活动。也有一些人希望能够验证缓存一致性,我们不能用一个虚拟样机,因为他们通常不正确缓存模型。所以你需要去RTL。混合和匹配的能力是EDA公司一直在做的事情,即使我们还没有达到涅槃,我们可以混合和匹配引擎的方式使客户得到正确的混合的任务。

Sanghvi:越来越多的系统公司从标准件制造asic,他们不想做一切与RTL。关键是,他们想要的软件启动和运行,他们想要软件团队从ASIC的设计阶段。大多数系统公司希望混合解决方案,他们可以运行固件+用例,应用程序级别。我们是提供虚拟样机的方法使固件的验证。这是因为限制可用的接口。我们可以模型的闪存和其他的一些接口使用虚拟样机,所需的固件开发。然后FPGA主要用于系统级用例。这将是伟大的,看看他们可以结合,因为这样我们可以提供一个解决方案可以用来运行两个固件或用例。

克莱因:把这两个是什么意思?今天是缺乏什么?

Sanghvi:我们尝试几次使用TLM-based接口连接FPGA与虚拟模型,我们发现了问题。这就是为什么我们分区,这样我们可以做在一个环境和其余的FPGA。

克莱因:可以召集一个虚拟样机+模拟。这是相当老旧的路径。我们也投资于FPGA原型,我们完全相信能够把所有相同的功能仿真和FPGA原型能够运行。混合这些引擎应该EDA供应商可以提供的东西,引擎之间的连接的点。

Sanghvi那是他们之间具有TLM-based接口。

克莱因:从用户界面有点埋葬。用户不应该需要了解底层接口。在概念层,用户应该能够选择每个块的抽象层次和它们之间的接口负责胶。深罩下,这是使用AccelleraSCE-MI接口。有一个基础设施水平最重要的是,它消除了一些低层次的细节。在用户层面,他们不必担心细节,但基本都是标准的,我们可以搬到不同的引擎。

SE:行业的标准——SCE-MI和OSCI TLM。这些足够吗?

Schirrmeister:TLM 2.0的胶水SystemC片段组合在一起。如果他们不使用SystemC和来自自下而上,他们有时使用标准C接口。加速验证知识产权或交易人有不同的接口,包括C接口,TLM接口钩到SystemC环境。有一些接口Verilog一边。这些接口允许您连接到硬件。你使用哪一个取决于你如果自顶向下或自底向上。这就是偏好设置界面。他们也可以使用UVM验证交通。如果它是取决于软件的验证数据驱动到系统。

Moorby:我在模拟器自1992年以来所做的工作。与我一起工作虚拟机工作,这是收购,然后由导师了。这是一个宝贵的经验,使我能够了解这个市场。客户想要解决的几个问题。自那时以来,有很多合并不同的需求和不同的顾客试图解决不同类型的问题。如果我们快进到今天,我们有一台机器有多个引擎和整个事情很容易失去平衡。你会有一些已经运行在模拟器,可以速度。模拟市场需求解决系统问题,包括软件的能力。他们也可能干扰系统的其余部分是真实的硬件,操作在一个特定的最低速度。这提供了一个绑定,他们必须达到。但是如果我们谈论将其他组件,例如一个模块编码SystemVerilog,他们使用UVM模拟软件模拟器,这里的速度是非常不同的。我听说花的时间的80%testbench。几十年来,我们一直在努力加快模拟器,以时钟周期每秒。在大门口水平高于1 cps是你的幸运。软件模拟器,运行在一个标准的平台,例如x86,可以得到一个合理的速度,但可能只有10到100 cps。现在,当我们把UVM混合,如果80%的时间是花在,那么你让事情慢十倍,这是朝着错误的方向发展。大软件解决方案和模拟之间的差距,通常运行在100000 cps或者更多,是巨大的和不断增长的。总的来说,软件模拟器是没有得到更快。可以做些什么,利用这两个世界?一个解决方案是远离标准的x86平台,具有非凡的属性方面的成本,和运行标准的C或c++软件。然而,对于RTL synthesizable模拟,它不是最好的架构。 Just look at cache miss rates and you will see the issues. So how do we break out of that and get to a processor model, perhaps running on an FPGA, which provides the necessary speed-up compared to software simulation. We can learn from the lessons of emulation and find ways to balance the engines. Why spend millions of dollars on an emulator when you have a component that is left running slow?

克莱因:当你去接近完整的系统,你会发现testbench组件变得越来越轻。所以当你有最终的系统运行,它是软件,它是一个时钟和复位,并真实的刺激来自外部。它不再是一个UVM testbench,找出不同的角落放一块IP。的一个好处更大的系统,包括一个更现实的环境是testbench变小。在块级testbench你是对的——它可能是80%,20%不会影响你的工作。

Schirrmeister:添加,在系统层面上,你需要了解你所验证的范围。对于IP,你是对的,你有具体的随机测试,UVM等等。如果你看看Accellera便携式刺激努力,testbench不再是testbench古典意义上的。是软件驻留在处理器的设计,刺激一切,找出互连是如何工作的。当我们做加速评估,我们做的第一件事就是分裂。大多数市场仍使用冰,我们没有testbench。你做什么实际的函数。你运行这个软件,你电话在虚拟环境的上下文中。这里的加速度是依赖DUT的时间。鉴于testbench不是synthesizable,你会发现没有意义组合提供DUT加速度。所以他们需要分开。但你也必须考虑到你要找的类型的bug。 If you are finding bugs in the blocks when doing full system simulation, then something has gone seriously wrong. You need to figure out the right balance between the engines. I don’t want to use simulation for the wrong purposes, or I shouldn’t go to emulation too early because of the bugs I am finding, and I could be using emulation for other stuff.

Moorby:但你没有看见大差距模拟和仿真作为一个问题吗?如果这是一个巨大的转变,它创建了两个不同类型的开发团队和没有。

Schirrmeister:不再是这样。我们几乎是容易得多。它不再是两个不同的团队。唯一的地方在FPGA一边仍是如此。在仿真中,诸如编码指南的帮助下,我们已经能够把DUT在几天或几周的问题。我们有照顾的内存模型,在FPGA世界时钟——项困难的过去。在一个FPGA你必须找出所有的时钟同步;你重新映射到FPGA的查找表,这意味着完全不同的东西,这是手动完成的。你没有相同级别的内存资源相比,一个ASIC,所以过去需要一个不同的团队。最近也已经得到了改进,现在我们可以设计仿真和FPGA上运行它。 If you really want to get to 100MHz, then you can invest additional time in remodeling.

克莱因:EDA厂商已经认识到,人们正从模拟仿真FPGA原型和我们已经做了很多工作平稳过渡。常见的前端是使用和整个环境中人们可以采取相同的元数据。这是一个共同的主题从所有的供应商。我们还没有完成,但是我们已经取得了很大的进步。

Schirrmeister:比赛现在是涅槃。验证负载和你必须决定在哪里运行它最好的地方:模拟、仿真、FPGA和让系统图,基于优先级和其他工作的要求。

有关的故事
混合仿真(第2部分)
找到正确的平衡性能、能见度、周转时间和验证的目标。
混合仿真逐渐升温
使用模拟和仿真的结合可以有利于一个SoC设计项目,但它并不总是一件容易的事情。
仿真的足迹
为什么突然模拟器是不可或缺的越来越多的公司,和接下来会发生什么。
FPGA原型的进展
流行的设计方法使更复杂的硬件/软件验证之前第一个硅可用。



留下一个回复


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

Baidu