基于存储器访问驱动的自动化协同验证平台的搭建方法技术

技术编号:14884531 阅读:92 留言:0更新日期:2017-03-25 00:42
本发明专利技术公开了一种基于存储器访问驱动的自动化协同验证平台的搭建方法,包括:根据数据处理流程构建编程语言功能模型,将访问存储器的相关信息存储为编程语言功能模型参考信息;监测RTL子系统中所有存储器的读写信号,若检测到所述读写信号使能,RTL验证模块调用数据比较接口,对RTL操作存储器的相关信息同所述编程语言功能模型参考信息进行比较,若比较结果全部一致,则验证通过;若出现任一比较结果不一致则产生中断结束整个验证流程。采用本发明专利技术,可以准确高效地测试RTL子系统,具有调试方便,验证全面的优点。

【技术实现步骤摘要】

本专利技术涉及芯片验证技术,具体涉及一种基于存储器访问驱动的自动化协同验证平台的搭建方法
技术介绍
为了验证芯片内部的子系统,甚至是全芯片功能,经常需要协同验证环境来支持,即用C语言模型来模拟子系统的功能,来验证子系统功能的正确性。由于子系统通常都很复杂,C语言模型不仅要验证子系统最后的输出,还需要对构建子系统的各个模块间的内容进行验证。常见的协同验证方法一般为基于模块输出驱动的协同验证方法,如图1所示,该方法将系统功能拆分为多个模块单元,在输入激励之后,C语言模型模拟每个模块的功能得到期望输出结果,待RTL子系统中对应模块有信号输出时,进行数据检查,从而验证RTL子系统的正确性。该方法可以大幅缩小发生错误的范围,减少测试人员调试的工作量。但该验证方法的缺陷有:1.无法应用在没有输出的模块中。例如芯片中的存储控制模块,其行为是对输入信号进行解析/编辑处理,并将处理结果存储在内部存储器中。对于该模块而言没有直接的输出,因此无法验证写入内存数据的正确性。2.无法应用在相关联功能模块的协同验证中。例如功能A和功能B,分别对其进行测试时没有问题,但功能A可能改变RTL子模块中某些状态或者存储信息,导致将功能A和功能B放在一起测试时功能B发生错误。虽然将功能A和功能B放在一起测试可以解决上述问题,但无法保证将功能A和功能B放在一起测试后不影响其他功能的测试。上述协同模拟的方法不仅非常容易遗漏测试例,还会导致测试例数量成几何级数增长。
技术实现思路
针对现有技术的不足,本专利技术的主要目的在于:提出一种以芯片内部的存储器访问数据为验证点,使用内部存储器的数据检查来代替传统的子系统内部模块间输出的检查,实现快速、高效的芯片验证。为实现前述目的,本专利技术公开了一种基于存储器访问驱动的自动化协同验证平台的搭建方法,其验证平台包括RTL子系统、编程语言功能模型、RTL验证模块,具体地:在所述RTL验证模块中创建数据比较接口,用于对存储器的相关信息与编程语言功能模型参考信息进行比较;其验证流程包括以下步骤:S1.根据数据处理流程构建编程语言功能模型,将访问存储器的相关信息对应存储为编程语言功能模型内的参考信息;S2.监测RTL子系统中所有存储器的读写信号,若检测到所述读写信号使能,则执行下一步骤,否则继续执行当前监测步骤;S3.RTL验证模块调用数据比较接口,对RTL操作存储器的相关信息同所述编程语言功能模型内对应的存储器参考信息进行比较,若比较结果全部一致,则验证通过,并释放当前验证通过的存储器参考信息,然后执行下一步骤;若出现任一比较结果不一致则产生中断,然后执行S6;S4.判断系统内所有存储器是否验证完毕,若是,执行下一步骤;否则,返回S2;S5.查找编程语言功能模型中是否存在未释放的存储器参考信息,若存在,则产生中断;S6.结束系统验证。优选地,所述编程语言功能模型采用的编程语言包括C、C++。优选地,所述步骤S1中将访问存储器的相关信息对应存储为编程语言功能模型内的参考信息时按照逻辑处理的先后顺序进行存储。优选地,所述存储器的相关信息包括:存储器的序列号、存储器的名称、读写存储器的地址、读写存储器的数据。优选地,所述步骤S1中将访问存储器的相关信息对应存储为编程语言功能模型内的参考信息具体包括:使用编程语言功能模型作为参考模型,将RTL操作的存储器的序列号作为参考序列号,存储器名称作为参考表项名称,读写存储器的地址作为参考地址,读写存储器的数据作为参考数据。优选地,所述步骤S3中对RTL操作存储器的相关信息同所述编程语言功能模型内对应的存储器参考信息进行比较包括:将当前操作的存储器的序列号、存储器的名称、读写存储器的地址和读写存储器的数据分别与参考序列号、参考表项名称、参考地址、参考数据作对应比对。优选地,所述数据比较接口使用硬件语言编写。优选地,所述数据比较接口使用Verilog语言提供的PLI接口编写。优选地,对于同一输入激励,所述编程语言功能模型对应所述RTL子系统中所有存储器产生的参考序列号是相同的;如果连续输入两次激励操作同一个存储器,则所述编程语言功能模型针对该存储器记录两个不同的参考序列号。与现有技术相比,本专利技术的优点在于:本专利技术公开的一种基于存储器访问驱动的自动化协同验证平台的搭建方法,以存储器的访问作为驱动搭建自动化协同验证平台,可以准确高效地测试RTL子系统;在检查被测模块的输出信息的同时,监测其内部状态或者存储信息的变化,优化了相关联功能的测试方法,具有调试方便,验证全面的优点。附图说明图1是现有技术中基于模块输出驱动的协同验证方法;图2是本专利技术实施例提出的基于存储器访问驱动的自动化协同验证平台的验证过程流程图;图3是本专利技术一实施例提出的基于存储器访问驱动的自动化协同验证平台的搭建方法示意图。具体实施方式鉴于现有技术中的不足,本案专利技术人经长期研究和大量实践,得以提出本专利技术的技术方案。如下将对该技术方案、其实施过程及原理等作进一步的解释说明。本专利技术提出一种基于存储器访问驱动的自动化协同验证平台的搭建方法,其核心是以模块内部存储器为基本验证单元,构建出由存储器访问驱动的自动化协同验证平台,具体包括RTL子系统、编程语言功能模型和RTL验证模块。RTL子系统内的存储器作为本专利技术实施例协同验证的基本验证单元;编程语言功能模型用于产生参考数据,以实现在验证过程中与RTL操作存储器的相关信息进行比对;在所述RTL验证模块中创建数据比较接口,用于对存储器的相关信息与编程语言功能模型参考信息进行比较。所述编程语言功能模型可采用C、C++、以及其他适用于软硬件协同设计的编程语言,由于C语言在软硬件协同设计中使用较为广泛,本专利技术下述实施例采用C语言功能模型进行阐述,本领域技术人员应当知晓,该阐述方式不能用来限制本专利技术。基于本专利技术实施例所述的验证平台,其验证流程如图2所示,包括以下步骤:步骤201,构建C语言功能模型,建立参考信息;按照SPEC(功能说明书,用类似C的专用语言编写的详细描述芯片功能实现流程的说明文档)描述的数据处理流程,构建出基于C语言的功能模型。在涉及到内部存储器读写的地方,按照逻辑处理上的先后顺序对访问存储器的相关信息进行存储。具体包括:使用C语言功能模型作为参考模型,将其内部产生的序列号作为参考序列号,将存储器名称作为参考表项名称,将操作存储器的地址作为参考地址,将操作存储器的数据作为参考数据。步骤202,监测RTL子系统中所有存储器的读写信号;在RTL验证模块中监测RTL子系统的模块中所有存储器的读写信号,检测是否有存储器读写信号使能。步骤203,若检测到所述读写信号使能,则执行下一步骤,否则返回步骤202继续监测;步骤204,数据比较,若全部一致,则执行下一步骤,否则,执行步骤208;RTL验证模块调用数据比较接口,对RTL操作存储器的相关信息同所述编程语言功能模型内对应的存储器参考信息进行比较,具体包括:将RTL操作存储器的序列号、该存储器的名称、读写存储器的地址、读写存储器的数据同步骤201中C语言功能模块产生的参考信息进行比较。若比较结果全部一致,则验证通过;若参考序列号、参考表项名称、参考地址、参考数据中有任意一项比对不一致则产生中断,即执行步骤208。步骤205,C语言功本文档来自技高网...
基于存储器访问驱动的自动化协同验证平台的搭建方法

【技术保护点】
一种基于存储器访问驱动的自动化协同验证平台的搭建方法,其验证平台包括RTL子系统、编程语言功能模型、RTL验证模块,其特征在于:在所述RTL验证模块中创建数据比较接口,用于对存储器的相关信息与编程语言功能模型参考信息进行比较;其验证流程包括以下步骤:S1.根据数据处理流程构建编程语言功能模型,将访问存储器的相关信息对应存储为编程语言功能模型内的参考信息;S2.监测RTL子系统中所有存储器的读写信号,若检测到所述读写信号使能,则执行下一步骤,否则继续执行当前监测步骤;S3.RTL验证模块调用数据比较接口,对RTL操作存储器的相关信息同所述编程语言功能模型内对应的存储器参考信息进行比较,若比较结果全部一致,则验证通过,并释放当前验证通过的存储器参考信息,然后执行下一步骤;若出现任一比较结果不一致则产生中断,然后执行S6;S4.判断系统内所有存储器是否验证完毕,若是,执行下一步骤;否则,返回S2;S5.查找编程语言功能模型中是否存在未释放的存储器参考信息,若存在,则产生中断;S6.结束系统验证。

【技术特征摘要】
1.一种基于存储器访问驱动的自动化协同验证平台的搭建方法,其验证平台包括RTL子系统、编程语言功能模型、RTL验证模块,其特征在于:在所述RTL验证模块中创建数据比较接口,用于对存储器的相关信息与编程语言功能模型参考信息进行比较;其验证流程包括以下步骤:S1.根据数据处理流程构建编程语言功能模型,将访问存储器的相关信息对应存储为编程语言功能模型内的参考信息;S2.监测RTL子系统中所有存储器的读写信号,若检测到所述读写信号使能,则执行下一步骤,否则继续执行当前监测步骤;S3.RTL验证模块调用数据比较接口,对RTL操作存储器的相关信息同所述编程语言功能模型内对应的存储器参考信息进行比较,若比较结果全部一致,则验证通过,并释放当前验证通过的存储器参考信息,然后执行下一步骤;若出现任一比较结果不一致则产生中断,然后执行S6;S4.判断系统内所有存储器是否验证完毕,若是,执行下一步骤;否则,返回S2;S5.查找编程语言功能模型中是否存在未释放的存储器参考信息,若存在,则产生中断;S6.结束系统验证。2.根据权利要求1所述的基于存储器访问驱动的自动化协同验证平台的搭建方法,其特征在于所述编程语言功能模型采用的编程语言包括C、C++。3.根据权利要求1所述的基于存储器访问驱动的自动化协同验证平台的搭建方法,其特征在于:所述步骤S1中将访问存储器的相关信息对应存储为编程语言功能模型内的参考信息时按照逻辑处理的先后顺序进行存储。4.根据权利要求1所述的基于存储器访问驱动的自动化协同验证平台的搭建方法,其特...

【专利技术属性】
技术研发人员:江源唐飞徐子轩
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏;32

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

1