(1) 替换DUT,并修改接口信号名;
(2) 改写测试例test_1的约束条件,得到自己的测试例;
(3) 增加对DUT的配置操作。
上述工作于一天内完成,仿真输出结果有波形文件、Log文件、及覆盖率报告。
4.2 AXI-VIP支持的类
AXI VIP定义的类,都有相同的前缀名“dw_vip_axi”,它们构成vmm_env当中的大部分:
这些类将例化产生主设备部件、从没备部件、监控部件、配置对象、数据对象、和数据传输管道等等。它们有着各自的变量、函数,提供了丰富的控制功能,涵盖所有类型的操作。
功能的完备并未损害AXI-VIP的易用性,这点在项目中得到了印证。通过三天的培训与实做,工程师们能够通过“修改约束条件来随机产生测试向量”,按照芯片测试规范改写“自动比对机制”,添加“功能覆盖点”,并利用AXI监控部件“自动检查协议”并收集与AXI协议相关的覆盖率。
这当中,按照芯片测试规范改写“自动比对机制”没有现成的VMM基本类可用。我们是从Synopsys提供的简单范例人手,利用AX-I-VIP提供的回调函数集,获取数据交易信息,并实时地比对流出与流入数据。如同其他的验证系统,这部分工作是最多样化,也是最为核心的任务,所以占用三天当中的大部分时问,也在意料之中。
我们在下一节中简单介绍本项目“自动比对机制”的实现。
5.基于VMM的Scoreboard实现
本所验证组以VMM方法为指导,利用AXI-VIP提供的回调函数集,快速建立了该测试平台的自动比对机制。尽管还不能最终应用在十几个主/从设备的全系统中,但是,由于这部分代码封装在自定义的Scoreboard类当中,可重用,可扩展,并且符合VMM平台的接口要求,可以很方便地合入将来的系统中。
该Scoreboard类的核心部分SystemVerilog代码由Synopsys提供,如图3所示。左端是主设备数据缓冲及比对,右端为从设备数据缓冲及比对,中间的1到N和N到1转换,实现数据比对任务的分配。N个从设备的比对代码,都扩展自相同的类。正因为这种设计它是可无限扩展的。基于本项目只有两个主设备的特点,我们对左边的结构做了大幅度简化。
核心的比对部分之外,关键任务就是实时地获取各主/从没备的数据流。这在AXI-VIP(也包括Synopsys公司的其他VIP)中,已经有现成函数可用。本所工程师在两天时间内就学会使用,并结合实际完成了代码的开发与调试。
AXI-VIP包括主设备、从设备、与监控设备。它们在数据交易的几个关键点将得到一次函数回调(callback)的机会,如表1所示。