书签 分享 收藏 举报 版权申诉 / 10

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

  • 上传人:r7
  • 文档编号:1290812
  • 上传时间:2018-04-13
  • 格式:PDF
  • 页数:10
  • 大小:563.44KB
  • 摘要
    申请专利号:

    CN201611162196.X

    申请日:

    2016.12.15

    公开号:

    CN106528364A

    公开日:

    2017.03.22

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 11/26申请日:20161215|||公开

    IPC分类号:

    G06F11/26; G06F11/34; G06F11/36; G06F11/30

    主分类号:

    G06F11/26

    申请人:

    盛科网络(苏州)有限公司

    发明人:

    江源; 唐飞; 徐子轩

    地址:

    215000 江苏省苏州市工业园区星汉街5号B幢4楼13/16单元

    优先权:

    专利代理机构:

    南京利丰知识产权代理事务所(特殊普通合伙) 32256

    代理人:

    王锋

    PDF完整版下载: PDF下载
    内容摘要

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

    权利要求书

    1.一种基于存储器访问驱动的自动化协同验证平台的搭建方法,其验证平台包括RTL
    子系统、编程语言功能模型、RTL验证模块,其特征在于:
    在所述RTL验证模块中创建数据比较接口,用于对存储器的相关信息与编程语言功能
    模型参考信息进行比较;
    其验证流程包括以下步骤:
    S1.根据数据处理流程构建编程语言功能模型,将访问存储器的相关信息对应存储为
    编程语言功能模型内的参考信息;
    S2.监测RTL子系统中所有存储器的读写信号,若检测到所述读写信号使能,则执行下
    一步骤,否则继续执行当前监测步骤;
    S3.RTL验证模块调用数据比较接口,对RTL操作存储器的相关信息同所述编程语言功
    能模型内对应的存储器参考信息进行比较,若比较结果全部一致,则验证通过,并释放当前
    验证通过的存储器参考信息,然后执行下一步骤;若出现任一比较结果不一致则产生中断,
    然后执行S6;
    S4.判断系统内所有存储器是否验证完毕,若是,执行下一步骤;否则,返回S2;
    S5.查找编程语言功能模型中是否存在未释放的存储器参考信息,若存在,则产生中
    断;
    S6.结束系统验证。
    2.根据权利要求1所述的基于存储器访问驱动的自动化协同验证平台的搭建方法,其
    特征在于所述编程语言功能模型采用的编程语言包括C、C++。
    3.根据权利要求1所述的基于存储器访问驱动的自动化协同验证平台的搭建方法,其
    特征在于:所述步骤S1中将访问存储器的相关信息对应存储为编程语言功能模型内的参考
    信息时按照逻辑处理的先后顺序进行存储。
    4.根据权利要求1所述的基于存储器访问驱动的自动化协同验证平台的搭建方法,其
    特征在于所述存储器的相关信息包括:存储器的序列号、存储器的名称、读写存储器的地
    址、读写存储器的数据。
    5.根据权利要求4所述的基于存储器访问驱动的自动化协同验证平台的搭建方法,其
    特征在于所述步骤S1中将访问存储器的相关信息对应存储为编程语言功能模型内的参考
    信息具体包括:
    使用编程语言功能模型作为参考模型,将RTL操作的存储器的序列号作为参考序列号,
    存储器名称作为参考表项名称,读写存储器的地址作为参考地址,读写存储器的数据作为
    参考数据。
    6.根据权利要求5所述的基于存储器访问驱动的自动化协同验证平台的搭建方法,其
    特征在于所述步骤S3中对RTL操作存储器的相关信息同所述编程语言功能模型内对应的存
    储器参考信息进行比较包括:
    将当前操作的存储器的序列号、存储器的名称、读写存储器的地址和读写存储器的数
    据分别与参考序列号、参考表项名称、参考地址、参考数据作对应比对。
    7.根据权利要求1所述的基于存储器访问驱动的自动化协同验证平台的搭建方法,其
    特征在于:所述数据比较接口使用硬件语言编写。
    8.根据权利要求7所述的基于存储器访问驱动的自动化协同验证平台的搭建方法,其
    特征在于:所述数据比较接口使用Verilog语言提供的PLI接口编写。
    9.根据权利要求1至8任意一项所述的基于存储器访问驱动的自动化协同验证平台的
    搭建方法,其特征在于:
    对于同一输入激励,所述编程语言功能模型对应所述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操作存储器的相关信息同所述编程语言功能模型内
    对应的存储器参考信息进行比较包括:

    将当前操作的存储器的序列号、存储器的名称、读写存储器的地址和读写存储器
    的数据分别与参考序列号、参考表项名称、参考地址、参考数据作对应比对。

    优选地,所述数据比较接口使用硬件语言编写。

    优选地,所述数据比较接口使用Veri log语言提供的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语言功能模型释放参考信息;

    在上一步骤数据比较全部比对通过后,释放C语言功能模型中该存储器对应序列
    号的存储信息。

    步骤206,判断系统内所有存储器是否验证完毕,若是,执行下一步骤;否则,返回
    步骤202;

    步骤207,查找C语言功能模型中是否存在未释放的存储器参考信息,若存在,则执
    行下一步骤;否则,执行步骤209。

    在系统验证流程结束时进行数据检查,查找C语言的功能模型中是否存在未释放
    的存储器信息,若存在,则执行下一步骤;否则,执行步骤209结束整个系统验证的仿真过
    程。

    步骤208,产生中断;

    步骤209,结束系统验证。

    及时释放存储器参考信息并在系统验证结束前对释放情况进行检查,可防止RTL
    子系统出现不访问存储器的错误,若存在释放残留将无法触发和C语言功能模型的比较操
    作。

    以存储器的访问作为驱动搭建自动化协同验证平台,可以准确高效的测试RTL子
    系统。在检查被测模块的输出信息的同时,监测其内部状态或者存储信息的变化,极大的优
    化了相关联功能的测试方法,且调试方便、验证全面。

    为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
    本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不
    用于限定本发明。

    图3是本发明一实施例提出的一种基于存储器访问驱动的自动化协同验证平台的
    搭建方法示意图,如图3所示。本实施例的自动化协同验证平台由RTL子系统、C语言功能模
    型和RTL验证模块构成,其中,RTL验证模块内的数据比较接口是使用Verilog语言提供的
    PLI接口编写的数据比较函数,将Verilog模块内产生的数据类型转换成C语言内部的数据
    类型,通过调用这个函数可以将C语言功能模块和Verilog模块内部的数据进行比较。

    当激励输入后,C语言功能模型产生与RTL子系统中各模块内的存储器相对应的存
    储器参考信息,将RTL操作存储器的序列号、该存储器的名称、读写存储器的地址、读写存储
    器的数据存储为参考序列号,参考表项名称,参考地址,参考数据,如图中所示。具体存储格
    式不限,根据语言编程需要或编程风格而定。

    RTL验证模块监测RTL子系统的模块中所有存储器的读写信号,一旦发现有信号使
    能则调用PLI接口,将RTL操作存储器的序列号、该存储器的名称、读写存储器的地址、读写
    存储器的数据同上述C语言功能模块产生的结果进行比较。如果参考序列号、参考表项名
    称、参考地址、参考数据中有任意一个比对不一致则产生中断结束系统仿真验证;如果比对
    全部一致,释放C语言功能模型中该序列号对应的存储器的存储信息。

    在系统仿结束前,查找C语言的功能模型中是否存在未释放的存储器信息,若存
    在,则产生中断结束系统仿真验证。

    进一步地,对于同一个输入激励,C语言功能模型对应所述RTL子系统中所有存储
    器产生的参考序列号是相同的;如果连续输入两次激励操作同一个存储器,则C语言的功能
    模型会针对该存储器记录两个不同的序列号。

    应当理解,上述实施例仅为说明本发明的技术构思及特点,其目的在于让熟悉此
    项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡
    根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

    关 键  词:
    基于 存储器 访问 驱动 自动化 协同 验证 平台 搭建 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于存储器访问驱动的自动化协同验证平台的搭建方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1290812.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1