本发明涉及通信技术领域中芯片验证技术,具体涉及一种基于接口自动产生验证模型的方法。
背景技术:
在ASIC芯片开发过程中,芯片的功能规格书SPEC通常有很多版本的更新,随之而来的是芯片验证的反复进行,芯片验证团队需要根据最新的SPEC更新验证平台,包括对原有接口的变化检查,新增接口和信号的定义,数据总线编解码,以及对不再存在的接口进行删除等等,这通常要消耗芯片验证人员大量的时间和精力。传统的验证模型大多关注于验证的过程及验证结果的实现,对于上述存在的因SPEC更新而带来的验证模型维护问题并未提出良好的解决方案。
技术实现要素:
针对现有技术的不足,本发明的主要目的在于:提出一种基于模块接口和SPEC自动产生验证模型的方法,根据接口文件自动产生信号定义、数据总线编码和解码、信号进出队列控制以及验证模型和被测设计的输出检查,从而大大加速模块的验证。
为实现前述目的,本发明公开了一种基于接口自动产生验证模型的方法,具体包括:
在接口文件内定义被测设计模块所有的输入和输出信号,以及验证所需的信号标识,脚本程序根据接口文件定义的内容生成验证模型模块代码和输出检查模块代码;
测试激励分别向验证模型模块和被测设计模块发送激励数据;
测试激励数据送到验证模型模块后,验证模型模块计算出输出结果,暂存至一处队列中;
测试激励数据送到被测设计模块后,经过一定时间周期,产生输出结果;
当被测设计输出使能信号有效时,输出检查模块将暂存在所述队列内的验证模型模块输出结果取出,与被测设计模块的输出结果进行比较。
优选地,所述定义验证所需的信号标识包括:
在实现同一SPEC功能的相关信号上标识相同的关键字,用于确定进行结果比较的信号范围以及定义输出队列的基本信息;
在被测设计模块的输出使能信号上标识与SPEC中对应的函数或任务,用于确定SPEC中对应的功能模块在验证模型模块中对应的队列名;
在需要进入验证模型模块中特定队列的输出信号上标识相应的队列名,用于处理在SPEC中未定义但被测设计模块有输出的信号的比较;
在输出数据总线上标识编解码文件名和总线名,用于生成数据总线的编码和解码。
优选地,所述队列名根据输出使能信号产生。
与现有技术相比,本发明的优点在于:本发明公开的一种基于接口自动产生验证模型的方法,通过在接口文件中添加信息,基于该接口文件自动产生验证模型中的输出结果比较、信号和队列的定义、信号总线的编解码等工作,可大大减少由于芯片开发中SPEC多次更新带来的芯片验证的工作量,有效缩短了芯片的研发周期。
附图说明
图1是本发明一实施例提出的一种基于接口自动产生验证模型的示意图;
图2是本发明一实施例提出的针对SPEC中某功能实现被测设计模块和验证模型的自动化比较过程示意图。
具体实施方式
鉴于现有技术中的不足,本案发明人经长期研究和大量实践,得以提出本发明的技术方案。如下将对该技术方案、其实施过程及原理等作进一步的解释说明。
本发明提出一种基于接口自动产生验证模型的方法,基于被测设计产生的接口文件,在接口文件添加产生自动化验证模型所需的各种信息,再使用脚本程序产生自动化验证模型的代码,达到加速验证的目的。
图1为本发明实施例提出的一种基于接口自动产生验证模型的示意图,如图1所示,接口文件连接了测试激励模块、被测设计模块、验证模型模块和输出检查模块,其中验证模型模块和输出检查模块共同组成了基于接口文件产生的自动验证模型。其具体关联关系为:接口文件定义了被测设计模块所有的输入和输出信号,以及验证所需的信号标识,脚本程序根据接口文件内容自动生成验证模型模块代码和输出检查模块代码。测试激励模块分别向验证模型模块和被测设计模块发送测试激励数据,当激励发送到验证模型模块中后,其对应功能模块函数会即时计算出输出结果,然后将该结果暂存至一处队列中;激励发送到被测设计模块中后,经过一定时钟周期,最后得到该模块的输出结果;当被测设计模块输出使能信号有效时,输出检查模块将上述队列中存储的验证模型模块的计算结果取出,与被测设计模块的输出结果进行比较,由此实现自动化的输出检查。
其中,所述定义验证所需的信号标识具体包括:
1.在实现同一SPEC功能的相关信号上标识相同的关键字,用于确定进行结果比较的信号范围以及定义输出队列的基本信息;
2.在输出使能信号上标识SPEC中对应的函数或任务,用于确定SPEC中对应的功能模块在验证模型模块中对应的队列名;
3.在需要进入验证模型模块中特定队列的输出信号上标识相应的队列名,用于处理在SPEC中未定义但被测设计模块有输出的信号的比较;
被测设计模块中某些特别的输出信号若在在验证模型模块中需要进入特别的队列,则在对应输出信号上标识该队列名。
4.在输出数据总线上标识编解码文件名和总线名,用于生成数据总线的编码和解码。
若某个信号是通过内部多个信号组合而得,则需要将该组合的编码信息定义到接口文件中,否则生成的验证模型模块无法产生与被测设计模块相对应的此种信号。
根据接口文件中各个信号的定义,可以自动生成验证模型模块中各个信号的定义,无需对信号名字和位宽进行手动修改。通过在接口文件中添加验证相关的信息,脚本程序基于该接口文件自动产生信号的定义、数据总线编码和解密、信号进出队列控制以及验证模型中的输出结果与被测设计的输出结果自动化比较,从而完成自动化验证。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
以下通过一具体实施例详细阐述被测设计模块和验证模型进行自动化比较过程,图2是本发明一实施例提出的针对SPEC中某功能实现被测设计和验证模型的自动化比较过程示意图,如图2所示:
激励发送到验证模型功能模块中后,其对应功能模块函数会即时计算出输出结果,然后将该结果暂存至一处队列中;
激励发送到被测设计功能模块中后,经过一定时钟周期,最后得到该模块的输出结果;
当被测设计功能模块输出使能信号有效时,输出检查功能模块将上述队列中存储的验证模型功能模块的计算结果取出,与被测设计功能模块的输出结果进行比较,由此实现自动化的输出检查。
具体地,根据上述实施例中第1条信息,实现对同一功能中需要比较的所有相关的信号进行一并比较,以及对输出队列的定义;根据上述第2条信息,可以确定SPEC中对应的功能模块和验证模型功能模块的对应队列名,由此验证模型功能模块可以确认输入信号属于哪一队列,以及被测设计功能模块的输出信号应与哪一队列的结果进行比对,其中队列名根据被测设计功能模块的输出使能信号名称产生;根据上述第3条信息,可用于处理一些SPEC中没有定义,而被测设计功能模块有输出的特殊信号的比较,针对这种信号,自动化验证模型在进行比较时会从相应队列中取出期望结果,与被测设计功能模块的输出结果进行比较;根据上述第4条信息,可以自动生成数据总线的编码和解码,用于对应某些组合编码产生的信号。根据第1、第2和第3条信息,便可实现针对SPEC中的某一功能实现被测设计和验证模型的自动化比较。
采用本发明实施例提出的基于接口自动产生验证模型的方法,只需对接口文件进行定义,无需对验证模型内部接口进行更改,可大大减少了芯片开发中由于SPEC多次更新带来的验证模型修改及芯片反复验证的工作量,进而有效地缩短了芯片的研发周期。
应当理解,上述实施例仅为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。