CN104392066A - 一种基于SystemVerilog的随机验证平台和方法 - Google Patents
一种基于SystemVerilog的随机验证平台和方法 Download PDFInfo
- Publication number
- CN104392066A CN104392066A CN201410755449.9A CN201410755449A CN104392066A CN 104392066 A CN104392066 A CN 104392066A CN 201410755449 A CN201410755449 A CN 201410755449A CN 104392066 A CN104392066 A CN 104392066A
- Authority
- CN
- China
- Prior art keywords
- module
- test
- systemverilog
- dut
- validation platform
- 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
Abstract
本发明公开基于SystemVerilog的随机验证平台,涉及芯片设计领域,包括Test、Generator、Driver、DUT、GoldenReference、Scoreboard、Coverage以及Environment等模块;其中Test模块实例化environment来开始测试,Generator模块产生所有测试激励,Driver模块接收测试激励并驱动到DUT及GoldenReference,Scoreboard模块判断DUT模块功能的正确性,Coverage模块统计测试的覆盖率。该随机验证方法实现了对芯片间接口的控制和监测,提高了验证环境的通用性,大幅提高验证的效率。
Description
技术领域
本发明涉及芯片设计领域,具体地说是一种基于SystemVerilog的随机验证平台和方法。
背景技术
随机测试可以应用在任何类型的设计中,特别是在设计具有比较大的测试空间或者数量较多的交互情景。通过采用随机测试可以击中一些期望的功能点是很重要的一个功能,因为验证工程师未必都可以罗列出所有的功能点。随机测试可以创建一些异常并发或者异步的事件,从而测试设计中的某些独特、复杂的行为。
在使用随机产生的测试激励验证测试对象的功能点过程中,记录每个测试激励在运行前后所述测试对象的功能点的覆盖率,将使得覆盖率发生变化的测试激励保存到预先设置的有效激励信息中;复杂的芯片设计要求激励产生能够自动化,可以是确定的也可以是随机的。确定测试用例用来检验特定的功能或者参数。随机激励可以用来检查不同的功能覆盖点和减少测试用例的开发,但是它增加了验证平台的复杂性。
SystemVerilog简称为SV语言,建立在Verilog语言的基础上,成为下一代硬件设计和验证的语言。SystemVerilog结合了来自 Verilog、VHDL、C++的概念,还有验证平台语言和断言语言,也就是说,它将硬件描述语言(HDL)与现代的高层级验证语言(HVL)结合了起来。SystemVerilog主要定位在芯片的实现和验证流程上。SystemVerilog(SV)拥有芯片设计及验证工程师所需的全部结构,它集成了面向对象编程、动态线程和线程间通信等特性,作为一种工业标准语言,SV全面综合了RTL设计、测试平台、断言和覆盖率,为系统级的设计及验证提供强大的支持作用。
Systemverilog除了作为一种高层次,能进行抽象建模的语言被应用外,它的另一个显著特点是能够和芯片验证方法学结合在一起,即作为实现方法学的一种语言工具。使用验证方法学可以大大增强模块复用性、提高芯片开发效率,缩短开发周期。可见,SystemVerilog语言包含了设计、验证、断言和其他方面的很多特性。
发明内容
本方明针对现有技术存在的技术问题,提供一种基于SystemVerilog的随机验证平台和方法。
本发明所述一种基于SystemVerilog的随机验证平台和方法,解决所述技术问题采用的技术方案如下:所述随机验证平台包括Test 模块、Generator模块、Driver模块、DUT模块、Golden Reference模块、Scoreboard模块、Coverage模块以及Environment模块;
其中,所述Test 模块用于实例化environment来开始测试;在Test 模块中可以设置很多选项的默认值,包括dcb_arb_priority(仿真对应PRIORITY),dcb_dir_any(仿真对应DIR),flush_dcb_bank(仿真对应FLUSH),Initialization(仿真对应INI);
所述Generator模块:该模块产生所有测试激励,并将测试激励传送给Driver模块;所述Driver模块:该模块接收generator模块的测试激励,并驱动到DUT及Golden Reference两模块;所述Scoreboard模块:该模块检查DUT模块与Golden Reference模块得到的输出结果是否一致,从而判断DUT模块功能的正确性;所述Coverage模块:即Functional Coverage,该模块用来统计测试的覆盖率;所述Environment模块:该模块为以上模块的parent模块,即在Environment模块中来实例化以上模块。
通过本发明所述基于SystemVerilog的随机验证方法,在Test模块中实施化environment来开始测试,同时可以设置多项默认值,通过Generator模块产生所有测试激励,并将它们传送给Driver模块,Driver模块接收测试激励并驱动到DUT及Golden Reference两模块;然后Scoreboard模块检查DUT与Golden Reference得到的输出结果是否一致,从而判断DUT功能的正确性,最后通过Functional Coverage模块来统计测试的覆盖率。
本发明的一种基于SystemVerilog的随机验证平台和方法与现有技术相比具有的有益效果是:本发明用抽象化程度更高和更易于建模的SystemVerilog语言为基础,实现了对芯片间接口的控制和监测,满足了大规模芯片的仿真验证需求;此外,SystemVerilog基于函数和类的操作方式为根据具体需求添加更加细化的配置和操作留下了丰富的可扩展性;
该随机验证平台的价值在于方便测试激励的输出,显著提高了验证环境的通用性,可以找出定向验证很难发现的bug,方便了错误的检查,可以大幅提高验证的效率,因此在大规模芯片的验证过程中具有很高的技术价值。
附图说明
附图1为所述基于SystemVerilog的随机验证平台的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参考附图,对本发明所述一种基于SystemVerilog的随机验证平台和方法进一步详细说明。
本发明所述一种基于SystemVerilog的随机验证平台,使用SystemVerilog搭建的随机约束验证平台,可有效的允许单一的测试来检查多个功能点,而不是写入测试来独立地检查每一个功能点。有了这个方法,每个测试实际上就要描述一系列可能发生的事件,该基于SystemVerilog的随机验证平台和方法是一个更为有力的验证方法。
实施例1:
本实施例所述基于SystemVerilog的随机验证平台,如附图1所示,所述随机验证平台包括Test 模块、Generator模块、Driver模块、DUT模块、Golden Reference模块、Scoreboard模块、Coverage模块以及Environment模块;
其中,所述Test 模块用于实例化environment来开始测试;在Test 模块中可以设置很多选项的默认值,包括dcb_arb_priority(仿真对应PRIORITY),dcb_dir_any(仿真对应DIR),flush_dcb_bank(仿真对应FLUSH),Initialization(仿真对应INI);
所述Generator模块:该模块产生所有测试激励,并将测试激励传送给Driver模块;所述Driver模块:该模块接收generator模块的测试激励,并驱动到DUT及Golden Reference两模块;所述Scoreboard模块:该模块检查DUT模块与Golden Reference模块得到的输出结果是否一致,从而判断DUT模块功能的正确性;所述Coverage模块:即Functional Coverage,该模块用来统计测试的覆盖率;所述Environment模块:该模块为以上模块的parent模块,即在Environment模块中来实例化以上模块。
本实施例所述随机验证平台,提出了一种基于SystemVerilog的随机验证方法,通过该随机验证方法,在Test模块中实施化environment来开始测试,同时可以设置多项默认值,通过Generator模块产生所有测试激励,并将它们传送给Driver模块,Driver模块接收测试激励并驱动到DUT及Golden Reference两模块;然后Scoreboard模块检查DUT与Golden Reference得到的输出结果是否一致,从而判断DUT功能的正确性,最后通过Functional Coverage模块来统计测试的覆盖率。
从本实施例的技术方案可知,本发明所述基于SystemVerilog的随机验证平台,用抽象化程度更高和更易于建模的SystemVerilog语言为基础,实现了对芯片间接口的控制和监测,满足了大规模芯片的仿真验证需求,此外,SystemVerilog基于函数和类的操作方式为根据具体需求添加更加细化的配置和操作留下了丰富的可扩展性。
实施例2:
本实施例所述基于SystemVerilog的随机验证平台,在实施例1的基础上,所述Generator模块还包括Config和Packet两模块,其中,所述Config模块:即Configuration,能够按照配置要求随机产生配置数据;所述Packet模块:随机产生待测设计的输入,地址的值可以重复之前的地址,也可以等于之前的地址的前一地址,也可以等于之前的地址的后一地址,也可以等于其他随机值;Packet模块还会随机产生Golden Reference模块的输入。
本实施例2中,所述Driver模块接收generator模块的测试激励,并驱动到DUT及Golden Reference两模块;通过Packet模块中提供的wait_cycles可以将输入激励的发送间隔随机化,使激励的发送频率更接近真实;也可将发送间隔设置为一个时钟,这样就是验证平台的Worst case;
本实施例2所述基于SystemVerilog的随机验证平台,还包括Monitor模块,该模块的功能合并到Scoreboard模块,该模块用于验证随机验证平台的扩展。
实施例1和实施例2所述基于SystemVerilog的随机验证平台中,对DUT模块的验证基于约束的随机测试,即constrained random tests(CRT)。因为相比直接测试directed test,CRT具有以下优点:第一,方便测试激励的输出,省去了手动输入测试激励,这对于验证频繁改变DUT的输入大大地提高了效率;第二,可以找出定向验证很难发现的bug;第三,方便了错误的检查;第四,可以大幅提高验证的效率。
本发明所述基于基于SystemVerilog的随机验证平台中,将以下激励的约束进行了随机化:第一,DUT模块的配置:对待测设计配置的随机化是最重要的,必须保证在各种配置下芯片都能正常工作;第二,激励的输入间隔:防止激励一成不变地按照一定间隔输入到待测设计中,随机化的输入间隔可以更好的帮助发现问题;第三,激励的变化:为了更全面的验证,必须使输入的激励涵盖所有的输入合理值的范围。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
Claims (7)
1.一种基于SystemVerilog的随机验证平台,其特征在于,所述随机验证平台包括Test 模块、Generator模块、Driver模块、DUT模块、Golden Reference模块、Scoreboard模块、Coverage模块以及Environment模块;
其中,所述Test 模块用于实例化environment来开始测试;所述Generator模块:产生所有测试激励,并将测试激励传送给Driver模块;所述Driver模块:接收generator模块的测试激励,并驱动到DUT及Golden Reference两模块;所述Scoreboard模块:检查DUT模块与Golden Reference模块得到的输出结果是否一致,从而判断DUT模块功能的正确性;所述Coverage模块:即Functional Coverage,用来统计测试的覆盖率;所述Environment模块:为以上模块的parent模块,即在Environment模块中来实例化以上模块。
2.根据权利要求1所述一种基于SystemVerilog的随机验证平台,其特征在于,在Test 模块中能够设置多个选项的默认值,包括dcb_arb_priority(仿真对应PRIORITY),dcb_dir_any(仿真对应DIR),flush_dcb_bank(仿真对应FLUSH),Initialization(仿真对应INI)。
3.根据权利要求1所述一种基于SystemVerilog的随机验证平台,其特征在于,所述Generator模块包括Config和Packet两模块,其中,所述Config模块:即Configuration,能够按照配置要求随机产生配置数据;所述Packet模块:随机产生待测设计的输入,地址的值可以重复之前的地址,或者等于之前的地址的前一地址,或者等于之前的地址的后一地址,或者等于其他随机值。
4.根据权利要求3所述一种基于SystemVerilog的随机验证平台,其特征在于,通过Packet模块中提供的wait_cycles能够将输入激励的发送间隔随机化,且Packet模块还能够随机产生Golden Reference模块的输入。
5.根据权利要求1至4任一所述一种基于SystemVerilog的随机验证平台,其特征在于,还包括Monitor模块,该模块的功能合并到Scoreboard模块,用于验证随机验证平台的扩展。
6.根据权利要求5所述一种基于SystemVerilog的随机验证平台,其特征在于,对所述DUT模块的验证基于约束的随机测试。
7.一种基于SystemVerilog的随机验证方法,其特征在于,在Test模块中实施化environment来开始测试,同时可以设置多项默认值,通过Generator模块产生所有测试激励,并将它们传送给Driver模块,Driver模块接收测试激励并驱动到DUT及Golden Reference两模块;然后Scoreboard模块检查DUT与Golden Reference得到的输出结果是否一致,从而判断DUT功能的正确性,最后通过Functional Coverage模块来统计测试的覆盖率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410755449.9A CN104392066A (zh) | 2014-12-11 | 2014-12-11 | 一种基于SystemVerilog的随机验证平台和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410755449.9A CN104392066A (zh) | 2014-12-11 | 2014-12-11 | 一种基于SystemVerilog的随机验证平台和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104392066A true CN104392066A (zh) | 2015-03-04 |
Family
ID=52609969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410755449.9A Pending CN104392066A (zh) | 2014-12-11 | 2014-12-11 | 一种基于SystemVerilog的随机验证平台和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104392066A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105160124A (zh) * | 2015-09-23 | 2015-12-16 | 烽火通信科技股份有限公司 | 光传送网开销仿真系统及仿真方法 |
CN106503308A (zh) * | 2016-10-08 | 2017-03-15 | 中国电子科技集团公司第五十八研究所 | 一种基于uvm的can控制器ip验证平台 |
CN106502900A (zh) * | 2016-10-24 | 2017-03-15 | 上海华力微电子有限公司 | 一种基于systemverilog的AHB核随机验证方法 |
CN106708687A (zh) * | 2015-11-12 | 2017-05-24 | 青岛海信电器股份有限公司 | 一种基于可执行文件的芯片验证方法和装置 |
CN107124241A (zh) * | 2017-05-05 | 2017-09-01 | 烽火通信科技股份有限公司 | 一种用于OTN中Ieee1588模块仿真的系统及方法 |
CN107451026A (zh) * | 2017-07-27 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种基于sv语言的串口通用验证平台及方法 |
CN109710516A (zh) * | 2018-12-13 | 2019-05-03 | 中科曙光信息产业成都有限公司 | 芯片验证系统及方法 |
CN109992462A (zh) * | 2017-12-29 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 验证激励生成方法、装置、芯片验证方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096628A (zh) * | 2009-12-15 | 2011-06-15 | 上海华虹集成电路有限责任公司 | 基于vmm验证方法学的mcu验证平台实现方法 |
CN102902834A (zh) * | 2011-07-29 | 2013-01-30 | 炬力集成电路设计有限公司 | 一种soc芯片的验证方法及系统 |
-
2014
- 2014-12-11 CN CN201410755449.9A patent/CN104392066A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096628A (zh) * | 2009-12-15 | 2011-06-15 | 上海华虹集成电路有限责任公司 | 基于vmm验证方法学的mcu验证平台实现方法 |
CN102902834A (zh) * | 2011-07-29 | 2013-01-30 | 炬力集成电路设计有限公司 | 一种soc芯片的验证方法及系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105160124A (zh) * | 2015-09-23 | 2015-12-16 | 烽火通信科技股份有限公司 | 光传送网开销仿真系统及仿真方法 |
CN105160124B (zh) * | 2015-09-23 | 2018-04-20 | 烽火通信科技股份有限公司 | 光传送网开销仿真系统及仿真方法 |
CN106708687A (zh) * | 2015-11-12 | 2017-05-24 | 青岛海信电器股份有限公司 | 一种基于可执行文件的芯片验证方法和装置 |
CN106708687B (zh) * | 2015-11-12 | 2020-03-17 | 青岛海信电器股份有限公司 | 一种基于可执行文件的芯片验证方法和装置 |
CN106503308A (zh) * | 2016-10-08 | 2017-03-15 | 中国电子科技集团公司第五十八研究所 | 一种基于uvm的can控制器ip验证平台 |
CN106503308B (zh) * | 2016-10-08 | 2019-03-19 | 中国电子科技集团公司第五十八研究所 | 一种基于uvm的can控制器ip验证平台 |
CN106502900A (zh) * | 2016-10-24 | 2017-03-15 | 上海华力微电子有限公司 | 一种基于systemverilog的AHB核随机验证方法 |
CN106502900B (zh) * | 2016-10-24 | 2019-06-28 | 上海华力微电子有限公司 | 一种基于systemverilog的AHB核随机验证方法 |
CN107124241A (zh) * | 2017-05-05 | 2017-09-01 | 烽火通信科技股份有限公司 | 一种用于OTN中Ieee1588模块仿真的系统及方法 |
CN107124241B (zh) * | 2017-05-05 | 2019-02-26 | 烽火通信科技股份有限公司 | 一种用于OTN中Ieee1588模块仿真的系统及方法 |
CN107451026A (zh) * | 2017-07-27 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种基于sv语言的串口通用验证平台及方法 |
CN109992462A (zh) * | 2017-12-29 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 验证激励生成方法、装置、芯片验证方法及系统 |
CN109710516A (zh) * | 2018-12-13 | 2019-05-03 | 中科曙光信息产业成都有限公司 | 芯片验证系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104392066A (zh) | 一种基于SystemVerilog的随机验证平台和方法 | |
CN110618929B (zh) | 一种基于uvm的对称加密算法的验证平台和验证方法 | |
CN109684681B (zh) | 应用uvm验证平台的高层次化验证方法 | |
US20170337309A1 (en) | Target Capture And Replay In Emulation | |
CN102135920B (zh) | 嵌入式星载计算机故障注入系统及其注入方法 | |
US20090150839A1 (en) | Integrated prototyping system for validating an electronic system design | |
CN101499937A (zh) | 一种基于fpga的软硬件协同仿真验证系统及方法 | |
US6886145B2 (en) | Reducing verification time for integrated circuit design including scan circuits | |
US9188638B2 (en) | Functional testing of an integrated circuit chip | |
CN111339731B (zh) | 一种面向SoC的FPGA验证平台和验证方法 | |
CN113297017A (zh) | 一种基于uvm的soc验证系统及方法 | |
US9140753B2 (en) | Monitoring functional testing of an integrated circuit chip | |
Bartley et al. | A comparison of three verification techniques: directed testing, pseudo-random testing and property checking | |
CN114325333A (zh) | 一种高效率规范化的soc系统级验证方法及装置 | |
CN109726061A (zh) | 一种SoC芯片的验证方法 | |
US20020163351A1 (en) | Method for producing test patterns for testing an integrated circuit | |
CN201522707U (zh) | 基于fpga的软硬件协同仿真验证系统 | |
US8095331B2 (en) | Transaction based verification of a system on chip on system level by translating transactions into machine code | |
US8645897B1 (en) | Integrated circuit design verification system | |
Neishaburi et al. | Enabling efficient post-silicon debug by clustering of hardware-assertions | |
CN116894411A (zh) | 带dma接口的spi模块验证平台和方法 | |
Huang et al. | Distributed dynamic partitioning based diagnosis of scan chain | |
CN101916305A (zh) | 一种复杂管脚芯片的验证方法 | |
US9581643B1 (en) | Methods and circuits for testing partial circuit designs | |
Yadu et al. | Block Level SoC Verification Using Systemverilog |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150304 |