搜索
您当前的位置:首页 > 高仿资讯
基于VMM方法学的系统级软硬件协同仿真验证
发布时间:2013-09-28 17:27:23 验证 仿真 模块

  为适应日益复杂的系统芯片SoC(System on Chip)设计,新一代芯片设计和验证语言SystemVerilog应运而生,并在2005年11月被美国电气和电子工程师协会(IEEE)批准为新标准[1]。在此基础上,Synopsys公司和ARM公司联合推出了VMM验证方法学[2,3]。运用VMM方法学提出的规则和标准函数库,可以快速搭建功能强大的验证平台。通过受约束的随机激励,并以覆盖率为指导,可以快速完成系统功能验证,显著提高验证效率。

  文章以实际工程项目为背景,构建了一种符合VMM方法学标准的系统级软硬件协同验证平台。同时通过对实验数据的分析,提出了用于优化随机激励约束的方法。

  1 系统级软硬件协同仿真验证平台

  一般仿真验证SoC的策略可分为3个步骤:模块验证、集成验证和系统验证[2,4]。其中系统验证平台中包含处理器CPU或DSP[2],并且采用软硬件协同验证方法。因此系统级软硬件验证比其他形式的验证更贴近真实环境,在仿真中可以观察到软硬件运行的所有情况,这样可以快速有效地定位问题并进行系统性能综合分析。但是系统级软硬件协同仿真验证也存在验证平台搭建周期长、编译仿真时间长和资源消耗大的问题。针对这些问题可以采用VMM方法学推荐的方法和标准函数库,并采用成熟的VIP(Verification Intellectual Property),快速搭建验证平台。同时通过一次编译多次仿真的验证方式,以提高验证效率,缩短验证周期。

  图1所示是一种符合VMM标准的系统级软硬件协同仿真验证平台。在这里,硬件指RTL(Register Transfer Lever)设计,包括ARM核处理器模型。软件指用汇编语言和C语言编写的程序,通过编译加载到仿真环境中由ARM核处理器模型执行[5]。验证平台由SystemVerilog语言实现,在RTL级仿真验证。

  1.1 验证平台的架构

  图1所示的验证平台符合可重用性[2,6],即不同的DUT(Design Under Test)模块可以共用同一个验证平台。验证平台结构被模块化和层次化。每个模块的功能和层与层之间的接口被明确定义,这使得验证平台十分灵活。

  1.1.1 测试层

  测试层主要是编写各种测试案例(Testcase),包括修改生成器的约束,定义新的随机场景,同步不同事物处理器和创建定向激励[2]。通常,在仿真的进行中要不断查看搜集的覆盖率,并以此来修改随机激励的约束条件,或者针对难以覆盖的边角情况编写定向激励。适当的约束条件可提高覆盖率收敛速度。

  1.1.2 场景层

  场景层由生成器(Generator)产生可控且同步的事务。生成器根据测试层提供的静态变量和约束条件,随机生成不同的配置信息和数据。配置信息通过功能层的事务处理器传递给命令层的软件程序,用于配置DUT。同时配置信息还要传到VIP事务处理器用于配置VIP模块。

  1.1.3 功能层

  功能层将场景层随机生成的配置信息和数据通过事先约定的通道传递给命令层的软件程序,另外检测VIP事务处理器传回的数据,送给计分板(Scoreboard),实现验证平台的自动检查功能。

  1.1.4 命令层

  命令层包括控制ARM核运行的软件程序(ARM Core Software,图1中带纹理方框),需要接收功能层通过通道(Channel)传递过来的配置信息和数据,同时还要配置和驱动DUT完成数据传输。VIP事务处理器(VIP Transfer)是用于验证DUT的成熟验证IP模块。VIP监视器(VIP Monitor)属于VIP模块,用于监视DUT与外部通信的接口信号。命令层还包含一个或多个AMBA总线监视器,属于成熟的VIP模块,用于监视多层AMBA总线(Multi-layer AMBA Bus)[7]。

  1.1.5 信号层

  在信号层,例化了所有SoC模块,实现系统级的功能验证。除AMBA总线外,主要还包括ARM核、片上RAM、中断控制模块、DMA控制模块以及其他模块。

  1.1.6 功能覆盖率

  功能覆盖率可以从验证平台的其他模块中收集,一般没有特定的限定。

  1.2 验证平台中软硬件通信方式

  上面所介绍的验证平台与其他验证平台最大的区别就是引入了软件程序,构建该验证平台的关键是软件与硬件之间的通信。一般软件是用汇编和C语言编写的,硬件与验证平台分别是用可综合Verilog语言和SystemVerilog语言编写的。在这里规定用软件程序与SV(SystemVerilog)之间的通信表示软件程序与硬件之间的通信,本文介绍以下三种软硬件通信方式。

  (1)软件向总线未用地址写数据实现软件程序向SV的单向通信;

  (2)通过SoC上的具有通信功能的模块,实现软件程序与SV之间的通信;

  (3)通过片内RAM,实现软件程序与SV间的双向通信。

  在实际使用过程中,通过第一种方法输出软件程序运行过程中的信息,通过第三种方法可以作为软硬件间信息通信的双向通道。图1所示的软硬件协同仿真验证平台就是通过第三种方式实现软硬件双向通信的,同时也用到了第一种方式,输出软件运行过程中的信息。第二种方式可以视情况使用。

  图2所示是一种系统级软硬件协同仿真验证平台的结构,虚线中为SoC的系统架构。为满足验证需求,在SoC系统架构中增添了两个模块:一个是Print Tube(PT)模块,用来实现软件仿真时的信息输出。当软件需要输出信息时,向PT模块写数据,PT模块会调用$display系统函数,显示传输过来的信息。另一个是RAM(Random Access Memory)模块,作为软件和SV的信息交互的通道。RAM模块有两个总线接口,一个链接到SoC系统总线上,软件可通过其读写RAM模块;另一个接口与验证平台中的BFM(Bus Function Model)模块链接,如AHB VIP Master[8]。同时在验证平台中使用RAL(Register Abstraction Layer)[9]方法,将RAM模块抽象为RAL模型。这样处理后验证平台对RAM模块的访问更简洁方便。

可能对这些感兴趣:
今年年初以来,温州市公安局联合多部门打击假币犯罪,共收缴了229万余元假币,为全省最多。 昨天下午,温州警方通报:最近首次发现了大量冠字
[ “名义标的、实物交割,这样设计的好处是,可以有效防止逼仓,且现货上看,国债的二级市场流动性略显不足,国债期货还可以增强现货的流通
  沪深300指数10月30日高开后冲高回落,股指期货仿真交易当月合约贴水70.46点,贴水水平有所收敛。  沪深300指数10月30日高开,盘中冲高回落
  周三,仿真期指各合约大幅高开,其中0812、0903、0906均高开近百点,随即各合约快速回落后在平盘点位上方震荡。由于现货指数高开低走,各合约
【国家树脂网(www.360gsz.com)2012年12月10日讯:周四溴双酚A市场小幅震荡、行情维坚,相对高位、平稳整理。主流商谈价格25566元/吨元/吨,周内基
 畅销多年、广告深入人心、具有相当知名度的OTC,业内习惯称之为“品牌药”。在一些零售药店,品牌药常常被用来揽客,促销时被终端
锯材市场:菠萝格走货略好,五角星行情平淡,克隆货少;海棠木走货低位平稳;桦木销量不振。1、东南亚锯材市场:近期,菠萝格的
A货网行业竞争的加剧,终端是影响区域市场销量的核心命脉,提高终端销量是提高区域市场销量的重中之重,企业向终端要销量,要围绕“提高终端深度铺市率”和解决终
高仿奢侈品商城链接

推荐阅读