一种基于UVM的UFS设备端传输层的验证平台及方法
未命名
08-07
阅读:109
评论:0

一种基于uvm的ufs设备端传输层的验证平台及方法
技术领域
1.本发明涉及芯片功能验证领域,具体涉及一种基于uvm的ufs设备端传输层的验证平台及方法。
背景技术:
2.由于集成电路不断往轻、小、薄、低功耗发展,芯片设计的复杂度不断的增大。在现代电路前端设计的流程中,芯片验证的重要性不断地提高。在一个芯片项目中,验证工作占据了项目开发周期的大部分时间。传统的验证使用verilog验证技术,该技术可重用性和随机性差,需要消耗大量时间来搭建平台和测试用例。uvm验证技术,由于具有其面向对象和受约束的随机特性,使用uvm验证方法对芯片进行模块级和芯片级的验证,可以提高验证工作的效率,提高验证平台的可重用性。
3.ufs(通用闪存存储)协议是一种高性能闪存协议。为了实现高性能和低功耗的数据传输,协议使用了差分串行多通道数据传输、全双工、异步通信、命令队列等技术。协议引入了三层结构,包括应用层(uap),传输层(utp),互连层(uic)。应用层用于处理ufs使用的scsi命令,传输层用于执行高层ufs协议信息单元(upiu)命令的生成和处理,互连层用于处理ufs主机与设备间的连接。在ufs设备端芯片中,使用utp引擎模块来完成协议的传输层功能,该模块可以完成ufs协议信息单元(upiu)的生成和处理的功能。
4.ufs传输层utp是ufs协议中唯一由自身协议制定的协议层,其他层均引用了其他的协议,因此有必要对ufs传输层模块进行完备充分的验证。当下常用的ufs验证方案大部分是采用商用验证知识产权(vip)进行验证平台的搭建,由于商业保密的限制和vip内部源码加密的限制,使用该方法存在可操作性差,无法灵活使用,难以再开发的问题。经典的验证方法使用电路模型或者用实际电路来产生来自设备端和主机端的激励,该方法存在难以根据不同测试用例控制激励的生成的问题。
技术实现要素:
5.本发明基于上述问题,提出了一种基于uvm的ufs设备端传输层的验证平台及方法;该验证平台能够帮助验证工程师更充分完备的验证ufs设备端传输层,提高验证效率,验证在芯片级验证中覆盖不到的功能点。
6.为了实现上述目的,本发明提供如下技术方案:一种基于uvm的ufs设备端传输层的验证平台,包括验证顶层、测试用例层、验证环境层;
7.所述验证顶层包括待测设计的utp引擎模块;
8.所述测试用例层,为根据ufs协议和待测utp引擎模块设计规格书分析出的一个或多个验证功能点,通过多个测试序列的调用生成对应的激励数据,用于生成对应的功能点的验证激励;
9.所述验证环境层包括:寄存器模型、覆盖率收集器、计分板、参考模型和验证组件;其中,验证组件包括:ufs_host代理组件、数据总线代理组件和配置总线代理组件;
10.所述ufs_host代理组件包括:ufs_host驱动器模块、ufs_host监视器模块、ufs_host序列生成器模块;
11.所述数据总线代理组件包括:数据总线驱动器模块、数据总线监视器模块、数据总线序列生成器模块;
12.所述配置总线代理组件包括:配置总线驱动器模块、配置总线监视器模块、配置总线序列生成器模块;
13.所述寄存器模型通过一个转换器连接到配置总线序列生成器模块;
14.所述覆盖率收集器分别与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块连接;
15.所述参考模型分别与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块的输入数据采集端口连接;
16.所述计分板分别与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块的输出数据采集端口连接;计分板还与参考模型连接。
17.优选地,所述测试用例层通过配置不同序列的启动来产生不同的测试用例,不同的测试用例用于针对不同的验证功能点进行测试,以验证utp引擎模块。
18.优选地,所述ufs_host驱动器模块用于将ufs_host序列生成器模块发送的upiu格式事务包转化为cport格式的数据,驱动utp引擎模块的cport接口;所述ufs_host监视器模块用于采集utp引擎模块的cport接口上发送和接收到的数据,并将cport格式的数据转换成upiu数据,封装到upiu格式事务包中。
19.优选地,所述参考模型,用于模拟utp引擎模块的运行,从软件层面上模拟utp引擎模块的cport接口和数据总线接口之间不同数据类型的upiu数据的转换行为,并且生成预测的输出结果;
20.所述计分板与参考模型以及ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块的输出数据采集端口连接,将参考模型的预测输出结果和utp引擎模块运行的实际输出结果放置入对应队列中,将预测输出结果与实际输出结果进行比较。
21.一种验证方法,用于上述基于uvm的ufs设备端传输层的验证平台,包括以下步骤:
22.步骤一,根据ufs协议和待测utp引擎设计规格书,分析验证功能点,制定验证计划;
23.步骤二,根据验证计划,设计和构建验证顶层和各个验证环境组件,构建测试用例层的测试用例;初始化验证环境层和utp引擎模块,实例化各个验证组件,验证顶层的接口;连接各个验证组件,启动验证平台;
24.步骤三,ufs_host序列生成器模块、数据总线序列生成器模块和配置总线序列生成器模块分别获取各个序列的调度过来的事务类,将事务类发送到对应的ufs_host驱动器模块或数据总线驱动器模块或配置总线驱动器模块上;
25.步骤四,utp引擎模块对输入的数据做处理生成引擎模块输出,通过ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块将采集数据转化为事务类格式的数据包,再将对应事务包发送到参考模型和计分板;
26.步骤五,参考模型通过对输入数据进行计算,将数据包根据输出端口的数据格式做对应数据包的转化,与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模
块输出的数据包通过计分板进行数据一致性比对;
27.步骤六,根据ufs协议和utp引擎模块的功能,列举出对应需要覆盖的功能点,设计覆盖率采集器,将覆盖率采集器分别与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块连接;运行所有测试用例,生成覆盖率报告;
28.步骤七,对各个测试用例进行回归测试,收集代码覆盖率和功能覆盖率;分析覆盖率报告,对于未覆盖的点,新增测试用例来覆盖。
29.优选地,所述步骤一中,功能点包括data in、data out、command、response、ready to transfer、nop、task management、query、reject的upiu数据包的发送和接收功能,寄存器读写功能,command、task management、query操作的队列管理功能。
30.优选地,所述步骤五中,参考模型获取到输入数据后,根据寄存器模型分析出来的当前模块状态,模拟出utp引擎模块的运行结果,所述参考模型通过tlm端口将预测的结果发送到计分板。
31.优选地,所述步骤六中,所述覆盖功能点为输入upiu数据包和寄存器模型的值,根据不同的功能设置不同的覆盖率组;所述覆盖率收集器用于检查测试用例是否有覆盖到对应的数值,确认utp引擎模块的功能是否已经验证完备。
32.与现有方案相比,本技术方案的有益效果是:
33.与传统verilog和system verilog的验证平台相比,本发明验证平台分层设计,使用uvm验证方法学自带的方法库,可以显著提供验证工作人员的工作效率,而且uvm验证方法学的可重用度高,可以将平台和方法用于相似项目中,提高后续项目的验证效率。
34.与使用商用vip相比,本发明搭建平台的方法简便,流程简单,可操作性和可拓展性强,验证工程师可以更清晰的理解平台结构和验证方法,方便项目的交接。
35.与使用电路模型来验证存储器控制子系统和主机与utp引擎交互的方案相比,使用uvm代理模块来驱动与存储器控制子系统交互的激励,提高了验证的灵活度,可以验证模块的边界条件,提高验证的覆盖率。
36.通过参考模型和计分板,将输入的数据转换为upiu事务包,再转换为预测的输出数据,模块输出数据进行比对,实现协议信息单元一致性的实时检查,更方便电路缺陷的定位。
37.本发明验证平台可以实现ufs命令队列和全双工的验证;具有较高的复用性,针对设计结构不同的utp引擎模块,都可以通过该验证平台的设计思路完成验证;
38.本发明的验证平台基于uvm验证方法学搭建,具有层次化,复用性高的特点,可以提高ufs设备端传输层的utp引擎模块的验证效率。所述验证方法将使用uvm方法学构建定向和受约束的随机测试用例,数据比对机制容易实现,以代码覆盖率和功能覆盖率为驱动,可以提高验证的准确性和效率。
附图说明
39.图1为本发明基于uvm的ufs设备端传输层的验证平台的结构图;
40.图2为本发明验证平台的验证方法流程图。
具体实施方式
41.下面结合附图与具体实施方式对本发明作进一步详细的描述。
42.实施例
43.本实施例提供了一种基于uvm的ufs设备端传输层的验证平台,如图1,包括验证顶层、测试用例层、验证环境层。
44.验证顶层包括待测设计的utp引擎模块、接口。待测设计的utp引擎模块,与unipro通过cport接口交互,功能为将cport接口传来的数据转化为upiu格式的数据和将upiu格式的数据转化为cport接口数据。
45.所述接口为用于实现与待测设计的交互,在顶层例化待测设计和接口后,通过将接口句柄传递到对应组件的虚拟接口,就可以在对应组件上实现接口的使用。接口包括三种接口,分别为cport接口、数据总线接口、配置总线接口。所述接口是连接验证平台和待测设计utp引擎模块的桥梁,所述平台通过将例化的接口进行参数传递到对应驱动器,对待测模块进行驱动。
46.cport接口是utp引擎模块与unipro之间用于数据传输和响应的的接口。数据总线接口是utp引擎模块与芯片系统的内存进行数据传输的接口。
47.配置总线接口是用于配置和读取待测设计的寄存器的接口。
48.待测设计的utp引擎模块为ufs设备端传输层的utp引擎模块,其中包含了upiu数据包的传输功能和寄存器配置功能。
49.所述测试用例层,为根据ufs协议和待测utp引擎设计规格书分析出的一个或多个验证功能点,通过多个测试序列的调用生成对应的激励数据,用于生成对应的功能点的验证激励。测试用例通过配置不同序列的启动来产生不同的测试用例,不同的测试用例可以用于针对不同的验证功能点进行测试,从而全面完备地验证整个设备端utp引擎模块,发现设计的缺陷。
50.进一步的,所述测试序列用于生成激励数据,根据不同的验证功能点,配置不同的测试序列用于生成不同的激励验证待测模块。激励数据包括cport接口数据传输激励、数据总线的数据传输激励、配置总线的寄存器配置与读取激励。可以通过`uvm_do()系列宏指令指定具体的一个子序列产生测试激励,一个测试用例需要按照一定的顺序启动若干个子序列。
51.所述验证环境层,寄存器模型、覆盖率收集器、计分板、参考模型和验证组件;其中,验证组件包括:ufs_host代理组件、数据总线代理组件和配置总线代理组件。
52.所述寄存器模型是对utp引擎模块的寄存器进行建模,通过前门访问和后门访问的方式,完成对寄存器进行配置和读取的操作。寄存器模型通过一个转换器连接到配置总线序列发生器。
53.进一步的,前门访问是通过配置总线来对utp引擎模块内部的寄存器进行读写操作。后门访问是不通过配置总线对utp引擎模块内部寄存器进行存取的操作。
54.进一步的,所述转换器用于实现寄存器模型与配置总线代理组件之间的数据转换,包含以下两个要点。第一,实现uvm_reg_bus_op事务类与配置总线事务类中各自的数据映射;第二,实现reg2bus()和bus2reg()两个函数,这两个函数具体地实现了两种事务类的数据转换,函数名表明了它们的转化方向,验证技术人员需要具体地去制定这两个函数。
55.所述参考模型用于模拟utp引擎模块的运行,从软件层面上模拟cport接口和数据总线接口之间不同数据类型的upiu数据的转换行为,并且生成预测的输出结果。
56.进一步的,在ufs_host代理组件发送upiu过程,所述参考模型将cport接口采集的输入数据转换为数据总线代理组件输出的数据;在ufs_host代理组件接收upiu过程,所述参考模型将数据总线代理组件的输入数据转换为cport接口的输出数据。
57.所述计分板与参考模型以及ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块的输出数据采集端口连接,将参考模型的预测输出结果和utp引擎模块运行的实际输出结果放置入对应队列中,将预测输出结果与实际输出结果进行比较。
58.所述覆盖率收集器,通过功能覆盖率组和对应的采样函数完成功能覆盖率的采集。收集数据中出现过的值和对应值的变化。在本方案中,所述覆盖率收集器用于将各个监视器采集到的事务包进行采样。根据ufs协议和待测utp引擎模块功能点,指定要收集的覆盖率组和覆盖率点,使用sample()函数完成功能覆盖率的采集。在验证前期,可以不例化覆盖率组,保证更好的资源利用;在验证后期需要采集功能覆盖率时,再考虑例化、使能采样。
59.所述ufs_host代理组件用于封装ufs_host驱动器模块、ufs_host监视器模块、ufs_host序列生成器模块。所述ufs_host序列生成器模块用于接收ufs_host序列发送过来的ufs_host事务包。所述ufs_host驱动器模块与所述ufs_host序列生成器模块连接,用于请求ufs_host序列发生器发送ufs_host事务包,驱动cport接口产生激励。所述ufs_host监视器与cport接口连接,用于采集cport接口的数据。
60.进一步的,所述ufs_host序列生成器模块与所述ufs_host驱动器模块通过uvm专门定义的tlm端口进行通信,tlm通信是基于事务的通信方式,所述ufs_host驱动器模块是请求发起端,所述ufs_host序列生成器模块为请求的响应端。
61.进一步的,所述ufs_host驱动器模块与所述cport接口连接,在所述顶层中通过参数传递的方式将顶层的cport接口传递到所述ufs_host驱动器模块。所述ufs_host驱动器模块包含一个转化器,将upiu数据格式的事务包转化为cport接口的信号格式,生成cport接口对应激励。
62.进一步的,所述ufs_host监视器模块与所述cport接口连接,在所述验证顶层中通过参数传递的方式将验证顶层的cport接口传递到所述ufs_host监视器模块。所述ufs_host监视器模块包含一个转化器,将cport接口的信号数据转化成upiu数据事务包,采集cport接口对应激励。
63.所述数据总线代理组件用于封装数据总线驱动器模块、数据总线监视器模块、数据总线序列生成器模块。所述数据总线序列生成器模块用于接收数据总线序列发送过来的数据总线事务包。所述数据总线驱动器模块与所述数据总线序列生成器模块连接,用于请求数据总线序列发生器发送数据总线事务包,驱动数据总线接口产生激励。所述数据总线监视器模块与数据总线接口连接,用于采集数据总线接口的数据。
64.进一步的,所述数据总线序列生成器模块与所述数据总线驱动器模块通过uvm专门定义的tlm端口进行通信,tlm通信是基于事务的通信方式,所述数据总线驱动器模块是请求发起端,所述数据总线序列生成器模块为请求的响应端。
65.进一步的,所述数据总线驱动器模块与所述数据总线接口连接,在所述验证顶层
中通过参数传递的方式将验证顶层的数据总线接口传递到所述数据总线驱动器模块。
66.进一步的,所述数据总线监视器模块与所述数据总线接口连接,在所述验证顶层中通过参数传递的方式将验证顶层的数据总线接口传递到所述数据总线监视器模块,采集数据总线接口对应激励。
67.所述配置总线代理组件用于封装配置总线驱动器模块、配置总线监视器模块、配置总线序列生成器模块。所述配置总线序列生成器模块用于接收配置总线序列发送过来的配置总线事务包。所述配置总线驱动器模块与所述配置总线序列生成器模块连接,用于请求配置总线序列发生器模块发送配置总线事务包,驱动配置总线接口产生激励。所述配置总线监视器模块与配置总线接口连接,用于采集配置总线接口的数据。
68.进一步的,所述配置总线序列生成器模块与所述配置总线驱动器模块通过uvm专门定义的tlm端口进行通信,tlm通信是基于事务的通信方式,所述配置总线驱动器模块是请求发起端,所述配置总线序列生成器模块为请求的响应端。
69.进一步的,所述配置总线驱动器模块与所述配置总线接口连接,在所述验证顶层中通过参数传递的方式将验证顶层的配置总线接口传递到所述配置总线驱动器模块。
70.进一步的,所述配置总线监视器模块与所述配置总线接口连接,在所述验证顶层中通过参数传递的方式将验证顶层的配置总线接口传递到所述配置总线监视器模块,采集配置总线接口对应激励。
71.图2为本发明实例中基于uvm的ufs设备端传输层的验证平台的验证方法流程图,步骤如下:
72.步骤一,根据ufs协议和待测utp引擎设计规格书,提取验证功能点,制定验证计划。
73.具体的,所述ufs协议为jesd220e,所述待测utp引擎基本功能为编码和解码upiu数据包。
74.进一步的,根据功能点的划分,所提取的功能点,包括data in、data out、command、response、ready to transfer、nop、task management、query、reject的upiu数据包的发送和接收功能,寄存器读写功能,command、task management、query操作的队列管理功能,中断功能。
75.进一步的,将常用功能封装成子序列,其他序列可以调用这些子序列,为测试用例的构建做准备。
76.步骤二,根据验证计划,设计和构建验证顶层和各个验证组件,构建测试用例层的测试用例;初始化验证环境层和utp引擎模块,实例化各个验证组件,验证顶层的接口;连接各个验证组件,启动验证平台。
77.进一步的,所述测试用例的需要多个序列按一定的顺序启动,所述测试用例能覆盖一个或多个功能点,若干个测试用例完成utp引擎模块验证功能点的覆盖。
78.进一步的,根据对应的接口时序,设计对应的接口代理及其包含的驱动器、监视器、序列发生器组件。根据待测utp引擎模块的行为进行system verilog建模,设计参考模型。设计比较预期输出和实际输出的计分板。使用寄存器模型对utp引擎模块寄存器进行建模。
79.进一步的,在连接平台各个组件后,使用run_test语句启动平台。
80.步骤三,各个序列发送对应的事务类到对应的ufs_host序列生成器模块或数据总线序列生成器模块或配置总线序列生成器模块上,对应的ufs_host驱动器模块或数据总线驱动器模块或配置总线驱动器模块向各自对应的序列生成器模块请求事务包,根据事务包的信息驱动接口的激励。
81.步骤四,utp引擎模块对输入的数据做处理生成对应输出,通过ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块将采集数据转化为事务类格式的数据包,分别采集输入和输出的数据,再分别将对应事务包发送到参考模型和计分板。
82.进一步的,所述监视器从对应接口的输入数据和输出数据进行采样,为数据比对做准备。
83.具体的,所述输入数据包括写入cport rx接口的数据,数据总线读取的数据。
84.具体的,所述输出数据包括写入cport tx接口的数据,数据总线写出的数据。
85.步骤五,参考模型通过对输入数据和当前的寄存器配置进行计算,解析出当次数据对应的upiu数据包,将该数据包根据输出端口的数据格式做对应数据包的转化,与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块输出的数据包通过计分板进行数据一致性比对。
86.进一步的,所述参考模型获取到输入数据后,可以根据寄存器模型分析出来的当前模块状态,以此模拟出模块的运行结果。所述参考模型通过tlm端口将预测的结果发送到计分板。
87.进一步的,所述utp引擎模块的输出结果为对upiu的解码和编码,所述解码为将cport rx接口接收到的upiu数据进行转换,通过数据总线输出到对应地址空间,所述编码为将对应地址空间的upiu数据读取之后转换为cport tx数据输出。所述输出数据通过tlm端口发送到计分板中。
88.进一步的,所述计分板中包括两个进程,一个用于从tlm端口获取预测输出结果,将预测输出结果存放与预期结果队列中,另一个用于从tlm端口获取实际输出结果,将实际输出结果放入实际结果队列中。
89.进一步的,所述计分板获得实际输出结果时,搜索预测输出结果队列,寻找匹配的预测输出结果。若未找到匹配的预测输出结果,说明模块的输出没有对应的参考模型输出,记录此次错误。若找到匹配的预测输出结果,则进行数据包的比对,若比对一致,则功能正确,若比对不一致,输出打印错误信息,用于分析错误原因。
90.具体的,所述匹配为通过upiu数据包的lun、task tag、iid等数据进行输出数据的匹配。
91.步骤六,根据ufs协议和utp引擎模块的功能,列举出对应需要覆盖的功能点,指定每一个覆盖点的数据需要覆盖的范围,同一组功能点设置对应功能点覆盖组,将覆盖率采集器模块分别与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块连接。每一个测试用例结束会产生覆盖率文件,合并所有的覆盖率文件,生成覆盖率报告。
92.具体的,所述覆盖功能点是人为定义的感兴趣的功能点,在该实例中,所述覆盖功能点为输入upiu数据包和寄存器的值,根据不同的功能可以设置不同的覆盖率组。所述功能覆盖率采集器用于检查测试用例是否有覆盖到对应的数值,确认utp引擎模块的功能是否已经验证完备。
93.步骤七,对各个测试用例进行回归测试,收集代码覆盖率和功能覆盖率。分析覆盖率报告,对于未覆盖的点,新增测试用例来覆盖。
94.具体的,所述回归测试为在每一次因为修改设计缺陷和更新迭代修改rtl代码后,对已经验证过的设计再次进行验证的过程。
95.进一步的,所述测试用例包括定向的测试用例和受约束的随机测试用例,所述定向测试用例用于覆盖基本功能点和感兴趣的功能点,所述受约束的随机测试用例用于提高验证覆盖率。
96.进一步的,通过分析代码覆盖率和功能覆盖率,会发现未覆盖的功能和代码。需要更新验证计划,新增测试用例覆盖这部分未覆盖的点,直到代码覆盖率和功能覆盖率达标。
97.上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
技术特征:
1.一种基于uvm的ufs设备端传输层的验证平台,其特征在于:包括验证顶层、测试用例层、验证环境层;所述验证顶层包括待测设计的utp引擎模块;所述测试用例层,为根据ufs协议和待测utp引擎模块设计规格书分析出的一个或多个验证功能点,通过多个测试序列的调用生成对应的激励数据,用于生成对应的功能点的验证激励;所述验证环境层包括:寄存器模型、覆盖率收集器、计分板、参考模型和验证组件;其中,验证组件包括:ufs_host代理组件、数据总线代理组件和配置总线代理组件;所述ufs_host代理组件包括:ufs_host驱动器模块、ufs_host监视器模块、ufs_host序列生成器模块;所述数据总线代理组件包括:数据总线驱动器模块、数据总线监视器模块、数据总线序列生成器模块;所述配置总线代理组件包括:配置总线驱动器模块、配置总线监视器模块、配置总线序列生成器模块;所述寄存器模型通过一个转换器连接到配置总线序列生成器模块;所述覆盖率收集器分别与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块连接;所述参考模型分别与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块的输入数据采集端口连接;所述计分板分别与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块的输出数据采集端口连接;计分板还与参考模型连接。2.如权利要求1所述的基于uvm的ufs设备端传输层的验证平台,其特征在于:所述测试用例层通过配置不同序列的启动来产生不同的测试用例,不同的测试用例用于针对不同的验证功能点进行测试,以验证utp引擎模块。3.如权利要求1所述的基于uvm的ufs设备端传输层的验证平台,其特征在于:所述ufs_host驱动器模块用于将ufs_host序列生成器模块发送的upiu格式事务包转化为cport格式的数据,驱动utp引擎模块的cport接口;所述ufs_host监视器模块用于采集utp引擎模块的cport接口上发送和接收到的数据,并将cport格式的数据转换成upiu数据,封装到upiu格式事务包中。4.如权利要求1所述的基于uvm的ufs设备端传输层的验证平台,其特征在于:所述参考模型,用于模拟utp引擎模块的运行,从软件层面上模拟utp引擎模块的cport接口和数据总线接口之间不同数据类型的upiu数据的转换行为,并且生成预测的输出结果;所述计分板与参考模型以及ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块的输出数据采集端口连接,将参考模型的预测输出结果和utp引擎模块运行的实际输出结果放置入对应队列中,将预测输出结果与实际输出结果进行比较。5.一种验证方法,其特征在于:用于权利要求1所述的基于uvm的ufs设备端传输层的验证平台,包括以下步骤:步骤一,根据ufs协议和待测utp引擎设计规格书,分析验证功能点,制定验证计划;步骤二,根据验证计划,设计和构建验证顶层和各个验证组件,构建测试用例层的测试
用例;初始化验证环境层和utp引擎模块,实例化各个验证组件,验证顶层的接口;连接各个验证组件,启动验证平台;步骤三,ufs_host序列生成器模块、数据总线序列生成器模块和配置总线序列生成器模块分别获取各个序列的调度过来的事务类,将事务类发送到对应的ufs_host驱动器模块或数据总线驱动器模块或配置总线驱动器模块上;步骤四,utp引擎模块对输入的数据做处理生成引擎模块输出,通过ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块将采集数据转化为事务类格式的数据包,再将对应事务包发送到参考模型和计分板;步骤五,参考模型通过对输入数据进行计算,将数据包根据输出端口的数据格式做对应数据包的转化,与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块输出的数据包通过计分板进行数据一致性比对;步骤六,根据ufs协议和utp引擎模块的功能,列举出对应需要覆盖的功能点,设计覆盖率采集器,将覆盖率采集器分别与ufs_host监视器模块、数据总线监视器模块和配置总线监视器模块连接;运行所有测试用例,生成覆盖率报告;步骤七,对各个测试用例进行回归测试,收集代码覆盖率和功能覆盖率;分析覆盖率报告,对于未覆盖的点,新增测试用例来覆盖。6.如权利要求5所述的验证方法,其特征在于:所述步骤一中,功能点包括data in、data out、command、response、ready to transfer、nop、task management、query、reject的upiu数据包的发送和接收功能,寄存器读写功能,command、task management、query操作的队列管理功能。7.如权利要求5所述的验证方法,其特征在于:所述步骤五中,参考模型获取到输入数据后,根据寄存器模型分析出来的当前模块状态,模拟出utp引擎模块的运行结果,所述参考模型通过tlm端口将预测的结果发送到计分板。8.如权利要求5所述的验证方法,其特征在于:所述步骤六中,所述覆盖功能点为输入upiu数据包和寄存器模型的值,根据不同的功能设置不同的覆盖率组;所述覆盖率收集器用于检查测试用例是否有覆盖到对应的数值,确认utp引擎模块的功能是否已经验证完备。
技术总结
本发明提供了一种基于UVM的UFS设备端传输层的验证平台及方法;其中验证平台包括验证顶层、测试用例层、验证环境层;验证顶层包括待测设计的UTP引擎模块;所述测试用例层通过启动若干序列来实现相关功能的测试用例;所述验证环境层包括:寄存器模型、覆盖率收集器、计分板、参考模型和验证组件;其中,验证组件包括:UFS_HOST代理组件、数据总线代理组件和配置总线代理组件。该验证平台基于UVM验证方法学搭建,具有层次化,复用性高的特点,可以提高UFS设备端传输层的UTP引擎模块的验证效率。设备端传输层的UTP引擎模块的验证效率。设备端传输层的UTP引擎模块的验证效率。
技术研发人员:姜小波 马时新
受保护的技术使用者:华南理工大学
技术研发日:2023.04.12
技术公布日:2023/8/5
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/