CN106528364B - 基于存储器访问驱动的自动化协同验证平台的搭建方法 - Google Patents

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

Info

Publication number
CN106528364B
CN106528364B CN201611162196.XA CN201611162196A CN106528364B CN 106528364 B CN106528364 B CN 106528364B CN 201611162196 A CN201611162196 A CN 201611162196A CN 106528364 B CN106528364 B CN 106528364B
Authority
CN
China
Prior art keywords
memory
rtl
programming language
functional mode
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611162196.XA
Other languages
English (en)
Other versions
CN106528364A (zh
Inventor
江源
唐飞
徐子轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Centec Communications Co Ltd
Original Assignee
Centec Networks Suzhou Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Centec Networks Suzhou Co Ltd filed Critical Centec Networks Suzhou Co Ltd
Priority to CN201611162196.XA priority Critical patent/CN106528364B/zh
Publication of CN106528364A publication Critical patent/CN106528364A/zh
Application granted granted Critical
Publication of CN106528364B publication Critical patent/CN106528364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

基于存储器访问驱动的自动化协同验证平台的搭建方法
技术领域
本发明涉及芯片验证技术,具体涉及一种基于存储器访问驱动的自动化协同验证平台的搭建方法。
背景技术
为了验证芯片内部的子系统,甚至是全芯片功能,经常需要协同验证环境来支持,即用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语言的功能模型会针对该存储器记录两个不同的序列号。
应当理解,上述实施例仅为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (9)

1.一种基于存储器访问驱动的自动化协同验证平台的搭建方法,其验证平台包括RTL子系统、编程语言功能模型、RTL验证模块,其特征在于:
在所述RTL验证模块中创建数据比较接口,用于对RTL操作的存储器的相关信息与编程语言功能模型内的存储器参考信息进行比较;
其验证流程包括以下步骤:
S1.根据数据处理流程构建编程语言功能模型,将访问存储器的相关信息对应存储为编程语言功能模型内的存储器参考信息;
S2.监测RTL子系统中所有存储器的读写信号,若检测到所述读写信号使能,则执行下一步骤,否则继续执行当前监测步骤;
S3.RTL验证模块调用数据比较接口,对RTL操作的存储器的相关信息同所述编程语言功能模型内对应的存储器参考信息进行比较,若比较结果全部一致,则验证通过,并释放当前验证通过的存储器参考信息,然后执行下一步骤;若出现任一比较结果不一致则产生中断,然后执行S6;
S4.判断RTL子系统内所有存储器是否验证完毕,若是,执行下一步骤;否则,返回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子系统中所有存储器产生的参考序列号是相同的;如果连续输入两次激励操作同一个存储器,则所述编程语言功能模型针对该存储器记录两个不同的参考序列号。
CN201611162196.XA 2016-12-15 2016-12-15 基于存储器访问驱动的自动化协同验证平台的搭建方法 Active CN106528364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611162196.XA CN106528364B (zh) 2016-12-15 2016-12-15 基于存储器访问驱动的自动化协同验证平台的搭建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611162196.XA CN106528364B (zh) 2016-12-15 2016-12-15 基于存储器访问驱动的自动化协同验证平台的搭建方法

Publications (2)

Publication Number Publication Date
CN106528364A CN106528364A (zh) 2017-03-22
CN106528364B true CN106528364B (zh) 2018-11-30

Family

ID=58339657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611162196.XA Active CN106528364B (zh) 2016-12-15 2016-12-15 基于存储器访问驱动的自动化协同验证平台的搭建方法

Country Status (1)

Country Link
CN (1) CN106528364B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111931161B (zh) * 2020-09-10 2021-01-12 鹏城实验室 基于risc-v处理器的芯片验证方法、设备及存储介质
CN112632885B (zh) * 2020-12-25 2023-01-03 山东产研鲲云人工智能研究院有限公司 软硬件联合验证系统及方法
CN114546823B (zh) * 2021-12-27 2023-09-12 芯华章科技股份有限公司 用于重现逻辑系统设计的调试场景的方法及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567165A (zh) * 2011-12-29 2012-07-11 中国科学院自动化研究所 对寄存器传输级硬件实现进行验证的系统及方法
CN104166744A (zh) * 2013-05-16 2014-11-26 郭若杉 验证视频算法寄存器传输级实现的方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8145967B2 (en) * 2007-10-12 2012-03-27 Oracle America, Inc. System and method for verifying the receive path of an input/output component
US9027001B2 (en) * 2012-07-10 2015-05-05 Honeywell International Inc. Systems and methods for verifying expression folding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567165A (zh) * 2011-12-29 2012-07-11 中国科学院自动化研究所 对寄存器传输级硬件实现进行验证的系统及方法
CN104166744A (zh) * 2013-05-16 2014-11-26 郭若杉 验证视频算法寄存器传输级实现的方法和系统

Also Published As

Publication number Publication date
CN106528364A (zh) 2017-03-22

Similar Documents

Publication Publication Date Title
CN105022691B (zh) 一种基于uml图的高度自动化软件测试方法
CN107066382B (zh) 一种基于模型的航天器系统自动化测试方法
US20070094541A1 (en) Method and apparatus for generating test execution sequences automatically for a software testing process
CN106528364B (zh) 基于存储器访问驱动的自动化协同验证平台的搭建方法
CN102169846B (zh) 一种在集成电路晶圆测试过程中实现多维变量密码并行写入的方法
CN109885499B (zh) 一种机器人自动化测试系统及测试方法
CN102662846A (zh) 一种自动化工具与测试用例结合的测试方法
CN104252481A (zh) 主从数据库一致性的动态校验方法和装置
CN110109897A (zh) 数据库脚本生成方法、装置、计算机设备和存储介质
CN107301130A (zh) 一种vr一体机测试工具及其方法
CN111125052B (zh) 基于动态元数据的大数据智能建模系统及方法
CN106598874A (zh) 一种软件自动化测试方法及装置
CN105677306A (zh) 自动化脚本的编写方法和装置
CN109669436B (zh) 一种基于电动汽车的功能需求的测试用例生成方法和装置
CN105279092A (zh) 一种软件测试的方法及装置
CN107966648B (zh) 一种基于相关性矩阵的嵌入式故障诊断方法
CN103455672B (zh) 一种fpga仿真测试用例自动化回归方法
CN104063307A (zh) 一种软件测试方法和系统
CN107703773A (zh) 一种基于硬件在环仿真系统的软件测试方法及装置
CN113127331B (zh) 一种基于故障注入的测试方法、装置及计算机设备
CN105302547A (zh) 一种面向Verilog HDL设计的故障注入方法
CN106971757A (zh) 一种检验Nand Flash质量的方法及系统
CN111243657A (zh) 一种有效的存储器电路随机故障注入方法
CN103165405A (zh) 一种通过gpib接口实时生成多维变量密码方法
CN113485919B (zh) 测试方法、测试装置及计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province

Patentee after: Suzhou Shengke Communication Co.,Ltd.

Address before: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province

Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd.