CN107193738A - 一种基于功能点覆盖动态调整随机约束的验证方法 - Google Patents
一种基于功能点覆盖动态调整随机约束的验证方法 Download PDFInfo
- Publication number
- CN107193738A CN107193738A CN201710359113.4A CN201710359113A CN107193738A CN 107193738 A CN107193738 A CN 107193738A CN 201710359113 A CN201710359113 A CN 201710359113A CN 107193738 A CN107193738 A CN 107193738A
- Authority
- CN
- China
- Prior art keywords
- random constraints
- dynamic
- dynamic adjustment
- function point
- verification method
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于功能点覆盖动态调整随机约束的验证方法,包括步骤:S1开始仿真,定义待验证芯片的功能覆盖点;S2,选取随机约束对所述功能覆盖点进行随机验证;S3,收集和分析动态覆盖率;S4,判断所述覆盖率是否达到要求,如果达到要求,仿真结束,否则转到S5;S5,判断是否需要调整算法,如果需要调整算法,转到步骤S6,否则转到S2;S6,变换随机约束动态调整算法,转到S2,直至覆盖率达到要求。与现有技术相比,本发明实现随机验证在功能点覆盖方面的效率提升,缩短研发周期。
Description
技术领域
本发明涉及芯片设计及芯片验证技术领域,具体地说是一种基于功能点覆盖动态调整随机约束的验证方法。
背景技术
随着工艺技术以及应用领域的不断发展,芯片的复杂度不断提高,相对应的,对于仿真验证工作的要求也在不断提高。不但需要进行仿真验证的功能点越来越繁复,而且验证周期的要求也越来越严格。
现有的芯片设计流程中,分为前端设计(逻辑设计)和后端设计(物理设计)两个阶段。前端设计主要是以通过硬件描述语言(如verilog)来实现芯片的逻辑功能,而代码描述的正确性主要就是通过对这些代码(或是由这些代码生成的网表)的仿真验证来实现的。在标准的仿真验证流程中,需要确保的前端设计涉及到的逻辑功能的功能点,都需要通过构造相应的仿真场景,证实前段设计逻辑功能的正确性。
在现有的仿真验证中,定向验证一般是基于覆盖率驱动的,既通过分析对于功能点覆盖(或者关键代码行的覆盖)的情况来构造特定的激励来进行定向验证。而随着待验证芯片的规模不断扩大,为了提高效率,缩短验证周期,更多的随机验证被引入到基于覆盖率驱动的验证中来。通过对于覆盖率情况的分析,添加不同的随机约束来构造更多的验证场景。然后,对于随机验证无法覆盖到的功能点,再构造特定的定向验证。
发明内容
为克服上述现有技术存在的不足,本发明的目的在于提供一种仿真验证效率高、减少人员投入的基于动态覆盖率统计的随机验证方法。
本发明解决其技术问题所采用的技术方案是:一种基于功能点覆盖动态调整随机约束的验证方法,其特征是:包括以下步骤:
S1,定义待测芯片的功能覆盖点;
S2,选取随机约束对所述功能覆盖点进行随机验证;
S3,收集和分析动态覆盖率;
S4,判断所述覆盖率是否达到要求,如果达到要求,验证结束,否则转到步骤S5;
S5,判断是否需要调整算法,如果需要调整算法,转到步骤S6,否则转到步骤S2;
S6,变换随机约束动态调整算法,转到步骤S2,直至覆盖率达到要求。
进一步地,验证开始之前,将所述随机约束以动态配置的方式实现。
进一步地,验证过程中还包括特定退出机制,所述特定退出机制在满足预设条件时触发。
进一步地,所述预设条件包括预设动态调整的次数或预设仿真的时间。
进一步地,所述功能覆盖点包括待测芯片的功能点和待测芯片的运行状态。
进一步地,所述功能覆盖点用断言的方式定义。
进一步地,对所述随机约束的选取按照设定的算法动态变换。
进一步地,对所述动态覆盖率的分析和收集采用读写文件的方式进行。
本发明的有益效果是:本发明通过在现有的随机验证环境中,增加对功能覆盖点覆盖信息动态搜集和分析,即增加在仿真进行过程中对覆盖率的统计,相对于在仿真结束阶段进行覆盖率统计的方式,大大地缩短了随机验证的时间,提高工作效率。
通过预先定义的动态调整算法来调整相应随机约束的,将显著地减轻定向验证在功能点覆盖上的压力,在不需要大规模增加人力的情况下缩短研发周期,节省研发投入。
附图说明
图1是本发明所述方法的流程图。
图2是加入本发明所述方法的仿真验证流程图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。本发明省略了对公知常识的描述以避免不必要地限制本发明。
本发明提供了一种基于功能点覆盖动态调整随机约束的验证方法,它包括的步骤如图1所示:
S1,开始验证,定义待验证芯片的功能覆盖点;
以断言的方式定义出关键的功能覆盖点。这里所指的关键功能覆盖点,与传统上针对待验证目标进行覆盖率统计与分析用的功能覆盖点略有不同。在不考虑时间和资源限制的情况下,本发明所述关键功能点的覆盖点,在原本针对待验证目标的功能覆盖点基础之上,加入针对整个仿真环境和待验证目标运行状态的覆盖点。
S2,选取随机约束对所述功能覆盖点进行随机验证;
S3,收集和分析动态覆盖率;
为了获得对所述随机约束以及其他参数的动态调整变换,首先需要将验证环境中的随机约束以及其它参数尽可能地用可以动态配置的方式实现。如果不考虑需要对已经进行过仿真的参数进行记录和分析,可以直接用变量的方式存取参数,动态配置这些变量就可以。否则,除了变量之外,还需要以存取log文件的方式将所有进行过仿真的参数进行记录和分析。
根据断言的覆盖情况动态地调整随机约束或者其它仿真参数配置。理想情况下,这些动态调整中途是不需要人力再去参与的。工程师只需要在仿真开始之前为这些动态调整制定和编写一套算法,然后依照仿真情况对随机约束进行自动化的调整。
所述算法按照待验证芯片的类型进行编写,算法的内容在此不做赘述,对本领域技术人员来说能够按照待验证的芯片的情况具体确定。
所述对断言的分析还包括周期性地或者以特定触发条件来扫描断言的覆盖情况。具体周期长度需要根据实际情况而定。周期太长会造成仿真时间的浪费,周期太短的话过于频繁的扫描也会降低仿真效率。在需要进行非常长时间的仿真时,可以采用自适应周期的方式进行扫描,即覆盖情况没有变化时,延迟下一次扫描的周期,反之则缩短。
对断言的满足情况进行汇总记录。由于针对待验证目标比较复杂,断言比较多,或者仿真时间比较长的情况,应采用读写文件的方式进行记录和分析。
上述对断言的分析和断言满足情况的汇总记录即对覆盖率的汇总和分析。
S4,判断所述覆盖率是否达到要求,如果达到要求,仿真结束,否则转到S5;
S5,判断是否需要调整算法,如果需要调整算法,转到步骤S6,否则转到S2;
S6,变换随机约束动态调整算法,转到步骤S2,直至覆盖率达到要求,结束仿真。
如图2所示,在加入本发明所述方法后,仿真验证过程中同时进行定向验证和动态随机验证,在完成对功能覆盖点或代码的定义之后,同时开启随机验证和定向验证,如果判断覆盖率没有达到要求,分别构造对未覆盖功能点或代码的定向激励进行进一步地定向验证和对是否需要调整算法的判断进行进一步地随机验证,两种验证同时进行,提高工作效率。
优选地,为仿真设置新的退出机制。在实际仿真验证中,由于预先制定的算法不可能是完美的,具体从功能点覆盖的角度而言,在长时间的仿真之后,肯定会出现依照预设算法无论怎么动态调整也无法提高覆盖率的情况。因此,除了通常仿真都会有的异常退出机制和正常退出机制(覆盖率满足要求的情况下触发)之外,还应设置一种退出机制,在动态调整一定次数或者一定长度的仿真时间之后,覆盖率始终无法增加的情况下触发。
以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。
Claims (8)
1.一种基于功能点覆盖动态调整随机约束的验证方法,其特征是:包括以下步骤:
S1,定义待测芯片的功能覆盖点;
S2,选取随机约束对所述功能覆盖点进行随机验证;
S3,收集和分析动态覆盖率;
S4,判断所述覆盖率是否达到要求,如果达到要求,验证结束,否则转到步骤S5;
S5,判断是否需要调整算法,如果需要调整算法,转到步骤S6,否则转到步骤S2;
S6,变换随机约束动态调整算法,转到步骤S2,直至覆盖率达到要求。
2.根据权利要求1所述的一种基于功能点覆盖动态调整随机约束的验证方法,其特征是:验证开始之前,将所述随机约束以动态配置的方式实现。
3.根据权利要求1所述的一种基于功能点覆盖动态调整随机约束的验证方法,其特征是:验证过程中还包括特定退出机制,所述特定退出机制在满足预设条件时触发。
4.根据权利要求3所述的一种基于功能点覆盖动态调整随机约束的验证方法,其特征是:所述预设条件包括预设动态调整的次数或预设仿真的时间。
5.根据权利要求1所述的一种基于功能点覆盖动态调整随机约束的验证方法,其特征是:所述功能覆盖点包括待测芯片的功能点和待测芯片的运行状态。
6.根据权利要求5所述的一种基于功能点覆盖动态调整随机约束的验证方法,其特征是:所述功能覆盖点用断言的方式定义。
7.根据权利要求1所述的一种基于功能点覆盖动态调整随机约束的验证方法,其特征是:对所述随机约束的选取按照设定的算法动态变换。
8.根据权利要求1-7任一项所述的一种基于功能点覆盖动态调整随机约束的验证方法,其特征是:对所述动态覆盖率的分析和收集采用读写文件的方式进行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710359113.4A CN107193738A (zh) | 2017-05-19 | 2017-05-19 | 一种基于功能点覆盖动态调整随机约束的验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710359113.4A CN107193738A (zh) | 2017-05-19 | 2017-05-19 | 一种基于功能点覆盖动态调整随机约束的验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107193738A true CN107193738A (zh) | 2017-09-22 |
Family
ID=59874237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710359113.4A Pending CN107193738A (zh) | 2017-05-19 | 2017-05-19 | 一种基于功能点覆盖动态调整随机约束的验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107193738A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992462A (zh) * | 2017-12-29 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 验证激励生成方法、装置、芯片验证方法及系统 |
CN111858207A (zh) * | 2020-06-30 | 2020-10-30 | 浪潮(北京)电子信息产业有限公司 | 一种SoC芯片验证测试系统及方法 |
US10831961B2 (en) | 2018-07-14 | 2020-11-10 | Synopsys, Inc. | Automated coverage convergence by correlating random variables with coverage variables sampled from simulation result data |
CN112527587A (zh) * | 2020-12-03 | 2021-03-19 | 深圳大普微电子科技有限公司 | 一种验证进度确定方法、装置、设备及可读存储介质 |
CN113297071A (zh) * | 2021-05-14 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 基于uvm功能覆盖率驱动的验证方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117238A (zh) * | 2010-01-05 | 2011-07-06 | 上海硅知识产权交易中心有限公司 | Ip核amba总线接口兼容性通用验证方法及验证平台 |
CN103309807A (zh) * | 2013-05-31 | 2013-09-18 | 中国联合网络通信集团有限公司 | 程序测试方法及平台 |
CN104461813A (zh) * | 2014-12-18 | 2015-03-25 | 浪潮集团有限公司 | 利用功能覆盖率负反馈加速uvm验证收敛的方法 |
CN105573908A (zh) * | 2015-09-01 | 2016-05-11 | 北京中电华大电子设计有限责任公司 | 一种功能验证方法和装置 |
CN105653793A (zh) * | 2015-12-29 | 2016-06-08 | 山东海量信息技术研究院 | 一种随机验证的方法及装置 |
-
2017
- 2017-05-19 CN CN201710359113.4A patent/CN107193738A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117238A (zh) * | 2010-01-05 | 2011-07-06 | 上海硅知识产权交易中心有限公司 | Ip核amba总线接口兼容性通用验证方法及验证平台 |
CN103309807A (zh) * | 2013-05-31 | 2013-09-18 | 中国联合网络通信集团有限公司 | 程序测试方法及平台 |
CN104461813A (zh) * | 2014-12-18 | 2015-03-25 | 浪潮集团有限公司 | 利用功能覆盖率负反馈加速uvm验证收敛的方法 |
CN105573908A (zh) * | 2015-09-01 | 2016-05-11 | 北京中电华大电子设计有限责任公司 | 一种功能验证方法和装置 |
CN105653793A (zh) * | 2015-12-29 | 2016-06-08 | 山东海量信息技术研究院 | 一种随机验证的方法及装置 |
Non-Patent Citations (4)
Title |
---|
吴星星: "基于UVM的SPI接口IP核的验证平台设计", 《中国优秀硕士学位论文全文数据库(信息科学辑)》 * |
夏欢: "基于APB的UART IP核设计与UVM 验证", 《中国优秀硕士学位论文全文数据库(信息科学辑)》 * |
张娜等: "多目标优化的测试用例优先级在线调整策略", 《软件学报》 * |
田茂源: "基于UVM的AMBA协议转换桥验证实现", 《中国优秀硕士学位论文全文数据库(信息科学辑)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992462A (zh) * | 2017-12-29 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 验证激励生成方法、装置、芯片验证方法及系统 |
US10831961B2 (en) | 2018-07-14 | 2020-11-10 | Synopsys, Inc. | Automated coverage convergence by correlating random variables with coverage variables sampled from simulation result data |
CN111858207A (zh) * | 2020-06-30 | 2020-10-30 | 浪潮(北京)电子信息产业有限公司 | 一种SoC芯片验证测试系统及方法 |
CN111858207B (zh) * | 2020-06-30 | 2022-03-22 | 浪潮(北京)电子信息产业有限公司 | 一种SoC芯片验证测试系统及方法 |
CN112527587A (zh) * | 2020-12-03 | 2021-03-19 | 深圳大普微电子科技有限公司 | 一种验证进度确定方法、装置、设备及可读存储介质 |
CN113297071A (zh) * | 2021-05-14 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 基于uvm功能覆盖率驱动的验证方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107193738A (zh) | 一种基于功能点覆盖动态调整随机约束的验证方法 | |
US6742166B2 (en) | System and method for evaluating functional coverage linked to a verification test plan | |
US7512839B2 (en) | Methods, systems, and media for generating a regression suite database | |
US7644398B2 (en) | System and method for automatic test-case generation for software | |
CN109117518B (zh) | 一种寄存器读写访问验证系统及方法 | |
CN104408264B (zh) | 一种基于断言的嵌入式存储控制器验证系统及方法 | |
US8683282B2 (en) | Automatic identification of information useful for generation-based functional verification | |
US8280713B2 (en) | Automatic generation of test suite for processor architecture compliance | |
CN100416575C (zh) | 用于集成电路设计的验证系统和方法 | |
US8271252B2 (en) | Automatic verification of device models | |
US20090282307A1 (en) | Optimizing test code generation for verification environment | |
CN100405323C (zh) | 一种在指令级随机测试中支持ejtag测试的实现方法 | |
CN111221693A (zh) | 一种NOR flash配置模块验证方法、系统、装置和存储介质 | |
CN102096628A (zh) | 基于vmm验证方法学的mcu验证平台实现方法 | |
CN109299530A (zh) | 一种仿真测试案例生成方法、系统、存储介质和终端 | |
CN105868626A (zh) | 基于控制流粗粒度完整性的监控软件业务行为的方法 | |
CN110515755A (zh) | 接口功能验证方法、装置、设备及计算机可读存储介质 | |
US9135382B1 (en) | Systems, methods, and media for assertion-based verification of devices | |
CN110688269B (zh) | 采用axi总线接口的rtl代码自动化验证装置及方法 | |
US10592623B2 (en) | Assertion statement check and debug | |
CN107515806A (zh) | 一种sas信号参数在线调试的方法与装置 | |
Khan et al. | From Spec to Verification Closure: a case study of applying UVM-MS for first pass success to a complex Mixed-Signal SoC design | |
US20200074040A1 (en) | Hierarchical expression coverage clustering for design verification | |
CN109299592A (zh) | 人机行为特征边界构建方法、系统、服务器及存储介质 | |
US20020188432A1 (en) | Circuit model generation and circuit model testing |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170922 |