CN117234941A - Mcu芯片验证平台和方法 - Google Patents
Mcu芯片验证平台和方法 Download PDFInfo
- Publication number
- CN117234941A CN117234941A CN202311339820.9A CN202311339820A CN117234941A CN 117234941 A CN117234941 A CN 117234941A CN 202311339820 A CN202311339820 A CN 202311339820A CN 117234941 A CN117234941 A CN 117234941A
- Authority
- CN
- China
- Prior art keywords
- axi
- ahb
- mcu chip
- interface
- verification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 154
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012360 testing method Methods 0.000 claims abstract description 97
- 238000004088 simulation Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 84
- 230000005284 excitation Effects 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 239000003795 chemical substances by application Substances 0.000 description 35
- 239000003153 chemical reaction reagent Substances 0.000 description 6
- 238000010200 validation analysis Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 239000012042 active reagent Substances 0.000 description 2
- 239000013543 active substance Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请涉及Mcu芯片验证平台和方法,该系统通过以测试用例替代核灵活发起axi和ahb协议相关的总线请求,不再需要编写特定的C程序,而且如果核接口协议不变,平台可以很容易的在不同mcu芯片验证中重用。相比于传统的FPGA验证平台,上述技术方案可以在仿真验证中同步抓取被测mcu芯片内部所有信号的运行情况,整个过程只需设置打开抓取功能即可,从而大大提高了被测mcu芯片问题的定位效率,最终达到了大幅提高mcu芯片验证效率的目的。
Description
技术领域
本发明属于数据处理技术领域,涉及一种Mcu芯片验证平台和方法。
背景技术
随着科技的快速发展和技术的更新迭代,mcu芯片的集成度越来越高,规模越来越大,从而使得mcu芯片验证的难度也越来越高。在以往mcu芯片规模较小的场景下,可以通过搭建FPGA硬件平台,集成完整系统和软件的方式对芯片进行全场景的验证。而在mcu芯片规模较大时,这种方案需要大量的人力进行测试用例开发,以及硬件和软件环境的维护,并且该方案的测试调试过程较为繁琐,很小的问题也会消耗掉大量的定位时间,进而会影响芯片的开发进度,也即存在着mcu芯片验证效率不高的技术问题。
发明内容
针对上述传统方法中存在的问题,本发明提出了一种Mcu芯片验证平台和一种Mcu芯片验证方法,一种计算机设备和一种计算机可读存储介质,能够大幅提高mcu芯片验证效率。
为了实现上述目的,本发明实施例采用以下技术方案:
一方面,提供一种Mcu芯片验证平台,包括基于UVM验证方法学的顶层文件模组和接口模组,顶层文件模组通信连接接口模组,接口模组用于通信连接被测mcu芯片;
顶层文件模组中包括基于测试用例基类扩展的目标测试用例和验证环境,测试用例基类分别通过开发的axi通道函数和ahb通道函数与验证环境交互,验证环境包括axi系统配置组件、ahb系统配置组件、axi代理和ahb代理,axi系统配置组件用于配置axi环境,ahb系统配置组件用于配置ahb环境,axi代理用于通过axi通道函数执行对被测mcu芯片的验证操作,ahb代理用于通过上述ahb通道函数执行对被测mcu芯片的验证操作;目标测试用例用于提供被测mcu芯片所需的设定验证功能;
接口模组集成有基于axi协议的axi_interface接口组件和基于ahb协议的ahb_interface接口组件,axi_interface接口组件用于连接被测mcu芯片的核0axi接口,ahb_interface接口组件用于连接被测mcu芯片的核1ahb接口。
另一方面,还提供一种Mcu芯片验证方法,应用于一种Mcu芯片验证平台,平台包括基于UVM验证方法学的顶层文件模组和接口模组,顶层文件模组通信连接接口模组,接口模组用于通信连接被测mcu芯片;
顶层文件模组中包括基于测试用例基类扩展的目标测试用例和验证环境,测试用例基类分别通过开发的axi通道函数和ahb通道函数与验证环境交互,验证环境包括axi系统配置组件、ahb系统配置组件、axi代理和ahb代理,axi系统配置组件用于配置axi环境,ahb系统配置组件用于配置ahb环境,axi代理用于通过axi通道函数执行对被测mcu芯片的验证操作,ahb代理用于通过上述ahb通道函数执行对被测mcu芯片的验证操作;目标测试用例用于提供被测mcu芯片所需的设定验证功能;
接口模组集成有基于axi协议的axi_interface接口组件和基于ahb协议的ahb_interface接口组件,axi_interface接口组件用于连接被测mcu芯片的核0axi接口,ahb_interface接口组件用于连接被测mcu芯片的核1ahb接口;
方法包括步骤:
完成被测mcu芯片的rtl代码例化;
将被测mcu芯片的核0axi接口和核1ahb接口分别连接至axi_interface接口组件和ahb_interface接口组件;
根据被测mcu芯片的芯片规格对被测mcu芯片进行时钟接入与复位;
调用测试用例函数,启动平台仿真;
在创建阶段中进行验证环境实例化;
进行验证环境中的axi系统配置和ahb系统配置,加载被测mcu芯片的存储器中的初始值并完成芯片初始化配置;
通过分别调用axi通道函数和ahb通道函数执行对被测mcu芯片的功能验证;
根据功能验证过程中进行的错误统计后输出验证结果,结束仿真。
又一方面,还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的Mcu芯片验证方法的步骤。
再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的Mcu芯片验证方法的步骤。
上述技术方案中的一个技术方案具有如下优点和有益效果:
上述Mcu芯片验证平台和方法,通过以测试用例替代核灵活发起axi和ahb协议相关的总线请求,不再需要编写特定的C程序,而且如果核接口协议不变,平台可以很容易的在不同mcu芯片验证中重用。相比于传统的FPGA验证平台,上述技术方案可以在仿真验证中同步抓取被测mcu芯片内部所有信号的运行情况,整个过程只需设置打开抓取功能即可,从而大大提高了被测mcu芯片问题的定位效率,最终达到了大幅提高mcu芯片验证效率的目的。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中Mcu芯片验证平台的模组结构示意图;
图2为一个实施例中Mcu芯片验证平台的组件框架示意图;
图3为一个实施例中Mcu芯片验证方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
需要说明的是,在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。
本领域技术人员可以理解,本文所描述的实施例可以与其它实施例相结合。在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
为了解决mcu芯片利用传统FPGA验证方法的低效缺点,本申请研究后通过搭建一套基于UVM方法学的验证平台进行mcu芯片开发阶段的验证,通过开发基于UVM方法学的验证组件来实现mcu芯片的激励,开发相应的测试用例进行结果预期和自动比较,这样的仿真平台相对更加容易维护和重用。
基于UVM方法学搭建的mcu芯片验证平台,能够通过开发特定组件和测试赛用例实现mcu芯片所有功能的验证和自动比较。相比于传统FPGA验证平台能够验证到更多mcu芯片功能,能够在mcu芯片开发前期发现大量的问题。并且该平台能方便的抓取仿真过程中mcu芯片内部信号变化情况,用于问题定位,验证效率较FPGA平台高出数十倍。
下面将结合本发明实施例图中的附图,对本发明实施方式进行详细说明。
首先,需要简要说明的是,UVM验证方法学的关键特点一方面是可重用组件和标准化层次结构,另一方面是其systemverilog类库。关于UVM验证方法学中的组件功能和作用:UVM工作台的结构自上而下包括顶层文件testbench、接口层interface和待测部分dut等三个部分,其中,interface用于连接顶层文件和dut,dut可以是需要测试验证的各类产品。
顶层文件中,最外层为验证平台运行的起点——testcase(测试用例),要验证dut的功能越多,包含的测试用例也就越多。然后是平台最顶层的模块——环境模块environment(缩写为evn),它被实例化在测试用例中,当运行一个测试用例时,在创建阶段(build phase)中会动态构建environment这个组件,environment中包含了代理(agent)和记分板(scoreboard)等组件,并且完成agent和scoreboard之间通信信道的连接。
其中,agent(缩写为agt)的作用类似一个子环境(sub env),里面包含了激励源(sequencer),驱动器(driver)和监视器(monitor)这些组件。在完成构建这些组件之后,会连接sequencer和driver之间通信信道,monitor的通信端口连接到agent的通信端口上,以便通过agent和scoreboard等组件进行连接。
sequencer(可缩写为sqr)是产生激励的组件,准确地来说,激励是从依附于sequencer的激励文件(sequence)中产生的。对于一个sequencer而言,可以有多个sequence,不同sequence可用于对应产生不同的激励,例如但不限于长度固定的数据包、长度随机的数据包、读命令的数据包、写命令的数据包、带校验的数据包和意出错的数据包,配合测试用例testcase,不同testcase可以选取不同的sequence运行在sequencer这个组件中,产生符合测试者意图的激励,并通过sequencer和driver之间的信道传输给driver。
driver(可缩写为drv)是将sequencer产生的激励转化为驱动信号由interface驱动到dut中的组件。sequencer和driver之间紧密配合,驱动dut工作。monitor(可缩写为mon)是采集dut信号的组件,信号被采集回来用于进行监测和比对。所以monitor采集到的信号会封装为交易(transaction),由通信信道传输到其他组件,比如被送到记分板(scoreboard)中进行比较。
此外,agent中还可以包含配置组件(config),用来存储和控制agent的配置信息。agent还可以有active(主动)agent和passive(被动)agent之分,前者通常是主代理(master agent),包含向dut输送激励和从dut采集输出两部分内容,即包括了sequencer、driver和monitor三个组件。而passive agent则是从代理(slave agent),不驱动dut,只用来收集dut的输出,也就是只有monitor组件,不包含sequencer和driver。根据不同项目可以选择选用active agent或者passive agent。而在验证工程中,可以开发一个agent,包括了sequencer、driver和monitor这几个部分,然后设置一个变量,用于决定agent当前是active agent还是passive agent,如果是前者则会例化sequencer、driver和monitor,如果是后者则仅仅例化monitor。
scoreboard(可缩写为scb)是记分板组件,用来收集dut的输出以与期望值进行比对。dut的输出通常由monitor采集,期望值则可以根据实际情况和比对内容的不同而有不同处理方式,例如可以直接从monitor采集dut的输入作为期望值,或者从driver中取原始的激励作为期望值。在dut比较复杂的情况下,还可引入参考模型(reference model)对原始的激励进行转化,从而和dut的输出进行比对。reference model可以是system verilog语言、c语言或者其他语言编写。scoreboard实现了自动比对,不仅解决了验证工程师手工比对的繁杂和易出错的问题,而且是大规模回归测试的前提条件。
UVM工作台的层次划分:从上而下分别可以划分为测试层test、场景层scenario、功能层function、命令层command和信号层signal。其中,test层由各种测试用例testcase组成。scenario层由产生激励的sequencer构成。function层由记分板scoreboard构成。command层由驱动器driver和监视器monitor这种与接口层interface打交道的组件构成。signal层通过接口层interface与dut进行交互。如此,便形成了一个面向高层建模的可重用验证平台。
systemverilog类库:其一方面包括了各种组件的基础代码,如uvm_driver和uvm_scoreboard等,验证工程师可以通过扩展这些源代码,而为各种验证项目开发组件和搭建验证平台。另一方面这些类库包含了各种内建的函数,例如copy函数和compare函数等,这些通用函数帮助验证工程师减少了工作量,节省开发时间。
请参阅图1,在一个实施例中,提供了一种Mcu芯片验证平台100,包括基于UVM验证方法学的顶层文件模组11和接口模组13。顶层文件模组11通信连接接口模组13,接口模组13用于通信连接dut部分,在本实施例中,dut选为被测mcu芯片101,也即验证平台的interface部分。顶层文件模组11中包括基于测试用例基类扩展的目标测试用例和验证环境,测试用例基类分别通过开发的axi通道函数和ahb通道函数与验证环境交互。验证环境包括axi系统配置组件、ahb系统配置组件、axi代理和ahb代理。axi系统配置组件用于配置axi环境。ahb系统配置组件用于配置ahb环境。
axi代理用于通过axi通道函数执行对被测mcu芯片101的验证操作。ahb代理用于通过上述ahb通道函数执行对被测mcu芯片101的验证操作。目标测试用例用于提供被测mcu芯片101所需的设定验证功能。接口模组13集成有基于axi协议的axi_interface接口组件和基于ahb协议的ahb_interface接口组件,axi_interface接口组件用于连接被测mcu芯片101的核0 axi接口,ahb_interface接口组件用于连接被测mcu芯片101的核1 ahb接口。
上述Mcu芯片验证平台100,通过以测试用例替代核灵活发起axi和ahb协议相关的总线请求,不再需要编写特定的C程序,而且如果核接口协议不变,平台可以很容易的在不同mcu芯片验证中重用。相比于传统的FPGA验证平台,上述技术方案可以在仿真验证中同步抓取被测mcu芯片101内部所有信号的运行情况,整个过程只需设置打开抓取功能即可,从而大大提高了被测mcu芯片101问题的定位效率,最终达到了大幅提高mcu芯片验证效率的目的。
需要说明的是,所有的测试用例(包括针对当前验证芯片在当下所需验证的目标功能而开发的目标测试用例)都从测试用例基类base_test扩展而来,用来实现相关功能自动检查。如图2所示,是Mcu芯片验证平台100的平台框架,采用systemverilog语言编写所需开发的testbench顶层文件,同样的,被测mcu芯片101的rtl代码也采用了systemverilog语言编写。
在Mcu芯片验证平台100中,Base_test为所有测试用例基类,在此基类中会实现所有测试用例使用的公用函数。在验证环境组件Environment中集成了基于axi协议的各类验证组件以及基于ahb协议的各类验证组件,以用于分别实现对被测mcu芯片101的各相应功能的测试验证。其中,开发的axi通道函数(axi_access函数)用于实现通过调用axi_sequencer激励源启动axi_reg_wr_sequence激励,进行被测mcu芯片101的地址空间访问。此方式相比于由核直接发起地址空间访问要更灵活,还可以轻易修改axi总线的相关信息,并且仿真速度也比使用核通过C程序发起访问快数百倍。
同样的,开发的ahb通道函数(ahb_access函数)用于实现通过ahb_sequencer激励源启动ahb_reg_wr_sequence激励,进行被测mcu芯片101的地址空间访问。此方法相比于由核直接发起地址空间访问要更灵活,还可以轻易修改ahb总线的相关信息,并且仿真速度也比使用核通过C程序发起访问快数百倍,这些都为Mcu芯片验证平台100的验证效率提升奠定了扎实的基础。
一般的,在验证环境Environment中,集成了axi系统配置组件(axi_sys_cfg)、ahb系统配置组件(ahb_sys_cfg)、axi代理(axi_agent)和ahb代理(ahb_agent)。把以上组件根据相应的平台层次关系连接好后,把axi_sys_cfg和ahb_sys_cfg分别下发给axi_agent和ahb_agent,以用于实现这两个组件的自动化配置。
在一个实施例中,axi代理可以包括axi主驱动、axi监视器、axi交易事务、axi激励文件、axi激励源、axi_port端口配置组件和axi接口验证组件。axi主驱动用于根据axi协议将axi交易事务中包含的axi协议相关信息驱动到被测mcu芯片101的核0axi接口。axi监视器用于根据axi协议监控axi总线信号,将axi总线上的数据收集并打包为axi交易事务后通过axi_port端口发送给计分板。axi激励源用于根据axi激励文件生成axi激励并传输给axi主驱动,axi激励实现的axi请求参数控制包括读写、地址、数据、突发类型、突发大小、port端口类型和突发长度。axi_port端口配置组件用于完成axi环境组件配置;axi环境组件配置包括配置地址线位宽、数据线位宽、id位宽、突发(outstanding)深度和axi协议版本。axi接口验证组件用于实现axi协议中定义的所有接口信号。
可以理解,axi主驱动也即axi_master_driver,axi监视器也即axi_monitor,axi交易事务也即axi_transaction,axi激励文件也即axi_reg_wr_sequence,axi激励源也即axi_sequencer,axi_port端口配置组件也即axi_port_cfg,axi接口验证组件也即axi_interface。axi_sys_cfg组件用于通过axi_port端口配置组件来具体实现axi环境组件配置。
具体的,axi_reg_wr_sequence用于实现axi请求参数控制,例如可以包括读写、地址、数据、突发类型(burst type)、突发大小(burst size)、port端口类型(prot type)、突发长度(burst length)、atomic type(一种数据类型,通常用于描述事务级别的数据,它表示一个不可分割的数据单元,通常是一个事务,用于传递或交换信息)、outstanding深度和字节选通等。axi_sequencer用于充当axi_sequence和axi_master_driver之间的桥梁。
axi_monitor则用于根据axi协议监控axi总线信号,可以将axi总线上的相关数据收集起来并且打包后通过port发送给其他组件。同时axi_monitor中也实现了协议相关的检查,当axi总线出现违背协议的情况时,axi_monitor就会报错。
在一个实施例中,ahb代理包括ahb主驱动、ahb监视器、ahb交易事务、ahb激励文件、ahb激励源、ahb_port端口配置组件和ahb接口验证组件。ahb主驱动用于根据ahb协议将ahb交易事务中包含的ahb协议相关信息驱动到被测mcu芯片101的核1ahb接口。ahb监视器用于根据ahb协议监控ahb总线信号,将ahb总线上的数据收集并打包为ahb交易事务后通过ahb_port端口发送给计分板。ahb激励源用于根据ahb激励文件生成ahb激励并传输给ahb主驱动,ahb激励实现的ahb请求参数控制包括读写、地址、数据、突发类型、突发大小、port端口类型和突发长度。ahb_port端口配置组件用于完成ahb环境组件配置;ahb环境组件配置包括配置地址线位宽、数据线位宽、id位宽和axi协议版本。ahb接口验证组件用于实现ahb协议中定义的所有接口信号。
可以理解,ahb主驱动也即ahb_master_driver,ahb监视器也即ahb_monitor,ahb交易事务也即ahb_transaction,ahb激励文件也即ahb_reg_wr_sequence,ahb激励源也即ahb_sequencer,ahb_port端口配置组件ahb_port_cfg,ahb接口验证组件也即ahb_interface。
具体的,ahb_reg_wr_sequence用于实现ahb请求参数控制,例如可以包括读写、地址、数据、burst type、burst size、prot type和burst length等。ahb_monitor用于根据ahb协议监控ahb总线信号,可以将ahb总线上的相关数据收集起来并且打包通过port发送给其他组件。同时ahb_monitor中也实现了协议相关的检查,当ahb总线出现违背协议的情况时,ahb_monitor就会报错。ahb_sequencer充当ahb_sequence和ahb_master_driver之间的桥梁。ahb_sys_cfg组件通过ahb_port端口配置组件来具体实现ahb环境组件配置。
由于所有的测试用例都是从测试用例基类base_test扩展来的,因此都可以通过调用base_test中定义的axi_access函数和ahb_access函数来分别进行被测mcu芯片101的地址空间的访问,通过地址空间访问可以完成例如存储体的读写访问,外设模块的寄存器访问等操作。
在一个实施例中,提供一种Mcu芯片验证方法,应用于一种Mcu芯片验证平台,该平台包括基于UVM验证方法学的顶层文件模组和接口模组。顶层文件模组通信连接接口模组,接口模组用于通信连接被测mcu芯片。顶层文件模组中包括基于测试用例基类扩展的目标测试用例和验证环境。测试用例基类分别通过开发的axi通道函数和ahb通道函数与验证环境交互。验证环境包括axi系统配置组件、ahb系统配置组件、axi代理和ahb代理。axi系统配置组件用于配置axi环境。ahb系统配置组件用于配置ahb环境。axi代理用于通过axi通道函数执行对被测mcu芯片的验证操作。ahb代理用于通过上述ahb通道函数执行对被测mcu芯片的验证操作。目标测试用例用于提供被测mcu芯片所需的设定验证功能。接口模组集成有基于axi协议的axi_interface接口组件和基于ahb协议的ahb_interface接口组件。axi_interface接口组件用于连接被测mcu芯片的核0axi接口,ahb_interface接口组件用于连接被测mcu芯片的核1ahb接口。
如图3所示,该Mcu芯片验证方法可以包括如下处理步骤:
S11,完成被测mcu芯片的rtl代码例化;
S12,将被测mcu芯片的核0axi接口和核1ahb接口分别连接至axi_interface接口组件和ahb_interface接口组件;
S13,根据被测mcu芯片的芯片规格对被测mcu芯片进行时钟接入与复位;
S14,调用测试用例函数,启动平台仿真;
S15,在创建阶段中进行验证环境实例化;
S16,进行验证环境中的axi系统配置和ahb系统配置,加载被测mcu芯片的存储器中的初始值并完成芯片初始化配置;
S17,通过分别调用axi通道函数和ahb通道函数执行对被测mcu芯片的功能验证;
S18,根据功能验证过程中进行的错误统计后输出验证结果,结束仿真。
可以理解,关于Mcu芯片验证方法中各平台特征的具体限定,可以参见上文中Mcu芯片验证平台100的相应限定,在此不再赘述。调用测试用例函数,也即uvm_test()函数后启动平台仿真:基于上述平台,在其创建阶段(build_phase)中实例化验证环境environment。在平台的end_of_elaboration_phase阶段中进行验证环境的部分随机参数的随机化,例如可以包括axi_sys_cfg组件和ahb_sys_cfg组件中涉及到的随机参数。
在平台的pre_reset_phase(预调整)阶段中进行被测mcu芯片中存储器的初始值的加载。在平台的pre_reset_phase阶段中把被测mcu芯片中核0axi接口的总线接口连接到验证组件axi_interface。在平台的pre_reset_phase阶段中把被测mcu芯片中核1ahb接口的总线接口连接到验证组件ahb_interface。在平台的configure_phase(配置)阶段中进行被测mcu芯片初始化相关的既有配置。在平台的shutdown_phase(断电)阶段中进行统一的仿真结束检查,针对一些被测mcu芯片中的状态寄存器进行检查等。在平台的report_phase(报告)阶段中进行错误统计,根据错误统计指示测试用例通过或者失败等数据结果。
上述Mcu芯片验证方法,通过以测试用例替代核灵活发起axi和ahb协议相关的总线请求,不再需要编写特定的C程序,而且如果核接口协议不变,平台可以很容易的在不同mcu芯片验证中重用。相比于传统的FPGA验证平台,上述技术方案可以在仿真验证中同步抓取被测mcu芯片内部所有信号的运行情况,整个过程只需设置打开抓取功能即可,从而大大提高了被测mcu芯片问题的定位效率,最终达到了大幅提高mcu芯片验证效率的目的。
在一个实施例中,axi代理包括axi主驱动、axi监视器、axi交易事务、axi激励文件、axi激励源、axi_port端口配置组件和axi接口验证组件。axi主驱动用于根据axi协议将axi交易事务中包含的axi协议相关信息驱动到被测mcu芯片的核0axi接口。axi监视器用于根据axi协议监控axi总线信号,将axi总线上的数据收集并打包为axi交易事务后通过axi_port端口发送给计分板。axi激励源用于根据axi激励文件生成axi激励并传输给axi主驱动,axi激励实现的axi请求参数控制包括读写、地址、数据、突发类型、突发大小、port端口类型和突发长度。axi_port端口配置组件用于完成axi环境组件配置;axi环境组件配置包括配置地址线位宽、数据线位宽、id位宽、突发深度和axi协议版本。axi接口验证组件用于实现axi协议中定义的所有接口信号。
在一个实施例中,ahb代理包括ahb主驱动、ahb监视器、ahb交易事务、ahb激励文件、ahb激励源、ahb_port端口配置组件和ahb接口验证组件。ahb主驱动用于根据ahb协议将ahb交易事务中包含的ahb协议相关信息驱动到被测mcu芯片的核1ahb接口。ahb监视器用于根据ahb协议监控ahb总线信号,将ahb总线上的数据收集并打包为ahb交易事务后通过ahb_port端口发送给计分板。ahb激励源用于根据ahb激励文件生成ahb激励并传输给ahb主驱动,ahb激励实现的ahb请求参数控制包括读写、地址、数据、突发类型、突发大小、port端口类型和突发长度。ahb_port端口配置组件用于完成ahb环境组件配置;ahb环境组件配置包括配置地址线位宽、数据线位宽、id位宽和axi协议版本。ahb接口验证组件用于实现ahb协议中定义的所有接口信号。
在一个实施例中,目标测试用例包括GPIO测试用例。可选的,结合图2给出了一个被测mcu芯片上GPIO功能验证过程的实例:首先基于UVM验证方法学开发一条GPIO测试用例,取名为gpio_test。gpio_test继承base_test。在用例的重载base_test中的end_of_elaboration_phase阶段,配置ahb_sys_cfg组件以确定当前需要的ahb协议版本、ahb数据位宽、ahb地址位宽和id位宽。配置芯片的运行配置,比如核运行频率、总线频率和GPIO模块运行频率等。配置完成后,会在configure_phase阶段中完成对应配置。
然后在main_phase(主体)阶段中进行GPIO模块的相关配置,这可以在main_phase阶段中调用base_test中的ahb_access函数,通过该函数来自动化配置GPIO模块中的寄存器,比如配置gpio pad IE使能、配置gpio电平检测和配置gpio中断使能等。
控制芯片pad随机出现高低电平,检查平台的cpu的IRQ(中断请求)是否可以收到GPIO模块发起的中断。读取GPIO模块的中断状态寄存器是否记录正确的状态。如果平台的计分板检查结果符合预期,那么会在report_phase阶段中打印pass(通过)信息,否则打印failed(失败)信息,以得到验证结果。然后仿真结束。
在一个实施例中,目标测试用例包括SRAM测试用例。可选的,还给出了一个被测mcu芯片上SRAM验证过程的实例:
开发一条SRAM用例,取名为sram_test。sram_test继承base_test。在用例的重载base_test中的end_of_elaboration_phase阶段,配置axi_sys_cfg组件以确定当前需要axi协议版本、axi数据位宽、axi地址位宽和id位宽等。配置芯片的运行配置,比如核运行频率、总线频率和SRAM模块运行频率等。配置完成后,会在configure_phase阶段中完成对应配置。
然后在main_phase阶段中调用base_test中的axi_access函数,通过该函数可以控制axi总线发起指定地址、burst_type、burst_size和burst_length的读写请求。通过平台的计分板比较写数据和读数据是否符合预期,然后会在report_phase阶段中打印pass信息或者failed信息,以得到验证结果。然后仿真结束。
以上开发的测试用例,可以通过开发makefile脚本自动调用仿真工具进行指定测试用例的仿真和高效的问题定位。
应该理解的是,虽然上述流程图3中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且上述流程图3的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如下处理步骤:完成被测mcu芯片的rtl代码例化;将被测mcu芯片的核0axi接口和核1ahb接口分别连接至axi_interface接口组件和ahb_interface接口组件;根据被测mcu芯片的芯片规格对被测mcu芯片进行时钟接入与复位;调用测试用例函数,启动平台仿真;在创建阶段中进行验证环境实例化;进行验证环境中的axi系统配置和ahb系统配置,加载被测mcu芯片的存储器中的初始值并完成芯片初始化配置;通过分别调用axi通道函数和ahb通道函数执行对被测mcu芯片的功能验证;根据功能验证过程中进行的错误统计后输出验证结果,结束仿真。
可以理解,上述计算机设备除上述述及的存储器和处理器外,还包括其他本说明书未列出的软硬件组成部分,具体可以根据不同应用场景下的具体计算机设备的型号确定,本说明书不再一一列出详述。
在一个实施例中,处理器执行计算机程序时还可以实现上述Mcu芯片验证平台各实施例中增加的步骤或者子步骤。
在一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如下处理步骤:完成被测mcu芯片的rtl代码例化;将被测mcu芯片的核0axi接口和核1ahb接口分别连接至axi_interface接口组件和ahb_interface接口组件;根据被测mcu芯片的芯片规格对被测mcu芯片进行时钟接入与复位;调用测试用例函数,启动平台仿真;在创建阶段中进行验证环境实例化;进行验证环境中的axi系统配置和ahb系统配置,加载被测mcu芯片的存储器中的初始值并完成芯片初始化配置;通过分别调用axi通道函数和ahb通道函数执行对被测mcu芯片的功能验证;根据功能验证过程中进行的错误统计后输出验证结果,结束仿真。
在一个实施例中,计算机程序被处理器执行时,还可以实现上述Mcu芯片验证平台各实施例中增加的步骤或者子步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线式动态随机存储器(RambusDRAM,简称RDRAM)以及接口动态随机存储器(DRDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可做出若干变形和改进,都属于本申请保护范围。因此本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种Mcu芯片验证平台,其特征在于,包括基于UVM验证方法学的顶层文件模组和接口模组,所述顶层文件模组通信连接所述接口模组,所述接口模组用于通信连接被测mcu芯片;
所述顶层文件模组中包括基于测试用例基类扩展的目标测试用例和验证环境,所述测试用例基类分别通过开发的axi通道函数和ahb通道函数与所述验证环境交互,所述验证环境包括axi系统配置组件、ahb系统配置组件、axi代理和ahb代理,所述axi系统配置组件用于配置axi环境,所述ahb系统配置组件用于配置ahb环境,所述axi代理用于通过所述axi通道函数执行对所述被测mcu芯片的验证操作,所述ahb代理用于通过上述ahb通道函数执行对所述被测mcu芯片的验证操作;所述目标测试用例用于提供所述被测mcu芯片所需的设定验证功能;
所述接口模组集成有基于axi协议的axi_interface接口组件和基于ahb协议的ahb_interface接口组件,所述axi_interface接口组件用于连接所述被测mcu芯片的核0axi接口,所述ahb_interface接口组件用于连接所述被测mcu芯片的核1ahb接口。
2.根据权利要求1所述的Mcu芯片验证平台,其特征在于,所述axi代理包括axi主驱动、axi监视器、axi交易事务、axi激励文件、axi激励源、axi_port端口配置组件和axi接口验证组件;
所述axi主驱动用于根据axi协议将所述axi交易事务中包含的axi协议相关信息驱动到所述被测mcu芯片的核0axi接口;
所述axi监视器用于根据axi协议监控axi总线信号,将axi总线上的数据收集并打包为所述axi交易事务后通过所述axi_port端口发送给计分板;
所述axi激励源用于根据所述axi激励文件生成axi激励并传输给所述axi主驱动,所述axi激励实现的axi请求参数控制包括读写、地址、数据、突发类型、突发大小、port端口类型和突发长度;
所述axi_port端口配置组件用于完成axi环境组件配置;所述axi环境组件配置包括配置地址线位宽、数据线位宽、id位宽、突发深度和axi协议版本;
所述axi接口验证组件用于实现axi协议中定义的所有接口信号。
3.根据权利要求1或2所述的Mcu芯片验证平台,其特征在于,所述ahb代理包括ahb主驱动、ahb监视器、ahb交易事务、ahb激励文件、ahb激励源、ahb_port端口配置组件和ahb接口验证组件;
所述ahb主驱动用于根据ahb协议将所述ahb交易事务中包含的ahb协议相关信息驱动到所述被测mcu芯片的核1ahb接口;
所述ahb监视器用于根据ahb协议监控ahb总线信号,将ahb总线上的数据收集并打包为所述ahb交易事务后通过所述ahb_port端口发送给计分板;
所述ahb激励源用于根据所述ahb激励文件生成ahb激励并传输给所述ahb主驱动,所述ahb激励实现的ahb请求参数控制包括读写、地址、数据、突发类型、突发大小、port端口类型和突发长度;
所述ahb_port端口配置组件用于完成ahb环境组件配置;所述ahb环境组件配置包括配置地址线位宽、数据线位宽、id位宽和axi协议版本;
所述ahb接口验证组件用于实现ahb协议中定义的所有接口信号。
4.一种Mcu芯片验证方法,应用于一种Mcu芯片验证平台,其特征在于,所述平台包括基于UVM验证方法学的顶层文件模组和接口模组,所述顶层文件模组通信连接所述接口模组,所述接口模组用于通信连接被测mcu芯片;
所述顶层文件模组中包括基于测试用例基类扩展的目标测试用例和验证环境,所述测试用例基类分别通过开发的axi通道函数和ahb通道函数与所述验证环境交互,所述验证环境包括axi系统配置组件、ahb系统配置组件、axi代理和ahb代理,所述axi系统配置组件用于配置axi环境,所述ahb系统配置组件用于配置ahb环境,所述axi代理用于通过所述axi通道函数执行对所述被测mcu芯片的验证操作,所述ahb代理用于通过上述ahb通道函数执行对所述被测mcu芯片的验证操作;所述目标测试用例用于提供所述被测mcu芯片所需的设定验证功能;
所述接口模组集成有基于axi协议的axi_interface接口组件和基于ahb协议的ahb_interface接口组件,所述axi_interface接口组件用于连接所述被测mcu芯片的核0axi接口,所述ahb_interface接口组件用于连接所述被测mcu芯片的核1ahb接口;
所述方法包括步骤:
完成被测mcu芯片的rtl代码例化;
将所述被测mcu芯片的核0axi接口和核1ahb接口分别连接至axi_interface接口组件和ahb_interface接口组件;
根据所述被测mcu芯片的芯片规格对所述被测mcu芯片进行时钟接入与复位;
调用测试用例函数,启动平台仿真;
在创建阶段中进行验证环境实例化;
进行验证环境中的axi系统配置和ahb系统配置,加载所述被测mcu芯片的存储器中的初始值并完成芯片初始化配置;
通过分别调用axi通道函数和ahb通道函数执行对所述被测mcu芯片的功能验证;
根据功能验证过程中进行的错误统计后输出验证结果,结束仿真。
5.根据权利要求4所述的Mcu芯片验证方法,其特征在于,所述axi代理包括axi主驱动、axi监视器、axi交易事务、axi激励文件、axi激励源、axi_port端口配置组件和axi接口验证组件;
所述axi主驱动用于根据axi协议将所述axi交易事务中包含的axi协议相关信息驱动到所述被测mcu芯片的核0axi接口;
所述axi监视器用于根据axi协议监控axi总线信号,将axi总线上的数据收集并打包为所述axi交易事务后通过所述axi_port端口发送给计分板;
所述axi激励源用于根据所述axi激励文件生成axi激励并传输给所述axi主驱动,所述axi激励实现的axi请求参数控制包括读写、地址、数据、突发类型、突发大小、port端口类型和突发长度;
所述axi_port端口配置组件用于完成axi环境组件配置;所述axi环境组件配置包括配置地址线位宽、数据线位宽、id位宽、突发深度和axi协议版本;
所述axi接口验证组件用于实现axi协议中定义的所有接口信号。
6.根据权利要求4或5所述的Mcu芯片验证方法,其特征在于,所述ahb代理包括ahb主驱动、ahb监视器、ahb交易事务、ahb激励文件、ahb激励源、ahb_port端口配置组件和ahb接口验证组件;
所述ahb主驱动用于根据ahb协议将所述ahb交易事务中包含的ahb协议相关信息驱动到所述被测mcu芯片的核1ahb接口;
所述ahb监视器用于根据ahb协议监控ahb总线信号,将ahb总线上的数据收集并打包为所述ahb交易事务后通过所述ahb_port端口发送给计分板;
所述ahb激励源用于根据所述ahb激励文件生成ahb激励并传输给所述ahb主驱动,所述ahb激励实现的ahb请求参数控制包括读写、地址、数据、突发类型、突发大小、port端口类型和突发长度;
所述ahb_port端口配置组件用于完成ahb环境组件配置;所述ahb环境组件配置包括配置地址线位宽、数据线位宽、id位宽和axi协议版本;
所述ahb接口验证组件用于实现ahb协议中定义的所有接口信号。
7.根据权利要求6所述的Mcu芯片验证方法,其特征在于,所述目标测试用例包括GPIO测试用例。
8.根据权利要求6所述的Mcu芯片验证方法,其特征在于,所述目标测试用例包括SRAM测试用例。
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求4至8任一项所述的Mcu芯片验证方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求4至8任一项所述的Mcu芯片验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311339820.9A CN117234941A (zh) | 2023-10-16 | 2023-10-16 | Mcu芯片验证平台和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311339820.9A CN117234941A (zh) | 2023-10-16 | 2023-10-16 | Mcu芯片验证平台和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117234941A true CN117234941A (zh) | 2023-12-15 |
Family
ID=89082593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311339820.9A Pending CN117234941A (zh) | 2023-10-16 | 2023-10-16 | Mcu芯片验证平台和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117234941A (zh) |
-
2023
- 2023-10-16 CN CN202311339820.9A patent/CN117234941A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115841089B (zh) | 一种基于uvm的系统级芯片验证平台及验证方法 | |
US8180620B2 (en) | Apparatus and method for performing hardware and software co-verification testing | |
CN112949233B (zh) | Fpga芯片的自动化开发方法及装置、电子设备 | |
US20220292248A1 (en) | Method, system and verifying platform for system on chip verification | |
CN113835945B (zh) | 芯片的测试方法、装置、设备及系统 | |
JP2002358249A (ja) | デバイスのバス・プロトコル準拠試験方法およびシステム | |
CN115686655B (zh) | 用于gpu ip验证的联合仿真系统 | |
WO2024046362A1 (zh) | 验证系统、验证方法、电子设备以及存储介质 | |
US20060212768A1 (en) | Verification circuitry for master-slave system | |
CN117422026B (zh) | 一种基于risc-v架构的处理器验证系统 | |
US8250545B2 (en) | Associated apparatus and method for supporting development of semiconductor device | |
CN114564394A (zh) | 一种测试用例确定方法、系统及相关组件 | |
CN113282439B (zh) | eMMC测试方法、装置、可读存储介质及电子设备 | |
US20050144436A1 (en) | Multitasking system level platform for HW/SW co-verification | |
CN116560931A (zh) | 一种芯片验证平台和方法、电子设备、存储介质 | |
CN116894411A (zh) | 带dma接口的spi模块验证平台和方法 | |
CN116340150A (zh) | 一种基于uvm的可重用的寄存器性能交互验证系统及其应用 | |
CN117234941A (zh) | Mcu芯片验证平台和方法 | |
US20070220338A1 (en) | Method and system for generating checkpoints of hardware description language simulations that include a specific model state together with a software testcase state | |
EP3734491A1 (en) | Method, apparatus, device, and medium for implementing simulator | |
CN113673106B (zh) | 一种fpga内核可编程仿真器 | |
CN115629928B (zh) | 一种面向类脑处理器的软硬协同验证方法及系统 | |
US11151294B1 (en) | Emulated register access in hybrid emulation | |
Zhezlov et al. | Automation of Test Environment Creation Aimed at IP-cores and SoC Development, Verification and Performance Analysis | |
Kim et al. | Developing a Portable Block Testbench and Reusable SOC Verification Scenarios Using IP-XACT Based Automation. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |