一种基于UVM验证方法学的SPI验证方法技术

技术编号:21089295 阅读:36 留言:0更新日期:2019-05-11 09:52
本发明专利技术涉及一种基于UVM验证方法学的SPI验证方法,其特征在于采用UVM验证方法学和系统级硬件描述语言构建验证平台,对SPI模块实施功能验证。所述的验证平台包括:测试用例test,虚拟激励产生模块vsqr,APB系统环境apb_env,APB配置模块apb_master_cfg,APB代理模块apb_master_agt,SPI环境spi_env,SPI配置模块spi_cfg,SPI代理模块spi_agt,SPI寄存器模型spi_reg_mdl,格式转换模块adapter,激励产生模块sequencer,激励驱动模块driver,响应收集模块collector,监测模块monitor,结果比对模块scoreboard。本发明专利技术运用UVM验证方法学实现了一个层次化高、可重用性强的验证平台,能在约束条件下产生多种类型的随机化数据包,实现所有地址和指令的遍历,具有功能覆盖率的自动收集报告,结果比对等自检功能,提高了验证的效率和验证的可靠性。

【技术实现步骤摘要】
一种基于UVM验证方法学的SPI验证方法
本专利技术涉及数字芯片的功能验证和验证方法学领域,尤其是一种基于UVM验证方法学的SPI验证方法,通过验证平台的搭建,随机化激励的生成,功能覆盖率的收集,响应结果的自检等操作完成对SPI的功能验证。
技术介绍
近年来,随着芯片集成度的不断提高,芯片的功能复杂度也大大增加,芯片的设计过程更加容易引入错误,验证工作变得更加艰巨。在集成电路设计中,验证工作占到了整个设计周期的一半以上。而验证的不充分导致的功能错误,是芯片首次投片成功率不高的主要原因。传统的验证技术已经不能再满足日益增长的验证需求,验证成为集成电路设计中的瓶颈。SPI是一种流行的串行总线接口,其主要优势是高速、全双工、简单易用,因其特性,如今越来越多的芯片内部都集成了SPI总线接口,因此SPI的功能正确性至关重要。为了满足外设多样性的要求,SPI总线接口具有多种配置方式和工作模式,每种配置方式都需要添加大量的测试用例来确保正确性,这给传统的验证方法带来了巨大的挑战。高级验证方法学引入了系统级硬件验证语言SystemVerilog,SystemVerilog是专门用于验证的语言,它使得验证环境的搭建变得更加高效。但仅仅有硬件验证语言还不够,UVM验证方法学是在硬件验证语言基础上发展起来,继承了VMM和OVM验证方法学的优点的一套系统级验证方法,它具备一整套使用硬件语言为基础的类库,这个库中提供的所有方法都可以使验证平台的搭建和测试用例的构造变得更加简单方便。
技术实现思路
本专利技术的目的在于客服上述不足,提供一种基于UVM验证方法学的SPI验证方法,搭建一个可重用性高、可扩展性强的APB总线系统验证平台,能较为可靠的对SPI的各种配置模式进行验证。为了解决上述技术问题,所述验证方法中的验证平台采用UVM验证方法学和硬件描述语言SystemVerilog完成,所述验证环境包括:一测试用例TEST,用于例化配置验证平台,根据测试需求建立测试方案,测试用例名可在makefile的UVM_TESTNAME后指定,factory机制会根据所指定的测试用例名,自动例化出对应的测试用例实例;一系列虚拟测试用例vseq,用于完成一系列测试用例seq执行的调度,通过`uvm_do_on()来为seq指定sqr,并通过raise_objection和drop_objection来控制相应taskphase的开始和结束;一虚拟激励产生模块vsqr,用于完成虚拟测试用例vseq的启动运行,接收vseq发送来的随机化数据包,并将数据包调度给指定的激励产生模块sqr;一APB系统环境apb_env,用于完成APB系统中各组件的实例化,可根据需求完成模块的添加、连接、模块地址空间的分配;一APB配置模块apb_master_cfg,用于自顶向下完成接口信号、地址空间、模块ID的配置;一APB总线代理模块apb_master_agt,用于完成APB系统激励驱动模块、响应收集模块、监测模块的实例化,建立各模块之间的TLM通信机制,通信的发起方和接收方分别通过blocking_port端口和blocking_imp端口相连接,根据UVM_IS_ACTIVE的值来判断是否例化monitor;一SPI系统环境spi_env,用于完成SPI系统中,包括spi_cfg,spi_agt的声明例化,并通过uvm_config_db::set()函数将系统配置spi_cfg进行逐层的配置;一SPI配置模块spi_cfg,根据SPI寄存器模型中的镜像值完成SPI系统的配置;一SPI代理模块spi_agt,完成SPI系统中驱动器、收集器、监测器、激励产生器的集成封装;一SPI寄存器模型spi_reg_mdl,为验证平台提供SPIDUT寄存器的访问接口,spi_reg_mdl继承与uvm_reg_block,为SPI中所有寄存器的集合,spi_reg_mdl中指定一个default_map来对寄存器的基地址、访问方式等进行配置,定义的所有寄存器均需要调用add_reg方法来将其添加到default_map中去。spi_reg_mdl中包含4个寄存器模型,分别为传输寄存器spdr_reg,状态寄存器spscr_reg,分频寄存器spdiv_reg,slave片选寄存器spss_reg,每个寄存器中均用configure对其操作方式、位宽、默认值等信息进行配置,并根据测试要求,加入了功能覆盖率,通过在每个寄存器内加入sample()函数,使得各寄存器能自动的收集功能覆盖率;一格式转换模块adapter,由于通过寄存器模型产生的数据包的类型为uvm_reg_bus_op类型,需要转换为APB总线支持的类型才能使用,模块内部主要由两个函数构成,reg2bus()和bus2reg()。reg2bus()主要在通过寄存器模型进行前门写操作中,完成寄存器模型数据类型向APB总线数据类型的转换;bus2reg主要在通过寄存器模型进行前门读操作中,完成APB总线数据类型向寄存器数据类型的转换;一激励产生模块sequencer,sequencer主要用于在其main_phase中启动对应的sequence产生,默认启动的sequence在test层通过uvm_config_db::set()设置,并将starting_phase传递给sequence,使得能在object类型的sequence中调用phase的函数raise_objection和drop_objection,控制整个验证平台的启动停止;一激励驱动模块driver,根据总线的时序要求,将随机化数据包transaction中的数据转换为实际的激励信号驱动至interface,加入phase的跳转机制,使得复位信号有效时,driver能自动的跳转到reset_phase阶段,进行reset信号的驱动;一响应收集模块collector,根据总线时序要求,对实际的响应信号进行采样并打包成新的数据包;一监测模块monitor,在各个系统env中,driver和collector都会将驱动和收集到的数据包传给monitor,在monitor中进行两者数据的比较,保证总线数据驱动和收集的正确性,加入了功能覆盖组,对收集到的数据包进行功能覆盖率的统计;一结果比对模块scoreboard,完成APB系统发送/接收到的数据包与SPI系统接收/发送的数据包的比对检测,结果报告。本专利技术使用UVM验证方法学和SystemVerilog验证语言,搭建可重用的APB验证系统,并基于此,完成了结构化SPI验证平台的搭建,采用随机化测试,功能覆盖率导向的方式,对SPI模块实施了结果自检的功能验证。附图说明图1为SPI验证平台的系统框图。图2为SPI验证平台的树形层级图。图3为UVM中phase的执行流程图。图4为SPI模块的结构图。图5为SPI模块的操作流程图。具体实施方式本专利技术验证平台的架构如图1所示,整个验证平台主要包括以下几部分:APB总线系统apb_env,SPI总线系统spi_env,SPI寄存器模型spi_reg_mdl,计分板scoreboard,APB和SPI系统中均包含一个配置组件和一个代理组件,代理组件由激励产生器、驱动器本文档来自技高网...

【技术保护点】
1.一种基于UVM验证方法学的SPI验证方法,其特征在于使用UVM验证方法学和SystemVerilog搭建SPI验证平台,对SPI模块实施功能验证,所述验证平台包括:一测试用例TEST,用于例化配置验证平台,根据测试需求建立测试方案;一虚拟激励产生模块vsqr,启动vseq并完成其产生的数据包的调度;一APB系统环境apb_env,完成APB系统中各组件的集成封装;一APB配置模块apb_master_cfg,完成APB系统模块的添加、各个模块地址的分配;一APB代理模块apb_master_agt,完成APB系统中驱动器、收集器、监测器、激励产生器的集成封装;一SPI系统环境spi_env,完成SPI系统的集成封装;一SPI配置模块spi_cfg,根据SPI寄存器模型中的镜像值完成SPI系统的配置;一SPI代理模块spi_agt,完成SPI系统中驱动器、收集器、监测器、激励产生器的集成封装;一SPI寄存器模型spi_reg_mdl,为验证平台提供SPI DUT寄存器的访问接口;一格式转换模块adapter,完成通过前门访问方式访问SPI寄存器模型所产生的数据包与APB系统所需数据包格式的转换;一激励产生模块sequencer,完成随机化数据包产生与发送的握手仲裁;一激励驱动模块driver,根据总线的时序要求,将随机化数据包transaction中的数据转换为实际的激励信号驱动至interface;一响应收集模块collector,根据总线时序要求,对实际的响应信号进行采样并打包成新的数据包;一监测模块monitor,完成对所接收数据包的信息收集,处理,分析,功能覆盖率的收集,结果报告等;一结果比对模块scoreboard,完成APB系统发送/接收到的数据包与SPI系统接收/发送的数据包的比对检测,结果报告。...

【技术特征摘要】
1.一种基于UVM验证方法学的SPI验证方法,其特征在于使用UVM验证方法学和SystemVerilog搭建SPI验证平台,对SPI模块实施功能验证,所述验证平台包括:一测试用例TEST,用于例化配置验证平台,根据测试需求建立测试方案;一虚拟激励产生模块vsqr,启动vseq并完成其产生的数据包的调度;一APB系统环境apb_env,完成APB系统中各组件的集成封装;一APB配置模块apb_master_cfg,完成APB系统模块的添加、各个模块地址的分配;一APB代理模块apb_master_agt,完成APB系统中驱动器、收集器、监测器、激励产生器的集成封装;一SPI系统环境spi_env,完成SPI系统的集成封装;一SPI配置模块spi_cfg,根据SPI寄存器模型中的镜像值完成SPI系统的配置;一SPI代理模块spi_agt,完成SPI系统中驱动器、收集器、监测器、激励产生器的集成封装;一SPI寄存器模型spi_reg_mdl,为验证平台提供SPIDUT寄存器的访问接口;一格式转换模块adapter,完成通过前门访问方式访问SPI寄存器模型所产生的数据包与APB系统所需数据包格式的转换;一激励产生模块sequencer,完成随机化数据包产生与发送的握手仲裁;一激励驱动模块driver,根据总线的时序要求,将随机化数据包transaction中的数据转换为实...

【专利技术属性】
技术研发人员:李世超王忆文李辉邓强徐波赵衡
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1