VMM验证方法在AXI总线系统中实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VMM验证方法在AXI总线系统中实现

VMM验证方法在AXI总线系统中实现   摘要:本文基于中科院计算所某项目实际工作,介绍如何利用高级验证语言、验证基本库、以及成熟的验证模型,快速建立可随机产生测试向量、向量场景可调制、并具有覆盖率收集功能的验证系统。项目采用SystemVerilog语言,测试平台架构基于Synopsys公司最新的验证方法VMM,并使用DesignWare系列验证IP加快平台的建立。   关键词:SystemVerilog 验证IP VMM      1. 引言      芯片验证(Verification)越来越像是软件而不是硬件工作。这点已逐渐成为业界的共识。   本文以软件工程的视角切入,分析中科院计算所某片上系统(SoC)项目的验证平台,同时也介绍当前较为流行的验证方法,即以专门的验证语言结合商用的验证模型,快速建立测试平台(Test-bench)并在今后的项目中重用(reuse)之。   文中提及的高级验证语言、方法学、验证基本库和仿真模型,这一套方法在近几年中,正逐渐为业界广为采用。计算所的工作,就是以这些最新成果为起点,对基于AXI总线协议的SoC,建立测试平台。   这种新方法可大幅度提高芯片验证的效率,尤其使项目初期的投入极大地降低。原因之一是,面向对象编程等软件工程方法的大量引入。当然,这也对验证工程师的技能提出了新的要求。      2. 验证方法      在验证领域,显见的趋势是语言划一、仿真平台统一、更加正规和高效。以本文介绍的项目为例,语言是SystemVerilog,平台则基于VMM构建,更有Verification IP助力,大幅提升了效率。正是因为部件可重用、平台结构化、以覆盖率驱动和高度自动化等特点,验证工作也愈加正规,有流程可循。   专门的验证语言,面世已有数年之久。它们出自于传统的纯粹Verilog(有时,部分引入C/C++)描述的验证系统,并有很大发展:Vera、e语言和目前已成IEEE标准的SystemVerilog就是这段时期技术创新的成果。   面向对象编程(Object-Oriented Programming)特性,溯其源头便是C++语言。早在纯Verilog语言验证的时代,已有利用C++开发可重用验证代码的做法。工程师们看中的恰是OOP的封装、继承、多态、及可重用等优异特性。   验证语言没有相应函数库的支持,语言本身也很难发挥效力。举一个大家熟知的例子,视窗(Windows)编程中,使用C语言直接调用视窗系统的编程接口(API)实现,是较为传统的做法,可目前却鲜有视窗程序员这样应用。为什么?工作量巨大,需维护的信息太多,从窗口尺寸,菜单列表,到程序算法,都要加以考虑。因而作为解决方案之一的微软基本库(MFC)才得以大行其道。与之相得益彰的是,C++作为微软基本库的描述语言,也随视窗系统的传播,广为流行开来。   现代芯片验证领域,无例外地也出现了类似状况。大量新方法、新模型、新类库,不断涌现,减轻了验证工程师们重复开发底层代码的负荷,将更多精力投入到实际项目上。这一套新思路中,主要构成部分便是验证语言(如Vera、SystemVerilog)、验证基本库(RVM、VMM),和相应的验证模型(Verification IP)。      3. VMM的应用      VMM不仅是方法学,更是该方法的具体实现。它包括一系列的类库(class library)、类对象(object)联接关系,以及用户定制的代码。   如图1所示的测试平台中,各部件(component),或即对象,是VMM基本类/扩展类的实例化(Instantiate)。所涉及到的VMM基本类有vmm_xactor、vmm_scenario_gen和vmm_data等。      图1      联接各部件,构成一个整体还需要其他一些基本类,包括vmm_env、vmm_channel以及vmm_xactor_callbacks等。    除此之外,用户要根据芯片的实际状况,添加或修改约束条件(constraint)、接口联线(interface)、执行步骤、覆盖率定义和自动比对机制(auto-check)。      3.1 背景   该种类型的验证平台充分利用了软件工程的成果,将整个测试平台按照所实现的功能,分门别类予以切割,实现各模块独自开发、分别维护。    目前,芯片规模趋于庞大,协议愈形复杂,通常要传递海量数据,并拥有数目繁多的端口。如果还以先前纯Verilog的方式建立验证系统,将很难满足芯片开发、投片的进度。    极而言之,简单地激励DUT输入端口、监控相应的输出端口和编写临时性的代码来做数据比对,这种验证方法已相当落后了。当然,我们也看到:

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档