基于UVM的可编程逻辑的仿真方法和系统与流程

文档序号:17949702发布日期:2019-06-18 23:56阅读:416来源:国知局
基于UVM的可编程逻辑的仿真方法和系统与流程

本发明属于可编程逻辑的仿真验证测试领域,尤其涉及一种基于uvm(通用验证方法学)的可编程逻辑的仿真方法和系统。



背景技术:

程序员根据pl(可编程逻辑)需求设计编写逻辑代码后,面临着pl的仿真验证任务,即证明pl代码是否与预期的功能设计一致。随着pl的设计越来越复杂,pl仿真验证任务变得越来越困难。

随着编程语言和验证手段方法越来越丰富,pl仿真验证中发展出了一些自动化的仿真验证平台,一般采用systemverilog语言或者基于systemverilog语言的uvm和vmm(虚拟机监控器),按照语法要求,按层次搭建验证环境,然后开发相应的顶层测试模块、测试激励自动生成模块、参考模型模块、虚接口连接模块和自动检查模块等;顶层测试模块开启测试命令,数据在激励自动生成模块产生,通过虚接口连接模块传递到被测对象和参考模型,被测对象接收到数据后根据要求进行处理,参考模型也对数据进行处理,最后被测对象、参考模型将产生的数据通过虚接口连接模块传递到自动检查模块做比对处理,自动检查模块输出比对的结果。

这样的可编程逻辑自动化验证平台的开发非常复杂,需要有一定的systemverilog技能基础的验证人员针对不同的产品编写代码、开发测试框架,验证门槛较高。此外,该自动化验证平台架构的可复用性一般,当pl产品比较多元化时,要执行验证任务,就要为每一个产品开发一套比较复杂的pl自动化验证平台,开发时间周期长,开发成本大,大大影响了pl仿真验证的效率。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中可编程逻辑自动化验证平台开发复杂、验证门槛高,可复用性一般的缺陷,提供一种基于uvm的可编程逻辑的仿真方法和系统。

本发明是通过下述技术方案来解决上述技术问题:

基于uvm的可编程逻辑的仿真方法,所述仿真方法包括:

生成测试脚本;所述测试脚本包括可编程逻辑的功能组件标识和测试策略;所述测试策略包括连接条件和测试用例标识;

执行所述测试脚本,以从验证平台库中调用与所述功能组件标识对应的测试组件和与所述测试用例标识对应的测试用例,并根据所述连接条件连接所述测试组件,以生成测试框架,还根据所述测试用例对所述测试框架进行仿真;

所述验证平台库包括基于uvm类构建的测试组件和测试用例。

较佳地,从所述验证平台库中调用与所述功能组件标识对应的测试组件和与所述测试用例标识对应的测试用例的步骤之前,还包括:

判断所述验证平台库中是否存在与所述功能组件标识对应的测试组件,并在判断为是时,执行调用所述测试组件的步骤;

和/或,判断所述验证平台库中是否存在与所述测试用例标识对应的测试用例,并在判断为是时,执行调用所述测试用例的步骤。

较佳地,在判断所述验证平台库中不存在与所述功能组件标识对应的测试组件时,所述仿真方法还包括:

生成测试组件的缺失提醒;

和/或,在判断所述验证平台库中不存在与所述测试用例标识对应的测试用例时,所述仿真方法还包括:

生成测试用例的缺失提醒。

较佳地,所述仿真方法还包括:

在接收到保存指令时,将新开发的测试组件或新开发的测试用例保存至所述验证平台库中;

所述保存指令包括所述新开发的测试组件或所述新开发的测试用例。

较佳地,所述仿真方法还包括:

获取仿真结果数据并输出。

基于uvm的可编程逻辑的仿真系统,所述仿真系统包括:

脚本生成模块,用于生成测试脚本;所述测试脚本包括可编程逻辑的功能组件标识和测试策略;所述测试策略包括连接条件和测试用例标识;

脚本执行模块,用于执行所述测试脚本,以从验证平台库中调用与所述功能组件标识对应的测试组件和与所述测试用例标识对应的测试用例,并根据所述连接条件连接所述测试组件,以生成测试框架,还根据所述测试用例对所述测试框架进行仿真;

所述验证平台库包括基于uvm类构建的测试组件和测试用例。

较佳地,所述仿真系统还包括:判断模块;

所述判断模块用于判断所述验证平台库中是否存在与所述功能组件标识对应的测试组件,并在判断为是时,调用所述脚本执行模块;

和/或,所述判断模块用于判断所述验证平台库中是否存在与所述测试用例标识对应的测试用例,并在判断为是时,调用所述脚本执行模块。

较佳地,所述可编程逻辑仿真系统还包括:提醒生成模块;

所述提醒生成模块用于生成缺失提醒;

在判断所述验证平台库中不存在与所述功能组件标识对应的测试组件时,所述判断模块还用于调用所述提醒生成模块;

和/或,在判断所述验证平台库中不存在与所述测试用例标识对应的测试用例时,所述判断模块还用于调用所述提醒生成模块。

较佳地,所述仿真系统还包括:

保存模块,用于在接收到保存指令时,将新开发的测试组件或新开发的测试用例保存至所述验证平台库中;

所述保存指令包括所述新开发的测试组件或所述新开发的测试用例。

较佳地,所述仿真系统还包括:

测试输出模块,用于获取仿真结果数据并输出。

本发明的积极进步效果在于:通过生成自动化的测试脚本,调用验证平台库中的测试组件和测试用例,通过连接调用的测试组件灵活配置测试框架,通过执行调用的测试用例规定测试的计划流程,大大简化可编程逻辑仿真验证开发过程,降低开发门槛;验证平台库收集整理了开发的测试组件、测试用例,可在后续仿真验证中重复使用,如果该项目所需要的资源在企业验证平台库中不存在,则另行开发并且添加到平台库中。通过这种方式,最大程度的复用了测试验证资源,提高测试效率。

附图说明

图1为本发明的实施例1的基于uvm的可编程逻辑仿真方法的流程图。

图2为本发明的实施例2的基于uvm的可编程逻辑仿真系统的模块结构图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

本实施例提供了一种基于uvm的可编程逻辑的仿真方法,用于实现对pl产品的自动化仿真,如图1所示,所述基于uvm的可编程逻辑的仿真方法包括:

步骤s01:生成测试脚本。

所述测试脚本包括可编程逻辑的功能组件标识和测试策略;所述测试策略包括连接条件和测试用例标识。其中,功能组件标识用于表征待测pl产品中各个功能模块(通过测试人员分析被测pl产品的功能确定),测试用例标识用于表征对待测pl产品进行仿真所需的测试用例,测试用例根据用户需求自行设置。需要说明的是,对pl产品进行不同需求的测试仿真时,可以针对需求生成多个测试脚本,仿真时依次执行多个测试脚本,直至所有测试脚本均被实现完毕。

步骤s02:判断验证平台库中是否存在测试脚本中与功能组件标识对应的测试组件以及与测试用例标识对应的测试用例。

其中,验证平台库存储有基于uvm类构建的测试组件和测试用例。测试组件可实现pl产品中各个功能模块相应的功能,例如,激励约束随机生成功能、数据通信功能、虚接口功能、自动比较功能、测试覆盖率统计功能、测试激励流程管理功能和数据报文管理功能等。测试用例也即仿真的计划流程,包括发送哪些数据,发送的时间点,随机测试开展的总时间要求等。

若步骤s02判断为是,说明验证平台库存在能实现待测pl产品中所有功能模块的测试组件以及所需的测试用例,则执行步骤s05;若步骤s02判断为否,说明目前验证平台库缺失能实现待测pl产品中的所需的功能模块的测试组件,或者缺失所需的测试用例,则执行步骤s03。

步骤s03:生成测试组件、测试用例的缺失提醒。

其中,若验证平台库缺失所需的测试组件,则步骤s03中,生成测试组件的缺失提醒;若验证平台库缺失所需的测试用例,则步骤s03中,生成测试用例的缺失提醒。缺失提醒中可包括所缺失的功能组件标识或测试用例标识,以便告知测试人员目前的验证平台缺失对应的测试组件或测试用例,不能实现对待测pl产品的测试,需要开发新的测试组件或测试用例。

步骤s04:将新开发的测试组件、测试用例保存至验证平台库。

当测试人员重新开发测试组件或测试用例后,可将新开发的测试组件或测试用例保存至验证平台库。通过开发平台生成保存指令,然后执行步骤s04。其中,保存指令包括新开发的测试组件或测试用例。

从而,后续在测试pl产品时,可直接从验证平台库中调取使用新开发的测试组件或测试用例。

步骤s05:执行测试脚本,以从验证平台库中调用与功能组件标识对应的测试组件和与测试用例标识对应的测试用例,并根据连接条件连接测试组件,以生成测试框架,还根据测试用例对测试框架进行仿真。

本实施例中,还可通过执行测试脚本实现仿真结果数据的获取并输出。

本实施例中,执行测试脚本后,仿真分成以下阶段:

1)例化阶段:测试脚本将在这个阶段,例化并调用脚本中需要用到的所有能实现pl产品中各功能模块的测试组件以及所需测试用例;

2)连接阶段:测试脚本在这个阶段,根据连接条件自动连接所有在例化阶段例化的测试组件,生成测试框架,并且定义他们的连接方式;

3)运行阶段:测试脚本在这个阶段,在上阶段搭建的测试框架,根据测试用例对测试框架进行仿真,通过task(任务)和function(函数)的形式,串行或并行地执行测试脚本的激励方案,执行具体的测试内容。

4)报告阶段:测试脚本将在这个阶段,自动打印运行阶段的仿真结果数据,仿真结果数据包括功能覆盖率情况、测试用例通过与否等数据。

5)结束阶段:测试脚本将在这个阶段,终结所有测试组件的运行,结束测试脚本。

本实施例的基于uvm的可编程逻辑的仿真方法在uvm基础上,为可编程逻辑产品仿真提供了一种简单易上手的全自动的可编程逻辑仿真方法,打破测试平台固有的架构模式,能够根据测试人员的要求,灵活配置各种测试架构;并建立一个可编程逻辑产品的验证平台库,针对不同设计架构的可编程逻辑产品,能够做到最大程度的复用,大大减少仿真验证时间和工作量,提高仿真验证效率。

实施例2

本实施例提供了一种基于uvm的可编程逻辑的仿真系统,如图2所示,所述基于uvm的可编程逻辑的仿真系统包括脚本生成模块1、脚本执行模块2、判断模块3、提醒生成模块4、保存模块5和测试输出模块6。

所述脚本生成模块1用于生成测试脚本。

所述测试脚本包括可编程逻辑的功能组件标识和测试策略;所述测试策略包括连接条件和测试用例标识。其中,功能组件标识用于表征待测pl产品中各个功能模块(通过测试人员分析被测pl产品的功能确定),测试用例标识用于表征对待测pl产品进行仿真的所需测试用例,测试用例根据用户需求自行设置。需要说明的是,对pl产品进行不同需求的测试仿真时,可以针对需求生成多个测试脚本,仿真时依次执行多个测试脚本,直至所有测试脚本均被实现完毕。

所述判断模块3用于判断验证平台库中是否存在测试脚本中与功能组件标识对应的测试组件以及与测试用例标识对应的测试用例。

其中,验证平台库存储有基于uvm类构建的测试组件和测试用例。测试组件可实现pl产品中各个功能模块相应的功能,例如,激励约束随机生成功能、数据通信功能、虚接口功能、自动比较功能、测试覆盖率统计功能、测试激励流程管理功能和数据报文管理功能等。测试用例也即仿真的计划流程,包括发送哪些数据,发送的时间点,随机测试开展的总时间要求等。

若判断模块3判定为是,说明验证平台库存在能实现待测pl产品中所有功能模块的测试组件以及所需的测试用例,则调用脚本执行模块2;若判断模块3判定为否,说明目前验证平台库缺失能实现待测pl产品中的所需的功能模块的测试组件,或者缺失所需的测试用例,则调用所述提醒生成模块4。

所述提醒生成模块4生成测试组件或测试用例的缺失提醒。

其中,若验证平台库缺失所需的测试组件,则提醒生成模块4生成测试组件的缺失提醒;若验证平台库缺失所需的测试用例,则提醒生成模块4生成测试用例的缺失提醒。缺失提醒中可包括所缺失的功能组件标识或测试用例标识,以便告知测试人员目前的验证平台缺失对应的测试组件或测试用例,不能实现对待测pl产品的测试,需要开发新的测试组件或测试用例。

所述保存模块5用于保存新开发的测试组件、测试用例至验证平台库。

当测试人员重新开发测试组件或测试用例后,通过开发平台生成保存指令,通过保存模块5可将新开发的测试组件或测试用例保存至验证平台库。其中,保存指令包括新开发的测试组件或测试用例。

从而,后续在测试pl产品时,可直接从验证平台库中调取使用新开发的测试组件或测试用例。

所述脚本执行模块2用于执行测试脚本。

脚本执行模块2执行测试脚本,以从验证平台库中调用与功能组件标识对应的测试组件和与测试用例标识对应的测试用例,并根据连接条件连接测试组件,以生成测试框架,还根据测试用例对测试框架进行仿真。

本实施例中,还可通过脚本执行模块2实现仿真结果数据的获取并输出。

本实施例中,脚本执行模块2执行测试脚本后,仿真分成以下阶段:

1)例化阶段:测试脚本将在这个阶段,例化并调用脚本中需要用到的所有能实现pl产品中各功能模块的测试组件以及所需测试用例;

2)连接阶段:测试脚本在这个阶段,根据连接条件自动连接所有在例化阶段例化的测试组件,生成测试框架,并且定义他们的连接方式;

3)运行阶段:测试脚本在这个阶段,在上阶段搭建的测试框架,根据测试用例对测试框架进行仿真,通过task(任务)和function(函数)的形式,串行或并行地执行测试脚本的激励方案,执行具体的测试内容。

4)报告阶段:测试脚本将在这个阶段,自动打印运行阶段的仿真结果数据,仿真结果数据包括功能覆盖率情况、测试用例通过与否等数据。

5)结束阶段:测试脚本将在这个阶段,终结所有测试组件的运行,结束测试脚本。

所述测试输出模块6用于输出仿真结果。

仿真结束后所述测试输出模块6获取仿真结果数据,并输出仿真结果。

本实施例的基于uvm的可编程逻辑的仿真系统在uvm基础上,为可编程逻辑产品仿真提供了一种简单易上手的全自动的可编程逻辑验证系统,打破测试平台固有的架构模式,能够根据测试人员的要求,灵活配置各种测试架构;并建立一个可编程逻辑产品的验证平台库,针对不同设计架构的可编程逻辑产品,能够做到最大程度的复用,大大减少仿真验证时间和工作量,提高仿真验证效率。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1