新闻中心

EEPW首页>测试测量>设计应用> VMM验证方法在AXI总线系统中的实现

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

作者: 时间:2012-06-29 来源:网络 收藏

后文的叙述都将围绕着这几方面展开。

-VIP的集成

如前所述,方法具备抽象分层结构、有九个执行步骤等优点,但它只是一个通用的方法,能否符合前边提出的四点判定标准还成问题。举例来说,计算所的主设备(master)仿真模型是以Verilog编写的,无法在短期内实现与平台的互联;完整的协议检测,对本所第一颗基于该总线的片上系统显得尤为重要;由于时间仓促,AXI仿真模型还有待修正。这些都是项目进程中无法回避的问题,而方法本身又没有提供解决方法。

1. 商用验证模型

AXI验证模型(VIP)是Synopsys公司的商用模型,可配置、数据交易严格符合AXI协议,具备完整的协议检查功能。最重要的一点是,AXI-VIP提供与VMM平台的接口。实际上,这个VIP本身就实现了VMM平台的驱动部件(Driver)加监控部件(Monitor)的功能:向下层是与DUT通过端口相联,向上层则有基于vmm_channel/vmm_xactor_callbacks的数据传输管道。如图2所示,除Test、Generator和Scoreboard之外的部分,AXI-VIP都已实现。这个商用模型对开发进度的实际贡献将取决于工程师能否快速上手。换言之,VIP的易用性决定了它的价值。

有鉴于此,Synopsys公司提供一个基于AXI-VIP的VMM范例。其中,DUT部分以AXI Bus VIP替代,TB部分实现了如图2所示的分层架构。工程师作为用户只需做如下修改,便能得到包含有简单数据交易、自检测、覆盖率统计等功能的验证平台:替换DUT,并修改接口信号名;改写测试例test_1的约束条件,得到自己的测试例;增加对DUT的配置操作。上述工作于一天内完成,仿真输出结果有波形文件、Log文件及覆盖率报告。

2. AXI-VIP支持的类

AXI- VIP定义的类都有相同的前缀名“dw_vip_axi”,它们构成vmm_env当中的大部分:

a. dw_vip_axi_master_rvm;

b. dw_vip_axi_slave_rvm;

c. dw_vip_axi_monitor_rvm;

d. dw_vip_axi_master_transaction_scenario_gen;

e. dw_vip_axi_port_model_configuration;

f. dw_vip_axi_system_model_configuration;

g. dw_vip_axi_master_transaction_channel;

h. dw_vip_axi_slave_resp_transaction_channel;

i. dw_vip_axi_monitor_transaction_channel。

这些类将例化产生主设备部件、从设备部件、监控部件、配置对象、数据对象和数据传输管道等等。它们有着各自的变量、函数,提供了丰富的控制功能,涵盖所有类型的操作。

功能的完备并未损害AXI-VIP的易用性,这点在项目中得到了印证。通过三天的培训与实做,工程师们能够通过修改约束条件来随机产生测试向量,按照芯片测试规范改写自动比对机制,添加功能覆盖点,并利用AXI监控部件自动检查协议并收集与AXI协议相关的覆盖率。

这当中,按照芯片测试规范改写“自动比对机制”没有现成的VMM基本类可用。我们是从Synopsys提供的简单范例入手,利用AXI-VIP提供的回调函数集,获取数据交易信息,并实时地比对流出与流入数据。如同其他的验证系统,这部分工作是最多样化,也是最为核心的任务,所以占用三天当中的大部分时间,也在意料之中。

基于VMM的Scoreboard实现

本所验证组以VMM方法为指导,利用AXI-VIP提供的回调函数集,快速建立了该测试平台的自动比对机制。尽管还不能最终应用在十几个主/从设备的全系统中,但是,由于这部分代码封装在自定义的Scoreboard类当中,可重用、可扩展,并且符合VMM平台的接口要求,可以很方便地合入将来的系统中。该Scoreboard类的核心部分SystemVerilog代码由Synopsys提供,如图3所示。

33.jpg

图3:自检测单元的结构框图。

左端是主设备数据缓冲及比对,右端为从设备数据缓冲及比对,中间的1到N和N到1转换,实现数据比对任务的分配。N个从设备的比对代码,都扩展自相同的类。正因为这种设计它是可无限扩展的。基于本项目只有两个主设备的特点,我们对左边的结构做了大幅度简化。

核心的比对部分之外,关键任务就是实时地获取各主/从设备的数据流。这在AXI-VIP(也包括Synopsys公司的其他VIP)中,已经有现成函数可用。本所工程师在两天时间内就学会使用,并结合实际完成了代码的开发与调试。

AXI-VIP包括主设备、从设备与监控设备,它们在数据交易的几个关键点将得到一次函数回调的机会,如表1所示。

1.jpg

表1:回调函数与相应管道的对应关系表。

依据这些回调函数对应的数据交易阶段,我们选取主设备的post_input_channel_get,从设备的pre_output_channel_put两函数来获取交易数据。

其它函数也可以用来获取数据,如监控设备的pre_activity_channel_put,就可以得到输入、输出两方面的数据。具体请参看AXI-VIP使用手册。另外,VMM回调函数还可以用于控制验证流程、插入错误数据等等,限于篇幅,本文不再展开。

本文小结

因为芯片验证工作的趋势是需要更多的软件知识和技巧。本文以中科院计算所的SoC项目为例,讲解了如何充分利用专业的验证语言基本库和商用的仿真模型快速建立测试平台。文中详细介绍了各部件的使用和AXI-VIP对象如何纳入VMM框架,以及这样做的实际意义。

VMM方法基于SystemVerilog语言,提供了完整的函数库,而作为补充的AXI-VIP,功能完备且易用性强。基于这一新方法,本所验证组工程师在五个工作日内快速建立了一套可方便扩展的测试平台。建立新系统的过程中,发现一个设计的漏洞,充分体现了该方法的高效性。



评论


相关推荐

技术专区

关闭