CN107016165B - 一种SoC自动化随机验证的方法 - Google Patents
一种SoC自动化随机验证的方法 Download PDFInfo
- Publication number
- CN107016165B CN107016165B CN201710136016.9A CN201710136016A CN107016165B CN 107016165 B CN107016165 B CN 107016165B CN 201710136016 A CN201710136016 A CN 201710136016A CN 107016165 B CN107016165 B CN 107016165B
- Authority
- CN
- China
- Prior art keywords
- random
- program
- soc
- test
- seed
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种SoC自动化随机验证的方法,其特征在于通过脚本语言自动生成随机种子,将随机种子分别输入到C程序和SoC的测试激励模块;C程序根据输入的随机种子生成内部需要的随机数;测试激励模块根据生成的随机种子随机生成测试激励,测试激励实现SoC芯片的测试,通过检测输出判断测试结果。结合了外部程序产生随机数和内部测试用例C程序产生随机数的优点,通过外部传入随机种子给内部测试用例C程序产生随机数据,简单方便高效,实现了自动产生真正随机数据的效果,大大提高了验证的覆盖率和效率。
Description
技术领域
本发明涉及芯片设计与制造领域,尤其涉及一种实现新型的SoC验证的交互机制的方法。
背景技术
随着设计与制造技术的发展,集成电路设计从晶体管的集成发展到逻辑门的集成,现在又发展到IP的集成,即SoC(System-on-Chip)设计技术。SoC可以有效地降低电子/信息系统产品的开发成本,缩短开发周期,提高产品的竞争力,是当前工业界采用的最主要的产品开发方式。但是随着生产工艺越来越复杂,以及芯片规模越来越大,使得SoC的验证复杂度呈现指数型增长。因此,通过测试平台添加有约束的随机激励的验证方法成为了业界主流。这就对随机激励的产生提出了很高的要求。传统的随机激励产生主要有两种方法,图1是C直接产生随机数的测试激励示例,在C程序中进行直接随机生成随机数据,然后使用其产生测试激励,再利用测试激励对SoC芯片进行测试,最后检查输出,完成该次随机验证。该方法的缺点是无法做到真正的随机,每次运行得到的随机数都是一样的,无法满足激励随机的要求;图2是外部产生随机数的测试激励示例;通过在程序外使用别的方式(脚本语言或者Matlab)产生随机数,然后使用C语言随机数据include,再使用随机数据产生测试激励,接着利用测试激励对SoC芯片进行测试,最后检查输出,完成该次随机验证。此方法缺点是每次进行SoC验证前,都必须先运行产生随机数的程序,使用不方便且影响验证效率。因此,SoC验证过程需要新的随机技术,可以克服上述问题,以减少验证时间和提高验证覆盖率。
发明内容
针对以上缺陷,本发明目的在于如何实现一种在不影响验证效率的前提下,提供出一种真正的激励随机的方法来满足SoC自动化随机验证要求。
为了实现上述目的,本发明提供了一种SoC自动化随机验证的方法,其特征在于通过脚本语言自动生成随机种子,将随机种子分别输入到C程序和SoC的测试激励模块;C程序根据输入的随机种子生成内部需要的随机数;测试激励模块根据生成的随机种子随机生成测试激励,测试激励实现对SoC芯片测试,通过检测输出判断测试结果。
所述的SoC自动化随机验证的方法,其特征在于所述的脚本语言为Perl、shell或Python。
所述的SoC自动化随机验证的方法,其特征在于随机种子通过C语言宏定义的方式输入C程序,具体为在使用随机种子的程序中增加宏C_SEED的定义,在C程序编译时增加-DC_SEED=<seed>的编译选项。
本发明结合了外部程序产生随机数和内部测试用例C程序产生随机数的优点,通过外部传入随机种子给内部测试用例C程序产生随机数据,简单方便高效,实现了自动产生真正随机数据的效果,大大提高了验证的覆盖率和效率。
附图说明
图1是C直接产生随机数的测试激励示例;
图2是外部产生随机数的测试激励示例;
图3是自动化生成随机数的测试激励示例;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图3是自动化生成随机数的测试激励示例。相比于传统的SoC验证随机技术,其主要的不同是自动产生随机种子并将其传递到验证平台和C程序中。
首先是使用脚本语言自动产生随机种子。使用的语言可以多种多样,比如Perl,shell或者Python。产生随机种子的方式也很多,一般采用跟Linux时间相关,或者是Linux时间和当前CPU进程数的组合。
其次是将随机种子传递到验证平台和C程序中,当下主流的SoC验证都会将随机种子传递到验证平台,以产生随机的SystemVerilog激励。本发明最关键的操作是将同一随机种子传递到C程序中。传递方式比较方便的是采用C语言宏的方式,即,在C程序编译的时候,通过添加选项-DC_SEED=<seed>。这样则在C程序中添加了一个宏C_SEED,其值为随机种子。
然后在C程序中使用该随机种子,比如srand(C_SEED),此时C语言设置了随机种子,之后调用随机函数将在此随机种子的基础上产生。因此后续C程序中如果想要产生随机数据,可以直接使用C语言rand()函数。如果还想对数据进行约束,可以在C程序中通过编程添加约束。
最后验证平台根据这些随机激励进行仿真。
通过上面描述的方式进行SoC验证,全都可以通过脚本一次编译完成,无需另外步骤,因此使用起来非常方便高效。同时,由于每次C程序输入的随机种子都是不一样的,因此可以认为C程序rand()函数产生的数据也是随机的,因此做到了真正意义上的随机。如果再配合以不同的随机种子并行进行SoC仿真,将大大提高SoC验证的效率和覆盖率。而且,如果SoC仿真出现错误,由于验证平台和C程序都使用了同一随机种子,完全可以使用此种子再次跑仿真来复现问题,debug,以及确认问题是否解决。
综上所述,本发明解决了传统SoC验证随机技术上的缺陷,使用上方便高效,并做到了真正的随机,如果配合以不同随机种子并行SoC仿真,势必将大大提高SoC验证的效率。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (3)
1.一种SoC自动化随机验证的方法,其特征在于通过脚本语言自动生成随机种子,将随机种子分别输入到C程序和SoC的测试激励模块;C程序根据输入的随机种子生成内部需要的随机数;C程序将根据随机种子产生的随机数输入测试激励模块,测试激励模块根据生成的随机种子随机生成测试激励,测试激励实现SoC芯片的测试,通过检测输出判断测试结果。
2.根据权利要求1所述的SoC自动化随机验证的方法,其特征在于所述的脚本语言为Perl、shell或Python。
3.根据权利要求2所述的SoC自动化随机验证的方法,其特征在于随机种子通过C语言宏定义的方式输入C程序,具体为在使用随机种子的程序中增加宏C_SEED的定义,在C程序编译时增加-DC_SEED=<seed>的编译选项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710136016.9A CN107016165B (zh) | 2017-03-09 | 2017-03-09 | 一种SoC自动化随机验证的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710136016.9A CN107016165B (zh) | 2017-03-09 | 2017-03-09 | 一种SoC自动化随机验证的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107016165A CN107016165A (zh) | 2017-08-04 |
CN107016165B true CN107016165B (zh) | 2020-10-20 |
Family
ID=59440150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710136016.9A Active CN107016165B (zh) | 2017-03-09 | 2017-03-09 | 一种SoC自动化随机验证的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107016165B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797846B (zh) * | 2017-09-26 | 2020-07-14 | 记忆科技(深圳)有限公司 | 一种Soc芯片验证方法 |
CN108170403B (zh) * | 2017-12-29 | 2021-06-25 | 北京欧链科技有限公司 | 数据筛选方法和装置 |
CN108363567B (zh) * | 2018-02-12 | 2021-02-12 | 盛科网络(苏州)有限公司 | 一种基于数据库的验证平台激励器自动化生成方法 |
CN110569038B (zh) * | 2019-09-06 | 2023-06-09 | 深圳忆联信息系统有限公司 | 随机验证参数设计方法、装置、计算机设备及存储介质 |
CN110688811B (zh) * | 2019-09-12 | 2023-05-02 | 山东华芯半导体有限公司 | 一种随机权重可控的加速soc模块设计验证的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515301A (zh) * | 2008-02-23 | 2009-08-26 | 炬力集成电路设计有限公司 | 一种片上系统芯片验证的方法和装置 |
CN101826050A (zh) * | 2010-02-03 | 2010-09-08 | 北京龙芯中科技术服务中心有限公司 | 一种用于制造后处理器芯片验证的随机验证方法及装置 |
CN102402430A (zh) * | 2010-09-14 | 2012-04-04 | 无锡中星微电子有限公司 | 一种利用脚本生成随机测试例方法和系统 |
CN102902834A (zh) * | 2011-07-29 | 2013-01-30 | 炬力集成电路设计有限公司 | 一种soc芯片的验证方法及系统 |
CN105844066A (zh) * | 2016-06-07 | 2016-08-10 | 无锡键桥电子科技有限公司 | 一种用于无源标签芯片的设计验证方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10216484B2 (en) * | 2014-06-10 | 2019-02-26 | Texas Instruments Incorporated | Random number generation with ferroelectric random access memory |
CN104536885A (zh) * | 2014-12-17 | 2015-04-22 | 记忆科技(深圳)有限公司 | 一种生成Soc随机验证平台的方法 |
-
2017
- 2017-03-09 CN CN201710136016.9A patent/CN107016165B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515301A (zh) * | 2008-02-23 | 2009-08-26 | 炬力集成电路设计有限公司 | 一种片上系统芯片验证的方法和装置 |
CN101826050A (zh) * | 2010-02-03 | 2010-09-08 | 北京龙芯中科技术服务中心有限公司 | 一种用于制造后处理器芯片验证的随机验证方法及装置 |
CN102402430A (zh) * | 2010-09-14 | 2012-04-04 | 无锡中星微电子有限公司 | 一种利用脚本生成随机测试例方法和系统 |
CN102902834A (zh) * | 2011-07-29 | 2013-01-30 | 炬力集成电路设计有限公司 | 一种soc芯片的验证方法及系统 |
CN105844066A (zh) * | 2016-06-07 | 2016-08-10 | 无锡键桥电子科技有限公司 | 一种用于无源标签芯片的设计验证方法 |
Non-Patent Citations (4)
Title |
---|
"The top Most Common SystemVerilog Constrained Random Gotchas";Ahmed Yehia et al;《DVCON EUROPE》;20141231;第1-10页 * |
"基于SystemVerilog的SoC功能验证方法研究";程刚 等;《科学技术与工程》;20091115;第9卷(第22期);第6814-6818页 * |
"基于随机测试的SoC系统级验证方法研究";何震;《中国优秀硕士学位论文全文数据库 信息科技辑》;20041215(第12期);第I135-177页 * |
"通用SOC虚拟原型验证平台研究与设计";刘松;《中国优秀硕士学位论文全文数据库 信息科技辑》;20120415(第4期);第I135-270页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107016165A (zh) | 2017-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107016165B (zh) | 一种SoC自动化随机验证的方法 | |
Mishra et al. | Post-silicon validation in the SoC era: A tutorial introduction | |
US10289779B2 (en) | Universal verification methodology (UVM) register abstraction layer (RAL) traffic predictor | |
CN111624475B (zh) | 大规模集成电路的测试方法及系统 | |
US20140129998A1 (en) | Hierarchical equivalence checking and efficient handling of equivalence checks when engineering change orders are in an unsharable register transfer level | |
US8645897B1 (en) | Integrated circuit design verification system | |
CN110209587B (zh) | 安全芯片业务流程的测试方法及装置 | |
CN113343629B (zh) | 集成电路验证方法、代码生成方法、系统、设备和介质 | |
CN116956801B (zh) | 芯片验证方法、装置、计算机设备和存储介质 | |
CN118052196A (zh) | 基于uvm的芯片验证测试方法、装置及电子设备 | |
US20170277613A1 (en) | Multiple mode testing in a vector memory restricted test environment | |
US9057765B2 (en) | Scan compression ratio based on fault density | |
CN116933702B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
CN117291145A (zh) | 片上系统的验证方法、系统和电子装置 | |
US11295051B2 (en) | System and method for interactively controlling the course of a functional simulation | |
US7865789B2 (en) | System and method for system-on-chip interconnect verification | |
US9823305B1 (en) | Method and system for generating post-silicon validation tests | |
US10796041B1 (en) | Compacting test patterns for IJTAG test | |
Pooja et al. | Verification of interconnection IP for automobile applications using system verilog and UVM | |
Choi et al. | Test resource reused debug scheme to reduce the post-silicon debug cost | |
JP2003058597A (ja) | 論理等価性検証装置及び論理等価性検証方法 | |
CN112612659B (zh) | 一种芯片测试方法、装置、电子设备及存储介质 | |
CN117195826A (zh) | 一种芯片验证方法、装置、验证设备及存储介质 | |
Pomeranz | Improving the accuracy of defect diagnosis by adding and removing tests | |
Lee et al. | Message sequence charts for assertion-based verification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |