CN104536885A - 一种生成Soc随机验证平台的方法 - Google Patents
一种生成Soc随机验证平台的方法 Download PDFInfo
- Publication number
- CN104536885A CN104536885A CN201410788503.XA CN201410788503A CN104536885A CN 104536885 A CN104536885 A CN 104536885A CN 201410788503 A CN201410788503 A CN 201410788503A CN 104536885 A CN104536885 A CN 104536885A
- Authority
- CN
- China
- Prior art keywords
- random
- generation module
- variable
- soc
- generation
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种生成Soc随机验证平台的方法,其特征在于,根据各种验证场景编写独立的激励产生模块;提取各个激励产生模块需验证的可变参数为变量,所述变量通过随机变量文件设定;所述随机变量文件由随机产生模块自动生成,激励产生模块依据随机变量文件设定的变量生成对应最终的Soc验证的可执行文件。在传统Soc验证技术上增加了随机产生模块,利用随机产生模块的随机性,将传统激励产生模块中的变量抽取出来,由随机产生模块产生,使得激励产生模块变得很简单。甚至使用一个随机产生模块和一个激励产生模块就能完成所有场景的验证。激励产生模块可以得到最大程度的复用,大大减少了测试用例代码的开发工作量,同时,代码维护起来也非常方便。
Description
技术领域
本发明涉及芯片的验证,特别是涉及一种生成SoC随机验证平台的方法。
背景技术
SoC芯片验证是对SoC芯片进行全面的功能验证,以保障SoC芯片的正确工作。随着集成电路产业的飞速发展,SoC芯片规模越来越大,设计也越来越复杂,使得SoC验证也越来越困难。图1是传统的验证平台系统示意框图,主要包括激励产生模块,待验证SoC芯片,结果比对模块。每个验证场景几乎都需要一个独立的激励产生模块产生激励,因此验证场景越多,激励产生模块也就越多,工作量越大,代码维护也更困难。以使用C语言编写激励产生模块为例,每种场景几乎都需要一个C文件编写的激励产生模块,在需要验证该场景时,使用C编译器编译该C文件,生成可执行文件,提供给相应的处理器进行处理操作。然后启动验证平台,SoC芯片内处理器将会载入这个文件,并且按照文件中激励要求产生相应的响应,完成功能的验证。即便两种场景不同的变量只有一个,例如某个寄存器的值,都需要编写多份的C文件进行全面覆盖。这样的实现方式,存在很多的冗余工作。由于验证场景有很多,验证人员需要编写大量的C文件类型的test-case。这样不但会给验证人员带来大量的繁复劳动,而且对后期test-case的维护也相当不利。
发明内容
针对以上缺陷,本发明目的在于提出如何可提高测试代码复用性,减少SoC芯片验证测试用例的编写工作,同时提高代码的可维护性。
为了实现上述目的,本发明提供了一种生成Soc随机验证平台的方法,其特征在于,根据各种验证场景编写独立的激励产生模块;提取各个激励产生模块需验证的可变参数为变量,所述变量通过随机变量文件设定;所述随机变量文件由随机产生模块自动生成,激励产生模块依据随机变量文件设定的变量生成对应最终的Soc验证的可执行文件。
所述的生成Soc随机验证平台的方法,其特征在于所述随机产生模块的随机种子是可变的,相同的随机种子生成的随机变量文件相同。
所述的生成Soc随机验证平台的方法,其特征在于所述的激励产生模块可预先编译生成可执行文件。
本发明在传统Soc验证技术上增加了随机产生模块,利用随机产生模块的随机性,将传统激励产生模块中的变量抽取出来,由随机产生模块产生,使得激励产生模块变得很简单。甚至使用一个随机产生模块和一个激励产生模块就能完成所有场景的验证。激励产生模块可以得到最大程度的复用,大大减少了测试用例代码的开发工作量,同时,代码维护起来也非常方便。
附图说明
图1是传统的验证平台系统示意框图;
图2是增加随机产生模块后的验证平台系统示意框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2是增加随机产生模块后的验证平台系统示意框图,相比传统的验证方法,增加了一个随机产生模块。以使用C语言编写激励产生模块为例,也可以是采用其它编程语言来实现,使用该随机产生模块后,验证人员不用在C代码的激励产生模块中直接将变量固定为一个值,可以将所有的变量从该C代码提取出来,由随机产生模块提供。
首先由随机产生模块随机产生各个变量的值,可以在随机产生模块中对这些随机变量进行相应的约束,以便随机成符合规定的变量。
然后将这些变量值转换为C语言能够识别的语句,并放入到一个或多个文件中,同时在C代码中使用include的方式将这些含有变量的文件包含,或者通过文件读取的方式读取相应变量的值。通过这种方式实现后,每次只需要运行一次随机产生模块,就产生一组随机变量配置,将这些配置输出到一个或多个固定名字的文件中,再在C激励产生模块中使用include的方式将这些文件导入或直接读取的方式读取。所以C激励产生模块本身不需要进行任何改动。
在验证SoC芯片的时候,只需要编译一次SoC设计代码,然后多次验证的时候,只需要使用一次随机产生模块,然后编译一下C文件即可,非常方便使用。
为了能够实现验证场景的复现,以便发现bug的时候可以查看,还需要对随机产生模块进行改进,例如使用随机种子的方式,使得随机产生模块在同一个随机种子的作用下,每次产生的随机变量都不会改变,而只有改变随机种子,才会产生出不同的随机变量。
这里的随机产生模块,可以使用不同的方式来实现。例如,可以使用systemverilog语言来编写随机产生模块,或者使用脚本语言来实现。实现方式简单多样,验证人员可以根据自己的喜好选择一种实现方式。
这里的激励产生模块,根据处理器的不同,也可以使用不同的语言来编写,例如使用C语言,或者使用汇编语言。
综上所述,针对集成电路芯片开发必不可少的验证环节设计了本发明,该发明避免了直接编写大量测试文件、浪费大量的工作量和不易维护的弊端,使用方便,实现方式多样,且适用于任何SoC芯片的验证。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (3)
1.一种生成Soc随机验证平台的方法,其特征在于,根据各种验证场景编写独立的激励产生模块;提取各个激励产生模块需验证的可变参数为变量,所述变量通过随机变量文件设定;所述随机变量文件由随机产生模块自动生成,激励产生模块依据随机变量文件设定的变量生成对应最终的Soc验证的可执行文件。
2.根据权利要求1所述的生成Soc随机验证平台的方法,其特征在于所述随机产生模块的随机种子是可变的,相同的随机种子生成的随机变量文件相同。
3.根据权利要求2所述的生成Soc随机验证平台的方法,其特征在于所述的激励产生模块可预先编译生成可执行文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410788503.XA CN104536885A (zh) | 2014-12-17 | 2014-12-17 | 一种生成Soc随机验证平台的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410788503.XA CN104536885A (zh) | 2014-12-17 | 2014-12-17 | 一种生成Soc随机验证平台的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104536885A true CN104536885A (zh) | 2015-04-22 |
Family
ID=52852415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410788503.XA Pending CN104536885A (zh) | 2014-12-17 | 2014-12-17 | 一种生成Soc随机验证平台的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536885A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965750A (zh) * | 2015-06-05 | 2015-10-07 | 浪潮集团有限公司 | 基于Python语言的Rapidio切换器逻辑仿真验证平台及方法 |
CN107016165A (zh) * | 2017-03-09 | 2017-08-04 | 记忆科技(深圳)有限公司 | 一种SoC自动化随机验证的方法 |
CN107797846A (zh) * | 2017-09-26 | 2018-03-13 | 记忆科技(深圳)有限公司 | 一种Soc芯片验证方法 |
CN108829596A (zh) * | 2018-06-11 | 2018-11-16 | 深圳忆联信息系统有限公司 | 中断随机验证方法、装置、计算机设备及存储介质 |
CN109101355A (zh) * | 2018-06-26 | 2018-12-28 | 天津飞腾信息技术有限公司 | 一种提取错误现场特征测试激励的处理器调试方法 |
CN110781637A (zh) * | 2019-10-14 | 2020-02-11 | 珠海泰芯半导体有限公司 | 一种芯片验证辅助环境以及芯片验证系统 |
CN111796975A (zh) * | 2020-07-07 | 2020-10-20 | 云知声智能科技股份有限公司 | 芯片的随机化验证方法及装置 |
CN112506517A (zh) * | 2020-11-30 | 2021-03-16 | 天津飞腾信息技术有限公司 | 一种裸机系统级激励交叉编译系统及编译方法 |
CN113032202A (zh) * | 2021-03-26 | 2021-06-25 | 上海阵量智能科技有限公司 | 芯片验证方法、系统、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763451A (zh) * | 2010-01-01 | 2010-06-30 | 江苏华丽网络工程有限公司 | 大规模网络芯片验证平台的建立方法 |
CN103093713A (zh) * | 2011-10-31 | 2013-05-08 | 安凯(广州)微电子技术有限公司 | 一种基于fpga的芯片验证方法、装置及系统 |
CN103838672A (zh) * | 2014-03-04 | 2014-06-04 | 中国工商银行股份有限公司 | 一种通用报表的自动化测试方法及装置 |
CN104182335A (zh) * | 2014-05-09 | 2014-12-03 | 中国光大银行 | 软件测试方法和装置 |
-
2014
- 2014-12-17 CN CN201410788503.XA patent/CN104536885A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763451A (zh) * | 2010-01-01 | 2010-06-30 | 江苏华丽网络工程有限公司 | 大规模网络芯片验证平台的建立方法 |
CN103093713A (zh) * | 2011-10-31 | 2013-05-08 | 安凯(广州)微电子技术有限公司 | 一种基于fpga的芯片验证方法、装置及系统 |
CN103838672A (zh) * | 2014-03-04 | 2014-06-04 | 中国工商银行股份有限公司 | 一种通用报表的自动化测试方法及装置 |
CN104182335A (zh) * | 2014-05-09 | 2014-12-03 | 中国光大银行 | 软件测试方法和装置 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965750B (zh) * | 2015-06-05 | 2017-11-10 | 浪潮集团有限公司 | 基于Python语言的Rapidio切换器逻辑仿真验证平台及方法 |
CN104965750A (zh) * | 2015-06-05 | 2015-10-07 | 浪潮集团有限公司 | 基于Python语言的Rapidio切换器逻辑仿真验证平台及方法 |
CN107016165A (zh) * | 2017-03-09 | 2017-08-04 | 记忆科技(深圳)有限公司 | 一种SoC自动化随机验证的方法 |
CN107797846A (zh) * | 2017-09-26 | 2018-03-13 | 记忆科技(深圳)有限公司 | 一种Soc芯片验证方法 |
CN107797846B (zh) * | 2017-09-26 | 2020-07-14 | 记忆科技(深圳)有限公司 | 一种Soc芯片验证方法 |
CN108829596B (zh) * | 2018-06-11 | 2022-03-29 | 深圳忆联信息系统有限公司 | 中断随机验证方法、装置、计算机设备及存储介质 |
CN108829596A (zh) * | 2018-06-11 | 2018-11-16 | 深圳忆联信息系统有限公司 | 中断随机验证方法、装置、计算机设备及存储介质 |
CN109101355A (zh) * | 2018-06-26 | 2018-12-28 | 天津飞腾信息技术有限公司 | 一种提取错误现场特征测试激励的处理器调试方法 |
CN110781637A (zh) * | 2019-10-14 | 2020-02-11 | 珠海泰芯半导体有限公司 | 一种芯片验证辅助环境以及芯片验证系统 |
CN110781637B (zh) * | 2019-10-14 | 2023-05-02 | 珠海泰芯半导体有限公司 | 一种芯片验证辅助环境以及芯片验证系统 |
CN111796975A (zh) * | 2020-07-07 | 2020-10-20 | 云知声智能科技股份有限公司 | 芯片的随机化验证方法及装置 |
CN111796975B (zh) * | 2020-07-07 | 2024-01-30 | 云知声智能科技股份有限公司 | 芯片的随机化验证方法及装置 |
CN112506517A (zh) * | 2020-11-30 | 2021-03-16 | 天津飞腾信息技术有限公司 | 一种裸机系统级激励交叉编译系统及编译方法 |
CN113032202A (zh) * | 2021-03-26 | 2021-06-25 | 上海阵量智能科技有限公司 | 芯片验证方法、系统、装置、计算机设备及存储介质 |
CN113032202B (zh) * | 2021-03-26 | 2024-03-05 | 上海阵量智能科技有限公司 | 芯片验证方法、系统、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104536885A (zh) | 一种生成Soc随机验证平台的方法 | |
CN106940428B (zh) | 芯片验证方法、装置及系统 | |
BR102016018127A2 (pt) | método para projeto com base em modelo de software de segurança crítica | |
RU2013147142A (ru) | Система и способ верификации и аттестации программного обеспечения резервирования в системах plc (программируемого логического управления) | |
US8868976B2 (en) | System-level testcase generation | |
JP2007012003A (ja) | フィーチャ指向ソフトウェア製品ラインの開発環境を提供するシステム | |
US9317405B2 (en) | Test double generation | |
US20070061641A1 (en) | Apparatus and method for generating test driver | |
US10592703B1 (en) | Method and system for processing verification tests for testing a design under test | |
CN106294148A (zh) | 基于扩展符号变迁系统的c语言程序软件验证方法及装置 | |
CN104102581B (zh) | 一种实现单元测试的方法及装置 | |
US8140315B2 (en) | Test bench, method, and computer program product for performing a test case on an integrated circuit | |
CN107622017A (zh) | 一种通用自动化软件测试的解析方法 | |
US20110131031A1 (en) | Dynamic generation of tests | |
CN107704351B (zh) | 一种芯片的验证方法和装置 | |
Schönböck et al. | TETRABox-a generic white-box testing framework for model transformations | |
CN105630680B (zh) | 一种随机测试程序生成方法 | |
Amalfitano et al. | Improving code coverage in android apps testing by exploiting patterns and automatic test case generation | |
CN111859833A (zh) | 可配置系统级验证环境构造方法、系统及介质 | |
KR101306842B1 (ko) | 자바 프로그램 검증 조건 생성 시스템 및 방법 | |
US9983983B2 (en) | Auto-generation of testable units for COBOL code | |
CN115562931A (zh) | 处理器调试模块验证方法、装置、电子设备和存储介质 | |
Kandl et al. | A formal approach to system integration testing | |
JP5900212B2 (ja) | テストデータ生成装置、該プログラム、及び該方法 | |
CN102129407A (zh) | 双精度simd部件芯片级验证测试激励自动生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150422 |
|
RJ01 | Rejection of invention patent application after publication |