软件模拟+硬件仿真=验证成功

字符大小: 【】 【(默认)】 【

如果您还没有注意到现在是SoC时代(虽然并非总是如此),不妨回想一下个人计算时代,许多实例都证明这个时代已快速衰落,成为历史。曾几何时,使用计算机意味着坐在由数个芯片(CPU、GPU、南/北桥、USB控制器和以太网端口等)支持的台式计算机面前。现在,也许您每天第一次使用计算机就是点击由单个SoC处理大部分功能的智能手机屏幕。SoC的应用范围远远超越智能手机和平板电脑,正在迅速扩展到众多领域,包括游戏机、网络设备、汽车、飞机和卫星等。

由于SoC通常有助于降低系统复杂性和成本,并且设计也比较紧凑,因此单片机芯片堪称消费者的福音。但是随之而来的挑战也不容小觑,也许可用一句古老的工程名言表达出来,这句至理名言多年来被无数次引用,例如,Steve Jobs在1998年回答《商业周刊》提问时就引用过:“简单可能比复杂更难做到:你必须努力地让你自己的想法足够清晰而使之变得简单。但是这终究还是值得的,因为一旦你做到,就可以金石为开。”
事实上,设计和验证SoC并非易事。一个原因源于选择和灵活性,凡事有利必有弊,组装芯片也如此。例如,就ARM而言,企业既可购买由英国公司设计的现成处理器,也可自己构建运行ARM指令集的处理器。接下来的任务是,将这些处理器连接到其他必要元件,包括也可购买、调整或从头开始构建的内存。最后是选择悖论——对给定问题提供多种解决方式选项最终会导致工程焦虑并且几乎总是会减慢速度。
第二个原因与摩尔定律有关,虽然定期会有其即将消亡的报告,但该定律仍在起作用。根据MentorGraphics赞助的2012年威尔逊研究小组功能验证报告,约三分之一的新芯片设计目标是将特征尺寸控制在28nm以下,规模超过2000万门。在所有新设计中,17%的超过6000万门,约78%的具有一个或多个嵌入式处理器。对这些数字应加以思考,特别是考虑到验证复杂性会随门数成倍增加这一经验法则。
 simulation-emulation-1.jpg
图1 根据MentorGraphics委托的2012年功能验证调查,逻辑和数据路径的门数在持续增加

这些数字相当值得深思,很显然,仅在基于软件的模拟器上验证设计时,速度会慢下来。尽管包括Mentor在内的大型EDA供应商都取得进步,但在某个时候,仅通过将RTL馈入模拟器来收集有关设计的大量信息是不切实际的。因此,硬件仿真器的吸引力越来越大,其性能是最佳软件模拟器的1000倍。

至少从历史上看,性能提升是有代价的,不只是两个验证工具的采购价格千差万别。多年来,难以甚至无法在软件模拟器和硬件仿真器上进行重用。这两个环境通常需要由完全不同的团队执行不同的流程。然而,ST Microelectronics意大利米兰工程师(在印度诺伊达同事支持之下)的最近经历表明,事情可能在变化。更具体地讲,将运行于软件仿真器上的验证平台和运行于硬件仿真器的设计进行联调是可行的,从而充分利用两个验证平台的价值。

构建参考设计,促进技术发展

SoC确实大受青睐,以下事实可以证明这一点:几乎所有大型半导体公司都在构建和运行这些集所有功能于一身的芯片。其中包括:Apple、Qualcomm、Samsung、Nvidia、TexasInstruments、Intel和AMD。ST Microelectronics也被纳入该名单,特别是考虑到其将SoC应用到智能家居、医疗保健和汽车领域取得的成就。

去年,这家总部位于瑞士日内瓦的公司开展了一个试点项目,以构建名为EagleReferenceDesign(ERD)的参考设计。其目标是探索是否可以将三款ARM产品(Cortex-A15、Cortex-7和DMC 400)无缝组合成一个高度灵活的平台,以便客户最终能够仅基于系统的XML描述进行调整。但要向客户提供此层次的定制,ST Microelectronics必须确保ERD获得高效验证环境的支持,在此环境下,可以创建最直接的路径,完成从RTL验证到软件开发和操作系统移植的一系列过程。这意味着创造一个可轻松衡量性能和优化平台的环境。

但事有先后。虽然有朝一日此类验证环境会帮助说服ST Microelectronics客户订购大量的ERD衍生设计,但在项目开始时,ST Microelectronics团队需要了解ERD本身。

“首先,我们必须能够了解完整的ARM子系统并对其进行基准测试,这对我们来说颇具挑战性,因为我们没有任何经验,”米兰硬件设计项目经理Alessandro Daolio说,“我们要在运行大量软件时开始对其进行基准测试,但如果没有正确的验证环境,即便是简单的基准测试也无法进行。”

为何难以实现更高层次的抽象

像ERD这样的项目具有渗透到技术中的趋势。概括地说,当今的竞争力就是提供更高层次的抽象和选择。客户(无论是购买新智能手机的青少年,还是就SoC货比三家的工程团队)想要更多的功能、更好的性能、更高的易用性和更低的成本。像ERD这样的参考平台,其隐性承诺是,提供从根本上稳固和强大同时还允许定制的架构。这类似于汽车制造商允许买家通过网站配置梦幻车辆。

然而,当您考虑平台元件时,远程提供类似于点击配置SoC的功能却相当困难。例如,双核Cortex-A15具有大约1.5亿个晶体管,因此当整个平台发生变化时,肯定会以不同顺序接通和切断。客户想知道验证过程考虑到了这些变化。例如,覆盖模型需要适应不同的配置。“客户希望我们向他们保证使用最先进的验证,”ST Microelectronics验证经理AlbertoAllara说。

 simulation-emulation-2.jpg
图2 Veloce2的图形化命令、控制和运行时接口

Allara从事验证工作已超过15年,在此期间,还没有哪种验证被明确称为是最先进的。他很早就开始做定向测试,首先使用Verilog,然后在Verilog测试平台上使用SystemC或基于Tcl的测试。接着出现SystemC验证组件,最后是提升SystemVerilog OVM和UVM的标准化和功能。现在他说,接下来的趋势是要以某种方式加快验证。例如,使用强大的GPU加快软件模拟或将FPGA融入验证环境。

就原始速度、性能和编译时间而言,迄今为止,最佳选择是利用配备专为可布线性进行优化的定制ASIC而非现成FPGA的硬件仿真器,以实现最大化所用逻辑单元数的目标。Mentor的Veloce2正是基于此类ASIC。例如,对于获得为硬件仿真器编译过的修改设计的新模型流程,FPGA可能需要数小时,但Veloce2只需数分钟。

但是,一些潜在的省时优势很容易被需要数天或数周来了解如何使用硬件仿真器以及如何联合验证环境与软件模拟器而抹杀。事实上,ST Microelectronics多年来一直在使用数个MentorVeloce硬件仿真器。然而,硬件仿真器都位于ST Microelectronics法国格勒诺布尔园区,距米兰接近400公里。就硬件仿真器而论,Allara、Daolio和同事们不仅仅是被距离隔开。

在该项目之前,ST Microelectronics主要使用Veloce硬件进行内电路硬件仿真。诸如Allara团队会将数据库(包括RTL和简化的测试平台)交给位于格勒诺布尔的独立专业硬件仿真团队。该法国团队会依次映射SoC、将外部接口连接到真实的硬件,并提供一个可供典型软件开发人员或应用工程师使用的平台。

对于像Lanfranco Salinari这些过去习惯严格在基于软件的模拟器上做验证的人而言,硬件仿真的潜在优势不会消失。Salinari是SoC验证工程师,与Daolio和Allara一起做ERD项目。

“软件驱动的测试正变得更加复杂;仅配置就需要很长的时间。所以,我们都知道必须采用某种方式加快软件模拟,而硬件仿真器是可以做到这一点的,它是一种具有可行性和吸引力的方式,”他说,“但仅求助硬件仿真器还不够,因为这往往意味着验证环境要进行根本性改变,我在做其他项目时也曾遇到这个问题。我们想要做的是,营造与模拟相同的验证环境,并略做修改后应用到硬件仿真器上。”

一个简短的假想实验或许有助于合理解释ST Microelectronics团队想做的事:设想一下,有个人拥有驾照和豪华车,想寻找一种比较快的方式从A点到B点,更具体地讲,从米兰到格勒诺布尔。他当然也可以乘飞机,但如果考虑到商业飞行比较麻烦(例如,买机票、停车、安检、在机场等待其他航线等),他可能会发现,更快的方式就是自驾车越过边境开进法国。假想现在已穿越到未来几十年,科幻小说作家梦寐以求的许多发明(包括飞行汽车)终于成真。我们假想的旅行者拥有一辆飞行汽车,其驾照也允许他飞上蓝天。在这个摩登家庭成为现实的情景中,几乎可以肯定驾车比乘飞机更快。

直到最近,Daolio、Allara和Salinari才发现,他们想要的正如飞行汽车一样不切实际。

如何用几个简单的步骤扩展模拟

除了Questa,ST Microelectronics团队曾长期使用一个软件模拟器。所以,当团队刚开始通过格勒诺布尔的Veloce硬件仿真器创建流程以加快速度时,选择的就是继续使用其熟悉的软件模拟器作为验证的第一站。

Mentor Graphics验证IP(VIP)是一个可复用组件库,无缝集成到使用UVM、OVM、Verilog、VHDL和SystemC构建的测试平台,也可与第三方软件模拟器有效地协同工作。因此,Daolio和同事们首先在现有工具上构建一个完整的软件模拟器。之后,需要将测试平台移植到Questa,以通过TestBench XPress(TBX)共同建模软件应用程序连接到Veloce。利用TBX,可以轻松接通Veloce2事务级建模(TLM)验证引擎,其运行速度可以比TLM软件模拟器快10 000倍。

在共同建模中,将可复用测试平台连接到Veloce2中配备DUT的合成处理器。这些“加速”处理器会将高级事务转换为信号级激励来驱动DUT。TBX的主事务建模构造是SystemVerilog DPI导出和导入任务。这样就可直接使用Mentor提供的VIP(与ST Microelectronics用于在模拟中构建测试平台的VIP相同)。TBX会自动在主机上的SystemVerilog或SystemC环境与Veloce2硬件仿真器中的SoCDUT之间生成直接通信接口。利用SystemVerilog测试平台,TBX在主机上执行采用Questa软件模拟器的测试平台。

在做出一些修补后,从Questa到Veloce的第三方软件模拟器的流程运行得十分顺利。然而,随着项目取得进展,时间却受到限制(确实不可避免),该团队只好选择直接为Questa构建SystemVerilog测试平台。此举有助于他们实现最终目标,这与标准略有不同,因为他们只是从事参考设计。

 simulation-emulation-3.jpg
图3 协同仿真中在ERD上执行的冒烟测试生成的输出

“由于此参考设计未绑定到任何特定项目,因此我们的主要目标不是要达到设计的完整验证,”Salinari说,“最重要的是,我们希望能够执行性能分析并创建验证方法和技巧,这样,当我们最终在真实的项目上尝试应用此参考设计时,我们能够将验证环境几乎无缝地移植到硬件仿真器。”

尽管现成的VIP和集成来自同一供应商的软件模拟器和硬件仿真器都具有优势,但该项目仍需做大量工作,现代SoC验证复杂性就是一个佐证。该项目花费一年才基本完成(因为ERD只是一个参考设计,所以团队成员偶尔会参与其他项目),9名ST Microelectronics工程师曾参与过,其中包括米兰5名、那不勒斯2名和印度诺伊达2名工程师。Piyush Kumar Gupta和Sachish Dhar Dwivedi是ST Microelectronics的HEVS(硬件仿真和验证解决方案)团队成员,工作地点在诺伊达。他们俩在Veloce的映射和设置设计方面提供了大量帮助,这对意大利ERD团队至关重要,因为该团队在该项目之前没有使用硬件仿真器的经验。

这项任务主要是将代码的所有块分离成两大域——可合成代码,包括所有的RTL块以及带VIP设计模拟模型(DSM)并可在硬件仿真器上运行的SystemVerilog接口;所有其他模块,在主机(模拟器)连接到硬件仿真器环境中的HDL部分运行。该团队也补充了自己的技巧,Allara和同事FabioBrognara撰写的论文中有所描述,并在2012年设计与验证大会上做了相关介绍。[1]该文说明了Allara和Brognara开发并命名为验证抽象层(VAL)的机制,该机制用于将外部验证环境融入到在系统CPU上运行的软件。ST Microelectronics验证工程师可以使用VAL对内部设计IP和外部验证组件进行编程和配置。

“我们为早期项目开发的这个机制在模拟中运行得很好,在ERD项目期间进行移植后,可在Veloce硬件仿真中运行,”Allara说,“我们为VAL开发的前端可以在硬件仿真器上进行映射。所以目前,我们让软件在控制硬件仿真器的主机的CPU上运行,这样就可控制在运行软件模拟器的主机上执行的验证组件。”

正如ST Microelectronics团队所述,创造这种新的验证环境不是解决一两个大问题,而是涉及许多零碎问题。举个例子来说吧,该团队必须以新的方式处理时钟生成。

以前,在验证过程中,所有锁相环(PLL)都被抽象化,并使用外部Tcl脚本生成时钟。协同仿真要求以完全相同的方式在模拟和仿真中映射所有的SoC组件。该团队发现,要使全部组件保持对齐,需要可在两大域工作且比抽象的PLL更为详细的路径。

在Mentor的支持下向前发展

如果没有来自Mentor的帮助,该项目就无法运行。Mentor正在努力支持验证加速的这一阶段,以使到现在为止已在模拟器上完成几乎所有工作的团队更好、更集成地使用硬件仿真器。

Salinari称Mentor的VIP是基本要素。

“如果没有它,我们将不得不构建复杂得多的与验证相关的IP,并要弄清楚如何浏览复杂的协议,但这项工作简直不可能完成,因为我们没有相关资源,”他说,“Mentor提供的VIP使我们能够在软件模拟和硬件仿真上运行相同的验证。当然,我们不得不做出一些调整,但至少这是可行的。”

在所有的可能性中,这种协作仿真对向前发展至关重要,主要是因为这是一种更高效、更经济的验证方式。还有一个原因就是更可能拿硬件仿真器当软件模拟器使用。更具体地讲,硬件仿真提供更好的方式来加快软件模拟,同时保留熟悉的测试平台架构和方法。可以在夜间或周末以批处理模式运行回归测试。

Allara指出,他和同事们得到了Mentor的大力支持,包括大量的技术咨询和技术文档。他说,更重要的是Mentor承诺帮助改变芯片和整个系统设计商业模式的意念。

Mentor首席执行官WallyRhines在接受媒体采访时表示:“硬件仿真器成为验证流程的枢纽,它承担软件模拟器的功能,并在其基础上加以改进。”

“这么说吧,我们还在学习如何最佳地将软件模拟与硬件仿真器结合使用,”Allara说,“但我们的感觉是,Mentor真的相信这个技术并将继续支持我们,还全面承诺辅助非仿真专家的验证工程师学习相关内容。”

参考资料
[1]Allara,A.、F.Brognara(2013年2月)。“将随机约束引入软件驱动的SoC验证。”2013年设计与验证大会上介绍了该文。

 

技术特刊

减小隔离式同步栅极驱动器的尺寸并降低复杂性带同步整流功能的隔离式DC-DC转换器的传统设计方法是使用光耦合器或脉冲变压器进行隔离,并将其与一个栅极驱动器IC结合在一起。
选择适合医疗器械应用的磁性元件多年来,可植入医疗器械变得越来越小。更小的器械可提高患者舒适度,植入时对人体的损伤也小。同时,更小的器械可降低手术的侵入性和复杂性,既方便医生操作,也
软件模拟+硬件仿真=验证成功如果您还没有注意到现在是SoC时代(虽然并非总是如此),不妨回想一下个人计算时代,许多实例都证明这个时代已快速衰落,成为历史。曾几何时,使用计算机意味着坐

杂志/赠阅

往期查阅:

站内搜索

相关文章