基于uvm的熵解码器验证方法及装置的制造方法

文档序号:9220105阅读:282来源:国知局
基于uvm的熵解码器验证方法及装置的制造方法
【技术领域】
[0001]本发明涉及一种熵解码器验证方法,尤其涉及一种基于通用验证方法学(Universal Verificat1n Methodology, UVM)的摘解码器验证方法及装置,属于视频编解码技术领域。
【背景技术】
[0002]芯片设计和验证技术的快速发展使得模块的功能验证的要求越来越高,在短时间内完成模块功能验证,保证逻辑功能正确,对验证环境的完备性,自动化和重用性上有着很高的要求。
[0003]H.264标准是国际通用的视频编码标准,AVS标准是国内法定的音视频编码标准,国内的视频接收设备必须支持AVS标准。H.264与AVS的融合是一种必然,这对视频解码芯片提出了能够兼容这两种标准的要求。如今商用的AVS解码芯片尚且不多,兼容这两种标准的解码芯片更少,因此研宄和设计能够同时兼容这两种标准的芯片具有重要的价值和意义。熵解码器作为视频解码芯片的第一级至关重要,熵解码器的功能验证需要大量的人力物力,尤其每款重新设计或者改动的熵解码器都需要经过大量的回归测试,甚至多次流片才能够真正使用到项目中。在验证熵解码器模块的过程中,重新生成各种不同的熵解码器数据包不但很麻烦,而且临时的编写很容易出现错误,这种方法对熵解码器模块的验证效率很低,且无法重用。

【发明内容】

[0004]本发明所要解决的技术问题在于克服现有技术不足,提供一种基于UVM的熵解码器验证方法及装置,可以较简单的移植并验证不同配置的熵解码器,有效提高验证的重用性和效率,且能对功能覆盖率进行监测。
[0005]本发明具体采用以下技术方案解决上述技术问题:
基于UVM的熵解码器验证方法,利用通用验证方法学UVM对熵解码器进行验证。
[0006]优选地,所述熵解码器验证方法包括以下步骤:
步骤1、序列产生器根据预先定义的视频数据生成测试视频数据包;
步骤2、利用熵解码器参考模型和待验证熵解码器分别对测试视频数据包进行熵解码;
步骤3、对熵解码器参考模型和待验证熵解码器所输出的熵解码数据进行比较,根据比较结果获得待验证熵解码器的验证结果。
[0007]为了提高通用性,进一步地,所述熵解码器参考模型包括至少两个可切换的采用不同编码标准的熵解码器子参考模型。
[0008]本发明基于UVM的熵解码器验证装置,包括:
测试用例,包括一组预先定义的视频数据;
序列产生器,用于通过测试用例完成随机化数据包的定义,并在约束完数据的具体特征之后,自动生成测试视频数据包;
驱动模块,用于将序列产生器生成的测试视频数据包转换成待验证熵解码器在接口上的实际输入信号激励;
监测模块,用于从待验证熵解码器的输出接口获取熵解码数据;
熵解码器参考模型,用于对序列产生器生成的测试视频数据包进行标准熵解码; 计分板,分别获取监测模块、熵解码器参考模型所输出的熵解码数据,并对两者进行比较;
功能覆盖模块,用于根据计分板的比较结果对待验证熵解码器的功能覆盖率进行统
i+o
[0009]进一步地,所述熵解码器参考模型包括至少两个可切换的采用不同编码标准的熵解码器子参考模型。
[0010]优选地,所述驱动模块包括定序器、驱动器和监视器;定序器的功能是组织管理序列产生器,当驱动器要求数据时,定序器把序列产生器生成的事务转发给驱动器;驱动器的功能是将序列产生器生成的测试视频数据包转换成待验证熵解码器在接口上的实际输入信号激励;监视器的功能是从待验证熵解码器的输入接口上接收实际输入信号激励,并且把接收到的实际输入信号激励转化成数据包级别后发送给熵解码器参考模型。
[0011]相比先有技术,本发明具有以下有益效果:
本发明首次将UVM技术应用于熵解码器的验证,实现了一个层次化的验证结构,本发明可以较简单的移植并验证不同配置的熵解码器,根据参考模型生成参考数据,并监测待验证熵解码器的输出生成结果数据,通过判断结果数据与参考数据的一致性来对熵解码器进行验证;本发明可以利用现有的参考模型快速完成验证,提高了验证的重用性和效率,另外能够利用功能覆盖率模型收集并监测功能覆盖率。
【附图说明】
[0012]图1为UVM基本框架结构;
图2为本发明熵解码器验证装置的结构示意图。
【具体实施方式】
[0013]下面结合附图对本发明的技术方案进行详细说明:
本发明的基本思路是利用通用验证方法学(UVM)对熵解码器进行验证。为了便于公众理解,首先对UVM的基本内容进行简要介绍。
[0014]随着设计的复杂程度不断增加,需要把更多的资源放在验证上,不但要求验证能够覆盖所有的功能,还希望能够给出大量的异常情况来检查待验证模块对应异常的处理状态。在传统测试与方法中,上述要求往往是难以实现的。此外设计不断地重用,而验证也希望能够重用类似的验证模块,这就催生了层次化的验证方法。UVM验证方法学提供了基于SystemVerilog的验证方法,包括了有约束的随机数生成,层次化的验证结构,以及以功能覆盖率为指标的验证流程。
[0015]SystemVerilog是一种硬件描述和验证语言,它建立在Verilog硬件描述语言的基础上,同时结合了 C++面向对象编程的特点,并增加了断言、接口、结构体等新的概念,从而具备了面向对象编程、基于对象的随机产生及约束、动态线程和线程间通信等基本特征。SystemVerilog语言作为最新发展的验证语言,得到了 Cadence、Mentor Graphics等公司的支持,多个仿真器都能够支持该语言的编译,目前已经成为设计和验证工程师首选的验证语言。
[0016]通用验证方法学(UniversalVerificat1n Methodology, UVM)是在验证流程中实现快速构建高效和可重用的验证环境以及验证IP(VIP)的一种标准。它是基于SystemVerilog语言开发出来的一套完整的验证方法学。Accellera是Cadence、MentorGraphics、Synopsys等公司联合组织的验证方法学联盟,该联盟基于OVM验证方法学推出了 UVM验证方法学,UVM实质上是一个使用SystemVerilog的语法和语义定义的类库。该验证方法为树形的验证平台,其中融入了很多最新的验证方法学,最大程度的实现了验证重用,从而提高了验证的效率,使用它可创建坚实、可重用、具互操作性的验证IP和测试流程(testbench)组件,正在普遍被业界接受和采用。UVM的简要的框架结构如图1所示。
[0017]UVM主要用于验证数字逻辑电路的正确性,在数字电路的设计流程中,首先必须定义芯片的规格说明,继而将其细化成特性列表,也就是需求说明书,在工程中称为specificat1n。根据细化的特性列表将系统划分成具体的模块,设计人员使用Verilog语言实现这些模块,得到RTL代码。在这个过程中,由于设计人员的理解偏差或者疏忽,得到RTL代码并一定能够完全反应芯片的所有特性,因此需要将特性列表与RTL代码进行比较,也就是所谓的验证,就是验证工程师根据specificat1n提出验证功能点,搭建验证环境,编写参考模型,通过平台的运行观察两者是否一致。在图1中,除了验证平台的组件采用端口进行连接,即事务层级(TLM, Transact1n Level Modeling)传输,这是相对于待测设计中各个模块间信号线级别的通信来说的。所谓的transact1n就是把具有某一特定功能的一组信息封装在一起而成为的一个类,在摘解码器中的验证过程中,transact1n就是把一帧图像的数据封装在一起。
[0018]此外,UVM方法学提出了以覆盖率为目标,有约束的随机激励为途径的验证方法。在约束的控制下,可以产生随机组合的激励,随机激励在触碰到更多难以用直接测试用例验证的一些边界情况,能够利用UVM验证环境验证更多的测试用例。这里的覆盖率除了常用的代码覆盖率还有功能覆盖率,只要将所有需要验证的功能点都转化为功能覆盖率模型,那么在整个验证过程中,仿真工具会收集覆盖率信息。最后可以将功能覆盖率结果合并,只有100%的功能覆盖率才代表验证过程结束。
[0019]UVM方法学不但提供了建立验证环境的方法学,也提供了一整套验证基本类库,包含了验证模块的基本类,以及验证的流程的框架,另外包含了一些宏定义和消息机制。类库可以很快建立自己的验证环境,只要关注功能验证本身,而不需要过多考虑环境的底层运作。
[0020]图2显示了本发明熵解码器验证装置的一个具体实施例,采用SystemVerilog完成,其中最上层区域是所有测试用例和验
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1