一种基于UVM的SOC验证系统及方法与流程

文档序号:26405800发布日期:2021-08-24 16:20阅读:669来源:国知局
一种基于UVM的SOC验证系统及方法与流程

本发明涉及芯片验证技术领域,尤其涉及一种基于uvm的soc验证系统及方法。



背景技术:

随着大规模集成电路的发展,soc片上系统集成了越来越多的ip模块,芯片复杂度和集成度不断提高,对验证的要求越来越高。验证在整个芯片设计工作中占据了百分之八十的时间,如何快速准确的搭建验证平台,开发有效的验证激励,尽快找出设计问题给验证工作带来巨大的挑战。



技术实现要素:

为解决上述问题,本发明提出一种基于uvm的soc验证系统及方法。

一种基于uvm的soc验证系统,包括覆盖设计规范随机生成的测试激励、由多个ip_env组合搭建的验证环境层和基于risc-v内核的片上系统soc,所述ip_env包括计分板、内核寄存器、参考模型、激励产生器、驱动器以及监测模块,

当验证外围设备发往片上系统soc的数据时,直接复用验证环境生成和发送激励信号,计分板通过后门访问内核寄存器,与参考模型的期望值自动比较,得到验证结果;

当验证片上系统soc发往总线的数据时,关闭激励产生器和驱动器,驱动程序加载到risc-v内核,由片内总线驱动ip模块发送数据,监测模块收集发送数据,计分板做最终结果的判定。

优选的,还包括用于连接片上系统soc与各组件的接口模块。

优选的,各组件之间通过tlm机制实现彼此之间的通信,各组件之间通过数据包交换数据。

优选的,所述监测模块包括第一检测器及第二检测器;

所述第一检测器采样片上系统soc输入端口的数据,按照协议时序封装成数据包;

所述第二检测器采样片上系统soc输出端口的数据。

优选的,所述测试激励包括c语言驱动程序和基于systemverilog的测试激励,所述c语言程序先编译成.elf文件,再进一步将.elf文件编译成可执行的二进制程序,可执行文件在测试用例中写到内存中去供cpu取出指令并执行,基于systemverilog的测试激励对验证环境层进行配置并控制仿真的执行。

一种基于uvm的soc验证方法,包括:

当验证外围设备发往片上系统soc的数据时,直接复用验证环境生成和发送激励信号,计分板通过后门访问内核寄存器,与参考模型的期望值自动比较,得到验证结果;

当验证片上系统soc发往总线的数据时,关闭激励产生器和驱动器,驱动程序加载到risc-v内核,由片内总线驱动ip模块发送数据,监测模块收集发送数据,计分板做最终结果的判定。

本发明具备以下有益效果:

1.当验证外围设备发往片上系统soc的数据时,直接复用验证环境生成和发送激励信号,计分板通过后门访问内核寄存器,与参考模型的期望值自动比较,得到验证结果;当验证片上系统soc发往总线的数据时,关闭激励产生器和驱动器,驱动程序加载到risc-v内核,由片内总线驱动ip模块发送数据,监测模块收集发送数据,计分板做最终结果的判定。搭建基于uvm平台的验证环境,在保证测试灵活性的同时大大缩短了验证时间;

2.验证过程中搭建的验证环境,合理复用到上系统soc的验证环境中,即保证了代码的正确性,又避免了验证组件重复开发的过程。

附图说明

下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1是本发明实施例一一种基于uvm的soc验证系统中ip_env的结构示意图;

图2是本发明实施例一一种基于uvm的soc验证系统的结构示意图;

图3是本发明实施例二一种基于uvm的soc验证方法的流程示意图。

具体实施方式

以下结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

实施例一

本实施例中的验证对象为一款以risc-v为内核的高性能低功耗通用片上系统soc。片上系统soc内有总线axi(advancedextensibleinterface)、ahb(advancedhighperformancebus)、apb(advancedperipheralbus)。总线axi是一种面向高性能、高带宽、低延迟的片内总线。总线ahb主要用于高性能模块(如cpu、dma和dsp等)之间的连接。总线apb主要用于低带宽的周边外设之间的连接,例如uart、1284等。

具体的,按照总线特性及ip性能要求,将不同的ip连接到相应的总线上。ddr和dma模块挂在axi总线上,usb和以太ip挂接在ahb总线上,iic/uart/spi等ip挂接在apb总线上。

本实施例提出一种基于uvm的soc验证系统,包括覆盖设计规范随机生成的测试激励、由多个ip层ip_env组合搭建的验证环境层和基于risc-v内核的片上系统soc。如图2所示,ip_env包括:ip0_env、ip1_env以及ip2_env。

如图1所示,ip_env包括输入代理in_agent、输出代理out_agent、参考模型referencemodel和计分板scoreboard。输入代理in_agent连接片上系统soc的输入端,输出代理out_agent连接片上系统soc的输出端。参考模型模拟片上系统soc的输出,做为计分板scoreboard的期望输出。输出代理out_agent监测片上系统soc的真实输出通过tlm机制送到计分板scoreboard中。计分板scoreboard把片上系统soc的真实输出数据与参考模型referencemodel的期望输出做比较,打印输出比较结果。

将片上系统soc与验证环境env相连,随机生成的测试序列在验证开始时通过激励产生器sequencer发送到驱动器driver中。驱动器driver将激励产生器sequencer发送来的事务包解析,按照协议时序驱动dut的输入端口。dut的输入端口通过接口模块interface连到输入代理in_agent的驱动器driver中。

片上系统soc的输入端口通过接口模块interface连到输入代理in_agent的第一检测器monitor中。输入代理in_agent的第一检测器采样片上系统soc的输入端口,并按照协议时序组成事务包。

参考模型根据输入代理in_agent中第一检测器采样的片上系统soc输入口事务包给出片上系统soc期望的输出行为事务包,做为计分板scoreboard的golden事务。

输出代理out_agent中的第二检测器monitor采样片上系统soc的输出端,并按照协议时序组成事务包。此为片上系统soc的真实输出事务。

计分板scoreboard组件比较片上系统soc的真实输出与参考模型的golden输出,判断片上系统soc行为是否正确并给出相应的报告。

在该验证平台中,除了驱动器driver和第一检测器monitor、第二检测器monitor通过interface总线进行数据交换以外,其他组件均使用tlm(transactionlevelmodeling)连接,通过事物级(transactionlevel)数据包进行数据交换,提高了数据的抽象层次,实现了组件的可重用。

在本实施例中,测试用例层test,用于创建不同的验证环境以及产生不同的测试激励。验证环境层env,用于根据test层输入的配置参数对ip_env做相应的配置。

片上系统soc的uvm验证环境中,通过对ip_env做适当的配置,可以实现不同的验证需求。验证外围设备发往片上系统soc的功能时,直接复用ip_env的验证环境层生成和发送激励,计分板scoreboard通过后门访问内核中的状态寄存器,与参考模型的期望值自动比较结果,同时hex文件通过读取内核寄存器及中断信息判定验证结果。验证片上系统soc发往总线的数据时,关闭激励产生器sequencer和驱动器driver,驱动程序加载到risc-v内核,由片内总线驱动ip模块发送数据,在片上系统soc的验证环境层中加入axi_env用来监测芯片中的总线信号,并将总线封装成接口模块interface,监测模块收集发送数据,计分板scoreboard做最终结果的判定。

测试激励包括c语言驱动程序和基于systemverilog的测试激励,所述c语言程序先编译成.elf文件,再进一步将.elf文件编译成可执行的二进制程序,可执行文件在测试用例中写到内存中去供cpu取出指令并执行,基于systemverilog的测试激励对验证环境层进行配置并控制仿真的执行。

实施例二

基于实施例一提出的一种基于uvm的soc验证系统,相应的,在方法方面,本实施例二提出一种基于uvm的soc验证方法,如图3所示,具体包括以下步骤:

s1:当验证外围设备发往片上系统soc的数据时,直接复用验证环境生成和发送激励信号,计分板通过后门访问内核寄存器,与参考模型的期望值自动比较,得到验证结果;

s2:当验证片上系统soc发往总线的数据时,关闭激励产生器和驱动器,驱动程序加载到risc-v内核,由片内总线驱动ip模块发送数据,监测模块收集发送数据,计分板做最终结果的判定。

基于本实施例的技术方案及技术效果与硬件实施例相同,因此不再赘述。

本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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