CN114090423A - 一种芯片验证自动化控制方法 - Google Patents
一种芯片验证自动化控制方法 Download PDFInfo
- Publication number
- CN114090423A CN114090423A CN202111189828.2A CN202111189828A CN114090423A CN 114090423 A CN114090423 A CN 114090423A CN 202111189828 A CN202111189828 A CN 202111189828A CN 114090423 A CN114090423 A CN 114090423A
- Authority
- CN
- China
- Prior art keywords
- simulation
- stage
- hardware
- control method
- automatic control
- 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
Images
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/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3652—Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
-
- 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
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及芯片验证技术领域,尤其涉及一种芯片验证自动化控制方法,该方法基于uvm phase机制控制,包括建立、连接、复位、配置、运行、关断、检查、退出阶段。本发明在仿真启动后,能够根据设定的参数自动控制仿真平台重复运行,直至将预期的场景遍历完后,仿真才退出,极大的提高了芯片的仿真效率和验证工作的价值。
Description
技术领域
本发明涉及芯片验证技术领域,尤其涉及一种芯片验证自动化控制方法。
背景技术
随着芯片设计复杂度的提升,验证工作面临着越来越大的挑战。作为独立于设计的工种,在设计人员完成代码的初步开发后,验证人员需要在仿真平台上对设计进行代码级的测试。测试的内容主要在功能和性能两部分,功能是芯片要做什么,性能是芯片跑多快。功能测试需要验证人员根据芯片规格编写测试pattern通过仿真观察芯片运行是否符合预期。性能测试需要评估系统处理激励消耗的时间,需要根据芯片工作主频、模块设计时序进行初步评估,实际性能与综合结果、后端工艺实现均有关联。从前仿的角度看,验证人员需要根据方案划分来对不同层面的验证需求进行分解,通过仿真以确认芯片工作正常。
那么如何保证验证的完备性呢?验证工程师会制定一份验证计划来指导验证进程,典型做法如下:
(1)编写定向测试用例,通过特定的配置和激励,测试设计能否实现预期的功能。这种方式单条用例的场景比较单一,需要维护大量的测试条目,且容易遗漏feature。
(2)对配置和场景进行随机化处理,通过配置和激励的随机组合,模拟不同的测试场景。这种方式在面对复杂的设计时,由于场景比较多,容易漏测并造成仿真资源的浪费。
(3)分析coverage以补充测试场景。这种方式的缺点是可能会漏测某些功能,因为代码上的覆盖并不能保证功能上的覆盖。
(4)编写参考模型。目的是与RTL处理结果进行自动化比对,提高问题定位效率;
从上面的分析可以看出,在芯片开发周期比较紧张的情况下,面对复杂的设计,验证工程师除了制定一份完备的验证计划,也需要搭建一个高效的仿真平台,来相对快速的遍历测试场景。验证平台的搭建本身并无标准,主要结合项目需求进行开发,如下几种:
(1)使用verilog/sv语言编写,进行简单测试,激励比较简单,多用于开发人员自测;
(2)基于specman e语言。作为一种面向对象的开发语言,e语言可以在行为级对激励,行为进行描述,灵活性比较好;
(3)基于sv编写的vmm/uvm框架。考虑到sv同时作为代码开发和验证的工作语言,可以提高开发和验证的沟通效率,且框架提供了一系列的仿真库,可以加速验证平台的开发,这一方式已成为业界主流。
从实际来看,越来越多的项目在采用基于uvm框架搭建验证平台,那么如何加速仿真进程呢?依靠服务器性能的提升固然可以缩短仿真时间,但这会引入额外的项目成本。
发明内容
本发明提供了一种芯片验证自动化控制方法,在仿真启动后,能够根据设定的参数自动控制仿真平台重复运行,直至将预期的场景遍历完后,仿真才退出,极大的提高了芯片的仿真效率和验证工作的价值。
为了实现本发明的目的,一种芯片验证自动化控制方法,包括如下步骤:
1)基于uvm建立一个仿真平台组件的树形结构,树形结构的根节点由uvm控制,根节点通过实例化一个继承自uvm_test的类产生,一般为用例名。在用例类中,例化平台的env/agent等组件;
2)建立阶段进行仿真组件的实例化,根据指定的例化名来生成各个组件,并通过parent参数指定父节点;同时建立covergroup,对待监控的场景配置进行建仓,指定需要监控的触发场景;
3)连接阶段将各个组件连接起来;
4)复位阶段将硬件复位,所有触发器回到初始状态,对待测配置进行随机处理,随机值由仿真器随机得到;
5)在配置阶段,对硬件进行配置,并将步骤4)随机处理后的结果同步配置到平台;
6)在运行阶段,硬件接收输入激励,相应的监控同时实时监测硬件运行的正确性;
7)在main阶段发送激励,通过行为对比,而在此之前会对硬件进行相应的配置;
8)在关断阶段运行covergroup的采样,如果未达到目标,则跳转到步骤4),执行下一轮仿真,否则跳转到步骤9);
9)在检查阶段检查硬件退出仿真后的状态。
作为本发明的优化方案,在步骤2)中还完成接口和配置参数的传递,指定待测配置的随机范围。
作为本发明的优化方案,在步骤3)中,组件连接包括接口连接和组件互联。
作为本发明的优化方案,在步骤4)中,test case中的随机类进行随机化得到测试的一组随机值,随机值方式为SV自带的randomize函数。
作为本发明的优化方案,在步骤6)中,监控包括参考模型和断言。
作为本发明的优化方案,在步骤9)中,硬件退出仿真后的状态包括统计状态、FIFO状态或状态机。
作为本发明的优化方案,运行阶段与复位阶段、配置阶段、main阶段、关断阶段4个子阶段并行执行。
本发明具有积极的效果:1)相对定向测试,uvm的phase跳转可以在一条测试用例中覆盖多种模式,避免重复的编写测试用例,提高单条用例的覆盖范围,降低维护成本;
2)本发明相对全随机测试,通过sv的randomize函数能够对变量式范围进行模糊指定,如inside可以在范围内随机,dist可以进行带权重随机,避免无意义的重复,能够更快的触发期望的测试场景;
3)本发明相对单次仿真模式,能够通过重复仿真增加对待测配置的遍历,可以在无人工干预下由仿真器自行对待测模式进行遍历,提高仿真效率;
4)本发明相对代码覆盖率,功能覆盖率covergroup侧重从功能角度对场景进行监控,更贴近实际使用;
5)本发明对芯片验证过程中的定向测试方式进行了改进,又避免了全随机模式对仿真资源造成的浪费,提高了仿真效率,加快仿真的收敛。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明的流程图。
具体实施方式
下面结合附图对本发明的实现做进一步详细的描述:。
如图1所示,一种芯片验证自动化控制方法,包括如下步骤
1)基于uvm建立一个仿真平台组件的树形结构,树形结构的根节点由uvm控制,根节点通过实例化一个继承自uvm_test的类产生,一般为用例名。在用例类中,例化平台的env/agent等组件;
2)建立阶段进行仿真组件的实例化,根据指定的例化名来生成各个组件,并通过parent参数指定父节点;同时建立covergroup,对待监控的场景配置进行建仓;
3)连接阶段将各个组件连接起来;
4)复位阶段将硬件复位,所有触发器回到初始状态,对待测配置进行随机处理,随机值由仿真器随机得到;
5)在配置阶段,对硬件进行相应的配置,并将步骤4)随机处理后的结果同步配置到平台;
6)在运行阶段,硬件接收输入激励,相应的监控同时实时监测硬件运行的正确性;
7)在main运行阶段发送激励,通过行为对比,而在此之前会对硬件进行相应的配置;仿真阶段分为复位、配置、main、关断4个部分;
8)在关断阶段运行covergroup的采样,如果未达到目标(覆盖率未达到100%),则跳转到步骤4),执行下一轮仿真,否则跳转到步骤9);
9)在检查阶段检查硬件退出仿真后的状态
芯片验证自动化控制方法整个进程基于uvm phase机制控制,各个阶段如图1所示。
在步骤2)中还完成接口和配置参数的传递,指定待测配置的随机范围。tese case中初始化covergroup(功能覆盖率),指定covergroup的采样区间及交叉覆盖率等。
在步骤3)中,组件连接包括接口连接和组件互联。
在步骤4)中,test case中的随机类进行随机化得到测试的一组随机值,随机值方式为SV自带的randomize函数。同时,数字电路中的基本存储单元如触发器/RAM在复位阶段均回到默认值,以提供一个初始化环境。
在步骤6)中,监控包括参考模型和断言。使用断言可以创建更稳定、品质更好且不易于出错的代码。
在步骤7)中,在main阶段发送激励,通过行为对比,测试相应的配置下能否对输入激励进行正确处理;通过参考模型和断言会对运行过程进行监控,error会打印到log中,方便问题定位。
在关断阶段同时会打印出覆盖率数据和重复次数,能够对仿真进度有一个量化。
在步骤9)中,硬件退出仿真后的状态包括统计状态、FIFO状态或状态机,如果发现异常,会打印出来方便后续侦错。
所有步骤结束后退出仿真,报告仿真资源的消耗和时间等信息。
运行阶段与复位阶段、配置阶段、main阶段、关断阶段4个子阶段并行执行。
以上所述实施例仅表达了本发明的实施方式,其描述较为具体和详细,并不能因此而理解为对本发明专利范围的限制。应当指出的是,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (7)
1.一种芯片验证自动化控制方法,其特征在于:包括如下步骤:
1)基于uvm建立一个仿真平台组件的树形结构,树形结构的根节点由uvm控制,根节点通过实例化一个继承自uvm_test的类产生;
2)建立阶段进行仿真组件的实例化,根据指定的例化名来生成各个组件,并通过parent参数指定父节点;同时建立covergroup,对待监控的场景配置进行建仓;
3)连接阶段将各个组件连接起来;
4)复位阶段将硬件复位,所有触发器回到初始状态,对待测配置进行随机处理,随机值由仿真器随机得到;
5)在配置阶段,对硬件进行配置,并将步骤4)随机处理后的结果同步配置到平台;
6)在运行阶段,硬件接收输入激励,相应的监控同时实时监测硬件运行的正确性;
7)在main阶段发送激励,通过行为对比,而在此之前会对硬件进行相应的配置;
8)在关断阶段运行covergroup的采样,如果未达到目标,则跳转到步骤4),执行下一轮仿真,否则跳转到步骤9);
9)在检查阶段检查硬件退出仿真后的状态。
2.根据权利要求1所述的一种芯片验证自动化控制方法,其特征在于:在步骤2)中还完成接口和配置参数的传递,指定待测配置的随机范围。
3.根据权利要求2所述的一种芯片验证自动化控制方法,其特征在于:在步骤3)中,组件连接包括接口连接和组件互联。
4.根据权利要求3所述的一种芯片验证自动化控制方法,其特征在于:在步骤4)中,test case中的随机类进行随机化得到测试的一组随机值,随机值方式为SV自带的randomize函数。
5.根据权利要求4所述的一种芯片验证自动化控制方法,其特征在于:在步骤6)中,监控包括参考模型和断言。
6.根据权利要求5所述的一种芯片验证自动化控制方法,其特征在于:在步骤9)中,硬件退出仿真后的状态包括统计状态、FIFO状态或状态机。
7.根据权利要求1-6任一项所述的一种芯片验证自动化控制方法,其特征在于:运行阶段与复位阶段、配置阶段、main阶段、关断阶段4个子阶段并行执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111189828.2A CN114090423A (zh) | 2021-10-11 | 2021-10-11 | 一种芯片验证自动化控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111189828.2A CN114090423A (zh) | 2021-10-11 | 2021-10-11 | 一种芯片验证自动化控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090423A true CN114090423A (zh) | 2022-02-25 |
Family
ID=80296733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111189828.2A Pending CN114090423A (zh) | 2021-10-11 | 2021-10-11 | 一种芯片验证自动化控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090423A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116227395A (zh) * | 2022-12-26 | 2023-06-06 | 爱芯元智半导体(上海)有限公司 | 数字芯片的仿真测试方法、装置及电子设备 |
CN117290254A (zh) * | 2023-11-24 | 2023-12-26 | 沐曦集成电路(南京)有限公司 | 一种基于组件自动化的芯片验证方法 |
-
2021
- 2021-10-11 CN CN202111189828.2A patent/CN114090423A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116227395A (zh) * | 2022-12-26 | 2023-06-06 | 爱芯元智半导体(上海)有限公司 | 数字芯片的仿真测试方法、装置及电子设备 |
CN116227395B (zh) * | 2022-12-26 | 2023-09-29 | 爱芯元智半导体(上海)有限公司 | 数字芯片的仿真测试方法、装置及电子设备 |
CN117290254A (zh) * | 2023-11-24 | 2023-12-26 | 沐曦集成电路(南京)有限公司 | 一种基于组件自动化的芯片验证方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
US8572437B2 (en) | Multi-platform test automation enhancement | |
US8402438B1 (en) | Method and system for generating verification information and tests for software | |
US8666721B2 (en) | Resource remapping in a hardware emulation environment | |
US20130060507A1 (en) | Application testing | |
CN103235756A (zh) | 一种面向嵌入式系统分区应用程序软件的仿真测试方法 | |
CN114090423A (zh) | 一种芯片验证自动化控制方法 | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
CN104461810A (zh) | 一种提高嵌入式处理器功能验证效率的方法 | |
US20090248390A1 (en) | Trace debugging in a hardware emulation environment | |
CN111859834B (zh) | 一种基于uvm的验证平台开发方法、系统、终端及存储介质 | |
CN116956790A (zh) | 一种仿真验证方法、装置、设备及介质 | |
CN113094235B (zh) | 一种尾延迟异常云审计系统及方法 | |
CN114676053A (zh) | 一种硬件设备的自动化分析方法及装置 | |
Pooley et al. | CPASA: Continuous performance assessment of software architecture | |
Júnior et al. | Preserving the exception handling design rules in software product line context: A practical approach | |
CN111309297A (zh) | 脚本开发系统及方法 | |
Wang et al. | Model-based simulation testing for embedded software | |
Jägemar | Utilizing hardware monitoring to improve the performance of industrial systems | |
Coyne et al. | A methodology for unit testing actors in proprietary discrete event based simulations | |
Sastry et al. | TESTING DISTRIBUTED EMBEDDED SYSTEMS THROUGH INSTRUCTION SET SIMULATORS | |
CN116451620A (zh) | 芯片验证系统及方法 | |
CN116090387A (zh) | 芯片设计的仿真验证方法、装置、计算机设备及存储介质 | |
KR920002484B1 (ko) | 전자교환기 시험환경 시스팀 | |
CN113282517A (zh) | 一种智能合约代码的质量评估系统 |
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 |