本发明专利技术公开了一种验证视频算法寄存器传输级实现的方法,包括:构建测试视频序列库;从所述测试视频序列库根据预定功能覆盖率选取规则选取测试序列;根据所述选取的测试序列生成测试向量,并输出给黄金C语言模型和待验证寄存器传输级硬件模型;对所述黄金C语言模型和待验证寄存器传输级硬件模型进行输出验证。本发明专利技术还公开了一种验证视频算法寄存器传输级实现的系统。本发明专利技术的具体实施方式通过生成测试序列自动选择程序,能够根据功能覆盖率自动挑选测试序列,并和算法参数一起组成测试向量,使算法功能覆盖率达到100%,因此提高了对视频算法寄存器传输级设计进行验证的效率和正确性。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种验证视频算法寄存器传输级实现的方法,包括:构建测试视频序列库;从所述测试视频序列库根据预定功能覆盖率选取规则选取测试序列;根据所述选取的测试序列生成测试向量,并输出给黄金C语言模型和待验证寄存器传输级硬件模型;对所述黄金C语言模型和待验证寄存器传输级硬件模型进行输出验证。本专利技术还公开了一种验证视频算法寄存器传输级实现的系统。本专利技术的【具体实施方式】通过生成测试序列自动选择程序,能够根据功能覆盖率自动挑选测试序列,并和算法参数一起组成测试向量,使算法功能覆盖率达到100%,因此提高了对视频算法寄存器传输级设计进行验证的效率和正确性。【专利说明】验证视频算法寄存器传输级实现的方法和系统
本申请涉及芯片设计
,尤其涉及一种验证视频算法寄存器传输级实现的方法和系统。
技术介绍
随着嵌入式系统的高速发展,嵌入式系统芯片(SoC)视频芯片应用范围越来越广泛,然而在芯片规模变得越来越大、功能变得越来越复杂、SoC的IP复用等新情况的出现使功能验证这一工作变得更重要、更艰巨。在现代集成电路(IC)设计中,大约有50%?70%的设计周期被用在了功能验证上,而且随着SoC规模的不断扩大,其比例还会不断增加。如果在行为和功能调试时忽视这个过程,就很难在后面的物理设计阶段发现逻辑性错误,而只能在流片之后才会被测试出来,这就导致了设计的高成本以及会耽搁芯片的最终上市时间(Time-to-Market)。从成本和上市时间的角度来考虑,通过功能验证发现逻辑性错误,将会极大地降低整个设计的成本。 当芯片的规模和功能越来越复杂时,输入激励的可能空间是巨大的,而且对一个输入激励,完成同样的视频算法,硬件仿真的时间远比软件仿真所需的时间长,穷尽仿真所有的输入组合变得不可行。所以只能选取输入空间中选择部分有效的子集作为输入激励进行验证。 目前,在对视频算法的RTL硬件实现进行验证时,主要采用直接验证的方法,手动选取测试序列作为输入激励进行测试。这种直接验证的方法的效率严重依赖于验证者的经验,选取的测试序列可能包含了大量对功能覆盖率提高没有贡献的序列,花费了大量的测试运行时间,但却未得到高的覆盖率。
技术实现思路
本申请要解决的技术问题是针对现有技术的不足,提供一种基于功能覆盖率驱动验证视频算法寄存器传输级实现的方法。 本申请要解决的另一技术问题是提供一种基于上述方法的系统。 本申请要解决的技术问题通过以下技术方案加以解决: 一种验证视频算法寄存器传输级实现的方法,包括: 构建测试视频序列库; 从所述测试视频序列库根据预定功能覆盖率选取规则选取测试序列; 根据所述选取的测试序列生成测试向量,并输出给黄金C语言模型和待验证寄存器传输级硬件模型; 对所述黄金C语言模型和待验证寄存器传输级硬件模型进行输出验证。 所述对所述黄金C语言模型和待验证寄存器传输级硬件模型进行输出验证包括:黄金C语言模型和待验证寄存器传输级硬件模型接收到测试向量后,分别产生输出,若这些输出一致,则验证通过;若不一致,则验证失败。 若所述验证失败后,还包括:确定待验证寄存器传输级硬件模型中存在的缺陷,对待验证的寄存器传输级硬件模型进行调试。 所述黄金C语言模型是用C语言编写的实现一定视频处理功能的模块。 所述待验证寄存器传输级硬件模型是用硬件描述语言编写的,实现与所述黄金C语言模型相同的视频处理功能的模块,是功能验证的对象。 一种验证视频算法寄存器传输级实现的系统,包括测试视频序列库、测试向量生成器和文件比较器; 所述测试向量生成器用于从所述测试视频序列库根据预定功能覆盖率选取规则选取测试序列;根据所述选取的测试序列生成测试向量,并输出给黄金C语言模型和待验证寄存器传输级硬件模型; 所述文件比较器用于对所述黄金C语言模型和待验证寄存器传输级硬件模型进行输出验证。 所述文件比较器还用于对黄金C语言模型和待验证寄存器传输级硬件模型接收到测试向量后所产生的输出进行比较,若这些输出一致,则验证通过;若不一致,则验证失败。 所述文件比较器还用于在所述验证失败后,确定待验证寄存器传输级硬件模型中存在的缺陷,对待验证的寄存器传输级硬件模型进行调试。 所述黄金C语言模型是用C语言编写的实现一定视频处理功能的模块。 所述待验证寄存器传输级硬件模型是用硬件描述语言编写的,实现与所述黄金C语言模型相同的视频处理功能的模块,是功能验证的对象。 由于采用了以上技术方案,使本申请具备的有益效果在于: ⑴在本申请的【具体实施方式】中,通过在Golden C Model上添加功能覆盖率检查代码’生成测试序列自动选择程序,能够根据功能覆盖率自动挑选测试序列,并和算法参数一起组成测试向量,使算法功能覆盖率达到100%,因此解决了采用直接验证的方法对视频算法的寄存器传输级设计进行验证时,需要花费大量测试时间,却不能得到高的功能覆盖率的问题,提高了对视频算法寄存器传输级设计进行验证的效率和正确性。 ⑵在本专利技术的【具体实施方式】中,将待验证的功能点列表分为算法功能点和硬件功能点,在Golden C Model上进行算法功能点的测试场景构建;因为Golden C Model的运行时间远比RTL仿真的时间快,所以能够快速找到测试序列和参数组合构成测试场景;构建好满足算法功能覆盖率目标的测试场景后,就可以并行运行多个RTL仿真,从而大大提高验证的效率。 【专利附图】【附图说明】 图1是本申请验证RTL硬件实现系统一个实施例的结构示意图; 图2是对应于图1所示实施例对视频算法的RTL硬件实现进行验证方法实施例的流程图; 图3为根据本申请实施例测试向量生成器生成测试向量的方法流程图; 图4为根据本申请实施例在测试向量生成器生成测试向量后对视频算法的RTL硬件实现进行验证的方法流程图。 【具体实施方式】 下面通过【具体实施方式】结合附图对本专利技术作进一步详细说明。 功能验证就是要确保硬件设计功能的正确性。本申请所涉及的硬件设计是寄存器传输级(Register Transfer Level,简称RTL)的硬件设计,所以仅涉及对于RTL硬件设计的验证。简而言之,就是核实经过人工翻译或工具翻译后的设计属性与翻译前的设计属性是否一致。它主要验证硬件的硬件描述语言(HDL)描述是否符合设计的功能描述。 通常,基于功能覆盖率驱动的对视频算法的RTL硬件实现进行验证方法流程为:构建测试场景,产生输入激励一RTL仿真一覆盖率分析,若覆盖率未达到目标,则要顺序重复上述步骤。当硬件规模越来越大时,RTL仿真需要花费大量时间,这样完成一次迭代需要大量时间,要达到覆盖率目标,需要多次迭代,所以总体验证时间巨大。 本申请针对视频算法的RTL硬件实现的特点,提出了一种基于功能覆盖率驱动的对视频算法的RTL硬件实现进行验证的系统及方法,该方法将待验证的功能点列表分为算法功能点和硬件功能点,其中算法功能点即视频算法应该满足的功能特性,RTL硬件实现后,必须检查视频算法应该满足的功能特性是否被正确实现;硬件功能点为硬件上的时序要求等;然后在Golden C Model上进行算法功能点的测试场景构建;因为Golden 本文档来自技高网...
【技术保护点】
一种验证视频算法寄存器传输级实现的方法,其特征在于,包括:构建测试视频序列库;从所述测试视频序列库根据预定功能覆盖率选取规则选取测试序列;根据所述选取的测试序列生成测试向量,并输出给黄金C语言模型和待验证寄存器传输级硬件模型;对所述黄金C语言模型和待验证寄存器传输级硬件模型进行输出验证。
【技术特征摘要】
【专利技术属性】
技术研发人员:郭若杉,
申请(专利权)人:郭若杉,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。