CN109492269A - 一种基于uvm的数字引信定时电路验证平台 - Google Patents
一种基于uvm的数字引信定时电路验证平台 Download PDFInfo
- Publication number
- CN109492269A CN109492269A CN201811228196.4A CN201811228196A CN109492269A CN 109492269 A CN109492269 A CN 109492269A CN 201811228196 A CN201811228196 A CN 201811228196A CN 109492269 A CN109492269 A CN 109492269A
- Authority
- CN
- China
- Prior art keywords
- module
- dut
- uvm
- output
- verification 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.)
- Granted
Links
- 238000012795 verification Methods 0.000 title claims abstract description 80
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000013461 design Methods 0.000 claims abstract description 36
- 230000005284 excitation Effects 0.000 claims description 43
- 238000012360 testing method Methods 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 22
- 238000012544 monitoring process Methods 0.000 claims description 11
- 238000007639 printing Methods 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 230000013011 mating Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000006066 Comins reaction Methods 0.000 claims description 4
- 238000012790 confirmation Methods 0.000 claims 1
- 238000010276 construction Methods 0.000 claims 1
- 230000005611 electricity Effects 0.000 claims 1
- 238000011835 investigation Methods 0.000 claims 1
- 238000010200 validation analysis Methods 0.000 abstract description 13
- 230000004048 modification Effects 0.000 abstract description 2
- 238000012986 modification Methods 0.000 abstract description 2
- 239000003795 chemical substances by application Substances 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 9
- 239000013598 vector Substances 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000000630 rising effect Effects 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 5
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- JJLJMEJHUUYSSY-UHFFFAOYSA-L Copper hydroxide Chemical compound [OH-].[OH-].[Cu+2] JJLJMEJHUUYSSY-UHFFFAOYSA-L 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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
-
- 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/3664—Environments for testing or debugging software
-
- 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
- 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/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Abstract
本发明公开了一种基于UVM的数字引信定时电路验证平台,用于对待测模块DUT即数字引信定时电路进行验证,包括串行输入模块com_agent_i、开始模块start_agent、输入输出模块IOT_agent、串行输出模块com_agent_o、对比模型模块DUT_mdl、比较模块DUT_scb、时序模块DUT_vsqr。本发明提出UVM通用验证方法学针对数字引线电路验证平台的定制化验证整体架构和定制化的验证模块设计,结合UVM通用验证方法学中功能模块化的优点,此验证平台可以通过对部分模块的简单修改重复用于不同的数字引信定时电路验证平台设计,解决了传统数字引线定时电路验证平台中模块化的难题。
Description
技术领域
本发明涉及一种基于UVM的数字引信定时电路验证平台,属于UVM通用验证方法学针对数字引线电路验证平台的特定实现。
背景技术
1.基于Verilog语言的验证平台设计
验证起源于设计,在最初的时候是没有专门的验证的,验证与设计合二为一。考虑到这种现状,Verilog在其中还包含了一个用于验证的子集,其中最典型的语句就是initial、task和function。纯正的设计几乎是用不到这些语句的。通过这些语句的组合,可以给设计施加激励,并观测输出结果是否与期望的一致,达到验证的目的。Verilog在验证方面最大的问题是功能模块化、随机化验证的不足,这导致更多的是直接测试用例(即direct test case,激励是固定的,其行为也是固定的),而不是随机的测试用例(即randomtest case,激励在一定范围内是随机的,可以在几种行为之间选择一种)。
2.Systemverilog语言的引入
Systemverilog是Verilog的扩展集,可以完全兼容Verilog。它具有所有面向对象语言的特性:封装、继承和多态,同时还为验证提供了一些独有的特性,如约束(constraint)、功能覆盖率(functional coverage)。
UVM通用验证方法学的库实现是基于Systemverilog语言编写的。
3.VMM(Verification Methodology Manual),OVM(Open VerificationMethodology),UVM(Universal Verification Methodology)验证方法学
VMM在2006年推出,其中集成了寄存器解决方案RAL(Register AbstractionLayer)。
OVM在2008年推出,它引进了factory机制,功能非常强大,但是它里面没有寄存器解决方案,这是它最大的短板。现在OVM已经停止更新,完全被UVM代替。
UVM在2011年推出,UVM几乎完全集成了OVM,并采纳了VMM中的寄存器解决方案RAL。UVM继承了VMM和OVM的优点,克服了各自的缺点,代表了验证方法学的发展方向。
4.传统数字引信定时电路验证平台
传统数字引信定时电路验证平台使用verilog语言施加激励,产生的激励多是由设计人员指定格式,指定数值。使用verilog语言的传统数字引信定时电路验证平台得到的仿真结果也多是由设计人员亲自比较,耗时耗力。当产生的输出波形数据量较大时,设计人员常常难以逐个查看仿真数据,造成错误难以及时发现。传统数字引信定时电路验证平台多是由验证人员根据自身的经验和习惯,随意划分层次,造成项目交接或项目继承过程中,需要后续验证人员花费大量时间熟悉原有基础。
发明内容
针对传统的基于Verilog语言的验证平台中功能模块化,随机化验证不足等缺点,本发明基于UVM通用验证方法学技术,提出了一种基于UVM的数字引信验证平台设计。
该验证平台主要包括UVM通用验证方法学针对数字引信定时电路验证平台的定制化模块设计和一些保证验证平台能够运行的必要的脚本文件,以及该验证平台的验证思路。
其中针对数字引信定时电路验证平台的定制化模块设计包括:
(1)串行输入模块com_agent_i,用于产生待测模块DUT的串行输入端口COMIN输入激励。在模块com_agent_i中,使用通道连接表的更新算法。将新产生的RCEN值与现有连接关系表该通道值进行累积。连接关系表该通道内部进行各通道累积(逻辑或)。连接关系表在该通道更新完成基础上,其他通道根据这次更新进行累积(逻辑或)。
(2)开始信号输入模块start_agent,用于产生待测模块DUT的开始信号端口START输入激励。
(3)计时/计数输入输出模块IOT_agent,用于产生待测模块DUT的计时/计数输入输出端口IOT的计数输入激励或者用于监测待测模块DUT的输入输出端口IOT的计时输出,具体输入或者输出视串行输入模块com_agent_i模块产生的随机激励配置信息。
(4)串行输出模块com_agent_o,用于监测待测模块DUT的串行输出端口COMOUT的信号输出。
(5)对比模型模块DUT_mdl,用于提供待测模块DUT的模型,它接收与待测模块DUT相同的输入,理论上应该产生与待测模块DUT相同的输出。
同时,该模块还负责暂存此次测试产生的随机激励配置信息,用于给其本身或者其他模块在其需要的时刻提供本次的配置信息。
(6)比较模块模块DUT_scb,用于接收待测模块DUT本身的输出和对比模型模块DUT_mdl的输出,比较两者的输出是否在一定偏差范围内一致。如果不一致,输出错误信息。在比较模块DUT_scb中,使用偏差值预估方法解决偏差范围问题。在计算输入计数的误差时,在本身计数时基,和级联通道中的计数时基中选择其中的大者,然后乘2,作为输入计数时的误差范围;在计算输出计数的误差时,采取输入计数误差+通道本身输出时基的结果,作为输出时的误差范围。
(7)时序管理模块DUT_vsqr,用于全局控制上述所有模块内部的sequencerUVM标准模块和sequence UVM标准模块输出激励的时序。
以上所有验证平台的模块均为UVM通用验证方法学基于数字引信定时电路验证平台的定制化实现。所有模块在搭建过程中,均符合UVM验证方法学中phase机制,和factory机制。
上述每个模块之间的通信均是基于事务级TLM 1.0。
串行输入模块com_agent_i与对比模型模块DUT_mdl之间传递本次测试产生的随机激励配置相关信息。
对比模型模块DUT_mdl与计时/计数输入输出模块IOT_agent之间传递与计时/计数输入输出端口IOT配置相关的信息。
开始信号模块start_agent与对比模型模块DUT_mdl之间传递开始信号端口start相关信息。
对比模型模块DUT_mdl与比较模块DUT_scb之间传递理想输入输出端口IOT的输出信息与本次测试所需的偏差信息。
待测模块DUT与比较模块DUT_scb之间传递实际的输入输出端口IOT的输出信息。
串行输出模块com_agent_o与比较模块DUT_scb之间传递监测到的串行输出端口COMOUT信息。
其中保证验证平台能够运行的必要脚本文件内容包括:
采用脚本的方式,循环产生测试用例,采用系统时间作为随机种子值(seed),每个测试用例中所有的激励均采用在随机约束条件下产生随机激励的方式进行仿真。此时不产生FSDB波形,UVM打印语句中只产生等级最高的日志信息,不使用printf语法打印标明验证平台运行中各个阶段的日志信息。此时可以保证仿真速度最快。
每个测试用例运行结束后,
(a)脚本自动分析测试用例运行时产生的日志文件,是否因为DUT_scb模块对比失败产生错误日志信息。
(b)脚本自动统计日志文件中共对比了几次IOTn端口的上升沿次数和下降沿次数。
(c)脚本将(a)(b)两步的结果输出到脚本产生的分析报告中,同时还应在分析报告中输出此次仿真所用的随机种子值。
(d)脚本开启下一次测试用例的运行。
验证人员可以在脚本中规定测试用例运行的次数,当所有测试用例均运行完毕后,验证人员查阅脚本产生的分析报告,是否报告错误。如果报告错误,将报告中的随机种子值还原至上述(2)步验证推进阶段,此时可以还原仿真发生错误时的具体情况,并且可以通过FSDB波形和各种日志信息进一步调试验证平台,排查并确认错误是由验证平台构建中还是数字引信定时电路设计失误造成的。
其中该验证平台的验证思路包括:
在makefile中设置3个不同的target,对应3种不同的阶段验证目标。
(1)验证雏形阶段,所有的激励均采用人工设置固定值的方式进行测试。此时需要配套产生FSDB波形,UVM打印语句中所有冗余等级的日志信息,使用printf语法打印标明验证平台运行中各个阶段的日志信息。上述所有信息在验证人员调试验证平台时有非常重要的作用,不过上述信息的产生将严重拖慢仿真的速度。
(2)验证推进阶段,所有的激励均采用在随机约束条件下产生随机激励的方式进行仿真。此时需要配套产生FSDB波形,UVM打印语句中所有冗余等级的日志信息,使用printf语法打印标明验证平台运行中各个阶段的日志信息。上述所有信息在验证人员调试验证平台时有非常重要的作用,不过上述信息的产生将严重拖慢仿真的速度。
(3)验证成熟阶段,采用脚本的方式,循环产生测试用例,采用系统时间作为随机种子值(seed),每个测试用例中所有的激励均采用在随机约束条件下产生随机激励的方式进行仿真。此时不产生FSDB波形,UVM打印语句中只产生等级最高的日志信息,不使用printf语法打印标明验证平台运行中各个阶段的日志信息。此时可以保证仿真速度最快。
本发明的优点在于:
(1)提出UVM通用验证方法学针对数字引线电路验证平台的定制化验证整体架构和定制化的验证模块设计。结合UVM通用验证方法学中功能模块化的优点,此验证平台可以通过对部分模块的简单修改重复用于不同的数字引信定时电路验证平台设计。解决了传统数字引线定时电路验证平台中模块化的难题。
(2)通过本专利中提到的一些必要的脚本文件,同时借助UVM通用验证方法学中随机化验证的优点,此验证平台能够产生大量的随机测试激励,并通过必要的脚本文件,提取每次仿真中数字引信定时电路输出的有效上升沿个数和下降沿个数,以及每次随机测试的种子值(seed)。一旦发生数字引信定时电路输出与理想的对比模型(DUT_mdl)输出不相符时,上述的提取信息能够使得仿真人员快速准确地还原这次仿真环境,找出发生输出不相符现象的原因。解决传统数字引信定时电路验证平台指定格式,指定数值的缺陷。同时解决了传统验证平台由设计人员人工检查大量仿真结果容易发生疏漏的情况,并提供了辅助设计人员快速定位错误原因的方法。
(3)提出通道连接表的更新算法,保证每个通道在随机产生级联寄存器控制信息(RCEN)时,不会发生级联通道本身,也不会发生通道之间互相级联。解决了如何能够产生针对数字引信电路的有效随机激励问题,不让大量无效的随机激励拖长仿真时间。
(4)提出偏差值预估方法,保证在对比数字引信定时电路(DUT)输出信号与数字引信定时电路模型(DUT_mdl)输出信号时偏差范围合理,即偏差不至于过大,导致对比功能失效,无法检测数字引信定时电路设计错误输出情况;偏差也不至于过小,导致对比功能过于灵敏,将数字引信定时电路设计正确输出情况误认为设计错误输出情况。解决了针对数字引信电路的验证平台如何处理数字引信定时电路(DUT)输出信号与数字引信定时电路模型(DUT_mdl)输出信号时偏差的问题。
附图说明
图1验证平台整体框图;
图2com_agent_i数据包生成流程;
图3向量数组连接关系表与通道RCEN寄存器的关系;
图4连接关系表更新算法;
图5DUT_scb对比IOT端口进程1;
图6DUT_scb对比IOT端口进程2;
图7DUT_scb对比IOT端口进程3;
图8DUT_scb对比IOT端口进程4;
图9模块间激励产生的先后时序;
图10验证平台系统构建思路。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
<一>、验证平台整体结构
图1是数字引信定时电路验证平台的整体框图。
图1中DUT是待验证的数字引信定时电路,以下简称待测模块。基本的数字引信定时电路包括一组采用曼彻斯特编码协议的双线通信口,即图1中待测模块DUT的串行输入端口COMIN和串行输出端口COMOUT。数字引信定时电路还包括一个输入的开始信号端口START,控制待测模块DUT是否开启。本待验证的数字引信定时电路包含8组可配置为输入计数或计时输出双向端口。
图1中除上述DUT待验证的数字引信定时电路,均为本专利需要保护的数字引信定时电路验证平台所需所有模块。
(1)串行输入模块com_agent_i,用于产生待测模块DUT(Device UnderTest)的串行输入端口COMIN输入激励。
(2)开始模块start_agent,用于产生待测模块DUT的开始信号端口START输入激励。
(3)输入输出模块IOT_agent,用于产生待测模块DUT的输入输出端口IOT的输入激励或者用于监测DUT的输入输出端口IOT的计时输出,具体输入或者输出视com_agent_i模块产生的随机激励配置信息。
(4)串行输出模块com_agent_o,用于监测待测模块DUT的串行输出端口COMOUT的信号输出。
(5)对比模型模块DUT_mdl,用于提供待测模块DUT的模型,它接收与待测模块DUT相同的输入,理论上应该产生与待测模块DUT相同的输出。同时,该模块还负责暂存此次测试产生的随机激励配置信息,用于给其本身或者其他模块在其需要的时刻提供本次的配置信息。
(6)比较模块DUT_scb,用于接收待测模块DUT本身的输出和对比模型模块DUT_mdl的输出,比较两者的输出是否在一定偏差范围内一致。如果不一致,输出错误信息。
(7)时序管理模块DUT_vsqr,用于全局控制上述所有模块内部的序列发射器sequencer UVM标准模块和序列产生器sequence UVM标准模块输出激励的时序。
以上所有验证平台的模块均为UVM通用验证方法学基于数字引信定时电路验证平台的定制化实现。所有模块在搭建过程中,均符合UVM验证方法学中phase机制,和factory机制。
在验证平台的整体结构中,每个模块之间的通信均是基于事务级TLM 1.0,这些通信包括:
(1)串行输入模块com_agent_i与对比模型模块DUT_mdl之间传递本次测试产生的随机激励配置相关信息。
(2)对比模型模块DUT_mdl与计时/计数输入输出模块IOT_agent之间传递与输入输出端口IOT配置相关的信息。
(3)开始信号模块start_agent与对比模型模块DUT_mdl之间传递开始信号start相关信息。
(4)对比模型模块DUT_mdl与比较模块DUT_scb之间传递理想输入输出端口IOT的输出信息,与本次测试所需的偏差信息。
(5)待测模块DUT与比较模块DUT_scb之间传递实际的计时/计数输入输出端口IOT的输出信息。
(6)串行输出模块com_agent_o与比较模块DUT_scb之间传递监测到的串行输出端口COMOUT信息。
需要注意的是,在整体框图中为了逻辑清晰,将各自模块的序列发射器sequencer子模块与序列产生器sequence子模块画在了相对应的模块中。实际上,在设计实现中,为了能够全局控制所有激励的时序,所有的各自模块的序列发射器sequencer子模块与序列产生器sequence子模块均在时序管理模块DUT_vsqr与DUT_vseq中。
以下的模块设计描述中,为了逻辑清晰,仍然按照各自模块的sequencer子模块与sequence子模块在相对应的模块中描述的原则。
<二>、验证平台模块设计
由于以下所有模块的设计均是遵循UVM通用验证方法学中既有规定的模块化设计原则,即每个模块的原则功能在UVM通用验证方法学中已经规定明确,如sequence子模块就是负责产生事务数据包,driver子模块就是负责与待测模块DUT的端口直接沟通,将事务数据包转成具体的时序信息,监测子模块monitor就是负责监测待测模块DUT端口信息,将端口的时序信息恢复成事务级数据包等。
上述这些已经既定的规则,在下面的描述中将不会提及。下面的描述是在UVM通用验证方法学的基础之上,针对数字引信验证平台的定制化实现的过程。
(1)串行输入模块com_agent_i
该模块的描述分为随机约束条件,数据包生成流程和端口时序产生三个方面进行描述。
a.随机约束条件:
由于基本的数字引信定时电路主要有6种寄存器,所以,该模块的随机约束条件就是根据这6种寄存器的功能定义进行约束。
RSTI寄存器:有两种有效信号值,0b01或者0b10,所以约束条件是0b01和0b10的产生概率分别是9999,0b00和0b11产生概率分别是1。
RSTF寄存器:有两种有效值,0x5a或者0x00。所以约束条件是0x5a和0x00的产生概率分别是999999,其他所有值的产生概率加起来是1。
RCMP寄存器:根据之前配置好的RSET寄存器中的值进行设置,
ROUT寄存器:
RSET寄存器[6:4] | 约束条件 |
0x0 | 小于0d100之内的任意数 |
0x1 | 小于0d50之内的任意数 |
0x2 | 小于0d5之内的任意数 |
0x3 | 小于0d5之内的任意数 |
其他 | 只能是1 |
RSET寄存器:
RSET寄存器 | 约束条件 |
[10:8] | 0到6之内任意数 |
[6:4] | 0到6之内任意数 |
[15] | 1 |
[11] | 0 |
其他位 | 完全随机 |
RCEN寄存器:约束条件根据其他通道已经设置好的RCEN寄存器互为约束,所以需要在数据包生成的同时维护一个连接关系表,根据该连接关系表,确定此时的约束条件。需要保证的约束条件原则是,根据连接关系表,确保通道的级联关系不能相互调用且通道自己不能级联本身。
由于曼彻斯特编码采用CRC8的检验位,所以,CRC8检验位的生成逻辑也在此约束条件中。CRC8具体的实现逻辑已经普遍存在,故具体逻辑实现不在此叙述范围内。
上述约束条件仅针对某一款特定型号的数字引线电路设计设定,如果因为数字引信定时电路设计更改,上述约束条件的更改也应属于专利的保护范围内。
b.数据包生成流程
图2所示数据包生成流程。假设某一款特定型号的数字引信定时电路设计一共有0x20个数据包待生成(即有0x20个有特定地址位置信息的寄存器内容待生成),所以需要循环0x20次。每一次循环中i的值对应寄存器的地址。如果对应RSET寄存器地址,则需要暂存此时的寄存器值,用于约束条件中对于RCMP和ROUT寄存器值的约束。如果对应RCEN寄存器地址,则需要更新连接关系表。
连接关系表的更新算法如下:
假设某一款特定型号的数字引信定时电路设计共有8个通道,连接关系表对应了设计中的8个通道的启动级联关系,验证平台设计中用一组8x8bit的向量数组来存储8个通道的连接关系表。
图3讲述了向量数组连接关系表与通道RCEN寄存器的关系。连接关系表与通道RCEN寄存器值是不同的,连接关系表是通道RCEN寄存器值的递归累积(逻辑或)效果。所以每次根据现有连接关系表产生新的通道随机RCEN寄存器值后,都要根据这次产生的通道随机RCEN寄存器值,更新连接关系表。
根据图4所示的流程图,连接关系表的更新算法分三步:
(1)将新产生的RCEN值现有连接关系表该通道值累积(逻辑或)。
(2)连接关系表该通道内部进行各通道累积(逻辑或),共循环8次(向量表中每一个向量有8位)。
(3)连接关系表在该通道更新完成基础上,其他通道根据这次更新进行累积(逻辑或),共循环8次(向量表中共有8组向量)。
c.端口时序生成
端口时序就是将生成的数据包按照曼彻斯特编码协议时序发出。曼彻斯特编码协议是既有协议,故具体端口时序生成逻辑不在此介绍范围内。
(2)开始信号模块start_agent
该模块的描述分为随机约束条件,数据包生成流程和端口时序产生三个方面进行描述。
该模块是为了产生一个随机周期长度的高电平脉冲。
a.随机约束条件
完全随机,可以产生0x0000到0xFFFF之间的任何值。0x0000代表没有高电平脉冲,0xFFFF代表产生常态高电平信号。
b.数据包生成逻辑
直接生成,没有附加逻辑,且只生成一次。
c.端口时序
按照数据包中的数值,配合输入时钟,产生指定的随机周期高电平脉冲,或常态高电平。
(3)计时/计数输入输出模块IOT_agent
该模块的描述分为随机约束条件,数据包生成流程,端口时序生成以及监测数据包产生四个方面进行描述。
a.随机约束条件
可以产生0d32到0d1000之间任何值的高电平区间值和低电平区间值。
b.数据包生成逻辑
直接产生,没有附加逻辑,且循环产生直到仿真结束。
c.端口时序
接收对比模型DUT_mdl模块发来的寄存器数据,决定待测模块DUT的端口被配置成输入还是输出。如果是输入的话,根据随机约束条件产生的数据包,产生对应的随机高电平区间和低电平区间。
d.监测数据包产生
接收对比模型DUT_mdl模块发来的寄存器数据,决定待测模块DUT的端口被配置成输入还是输出。如果是输出的话,每当监测到上升沿或者下降沿,都将该沿的类型(上升或下降)以及沿发生的时刻信息发送给比较DUT_scb模块。
(4)串行输出模块com_agent_o
此模块为单纯DUT的COMOUT端口的检测模块,按照既有的曼彻斯特编码协议将端口信息流转换成事务包发送给DUT_scb模块。
(5)对比模型模块DUT_mdl
此模块为模块DUT的模型模块,根据待测模块DUT设计的改变而改变。即如果数字引信定时电路设计发生改变,该模块也要进行对应的改变,以达到与对比模型DUT_mdl模块的一致性。
该模块的输出会送到比较DUT_scb模块与真实设计待测模块DUT的输出做比对。
另外,该模块还负责暂存此次测试产生的随机激励寄存器配置信息,用于给其本身或者其他模块在其需要的时刻提供本次的寄存器配置信息。
(6)比较模块DUT_scb
此模块的作用是比对待测模块DUT的第n计时/计数输入输出端口IOTn的输出与对比模型模块DUT_mdl的第n计时/计数输入输出端口IOTn的输出,如果两者上升沿或者下降沿在误差范围内一致,就认为待测模块DUT的设计,即数字引信定时电路的设计符合预期,否则,报出错误日志文件。
同时此模块还比对待测模块DUT的串行输出端口COMOUT输出事务级数据包与对比模型模块DUT_mdl的串行输出端口COMOUT输出事务级数据包是否一致,如果一致,就认为待测模块DUT的设计,即数字引信定时电路的设计符合预期,否则,报出错误日志文件。
图5、图6、图7、图8分别表示比较模块DUT_scb内有关对比输入输出端口IOT时刻的逻辑流程图。图5、图6、图7、图8中进程1,进程2,进程3,进程4是由fork..join语句组成的并行进程。
进程1用于实时存储由计时/计数输出输出模块IOT_agent发出的输入输出端口IOT变化沿通信包。
进程2用于实时存储由对比模型模块DUT_mdl发出的计时/计数输入输出端口IOT变化沿通信包。
进程3用于比对计时/计数输入输出端口IOT上升沿是否符合偏差范围。
进程4用于比对计时/计数输入输出端口IOT下降沿是否符合偏差范围。
在比较模块DUT_scb内的一个设计难点在于对比模型模块DUT_mdl中的计时/定时功能是十分准确的时间信息,但是DUT中的计时/定时功能则是不准确的时间信息,比较模块DUT_scb的设计则要考虑到这些误差,防止误报错。这种不准确的延迟并不是固定值,会随着寄存器设置的计数时基(RSET[10:8])和输出时基(RSET[6:4])的变化而变化。比如,如果计数时基选择是100ms,那么对比模型模块DUT_mdl与待测模块DUT之间的差距就有可能是100ms之内的任何一个值。如果计数时基选择是1s,那么对比模型模块DUT_mdl与待测模块DUT之间的差距就有可能是1s之内的任何一个值。
更复杂的是,由于每个通道都可能设置为需要其他通道完成之后才可以启动。所以对比模型模块DUT_mdl与待测模块DUT之间的时间延迟误差还可能会有累积的效果。比如通道0需要通道1启动之后才能启动,那么对比模型模块DUT_mdl与待测模块DUT之间的时间误差就是通道1的误差加上通道0的误差。如果级联的设置更加复杂,那么这种误差的计算也会随之复杂。由于本次验证计划是全随机设置,这种误差的预估在比较模块DUT_scb中的实现也变的很复杂。
本专利的做法是,在计算输入计数的误差时,在本身计数时基,和级联通道中的计数时基中选择其中的大者,然后乘2,作为输入计数时的误差范围;在计算输出计数的误差时,采取输入计数误差+通道本身输出时基的结果,作为输出时的误差范围。
(6)时序管理模块DUT_vsqr
本模块的作用是总控其他所有模块的sequencer UVM标准模块和sequence UVM标准模块输出激励的时序。即其他所有能够产生激励的模块,模块间激励产生的先后时序由该模块控制。
图9描述了模块间激励产生的先后时序。首先串行输入模块com_agent_i产生所有通道的寄存器的随机设置激励信息。待寄存器的随机设置激励信息全部完成后,开始信号模块start_agent产生外部启动信号高电平。待外部启动信号高电平激励完成后,同步并行启动所有8个通道的计时/计数输入输出模块IOT_agent产生的激励(前提是寄存器设置该通道为输入端口)。由于计时/计数输入输出模块IOT_agent内产生的激励的方式为循环产生,所以直到仿真结束之前,都将循环产生待测模块DUT的输入输出端口IOT的输入激励。
<三>、验证平台系统构建思路
图10讲述了验证平台系统构建流程。考虑到验证过程中各阶段验证目标的不同,在makefile中设置3个不同的目标target,对应3种不同的阶段验证目标。
(1)验证雏形阶段,所有的激励均采用人工设置固定值的方式进行测试。此时需要配套产生FSDB波形,UVM打印语句中所有冗余等级的日志信息,使用printf语法打印标明验证平台运行中各个阶段的日志信息。上述所有信息在验证人员调试验证平台时有非常重要的作用,不过上述信息的产生将严重拖慢仿真的速度。
(2)验证推进阶段,所有的激励均采用在随机约束条件下产生随机激励的方式进行仿真。此时需要配套产生FSDB波形,UVM打印语句中所有冗余等级的日志信息,使用printf语法打印标明验证平台运行中各个阶段的日志信息。上述所有信息在验证人员调试验证平台时有非常重要的作用,不过上述信息的产生将严重拖慢仿真的速度。
(3)验证成熟阶段,采用脚本的方式,循环产生测试用例,采用系统时间作为随机种子值(seed),每个测试用例中所有的激励均采用在随机约束条件下产生随机激励的方式进行仿真。此时不产生FSDB波形,UVM打印语句中只产生等级最高的日志信息,不使用printf语法打印标明验证平台运行中各个阶段的日志信息。此时可以保证仿真速度最快。
每个测试用例运行结束后,
(a)脚本自动分析测试用例运行时产生的日志文件,是否因为DUT_scb模块对比失败产生错误日志信息。
(b)脚本自动统计日志文件中共对比了几次IOTn端口的上升沿次数和下降沿次数。
(c)脚本将(a)(b)两步的结果输出到脚本产生的分析报告中,同时还应在分析报告中输出此次仿真所用的随机种子值。
(d)脚本开启下一次测试用例的运行。
验证人员可以在脚本中规定测试用例运行的次数,当所有测试用例均运行完毕后,验证人员查阅脚本产生的分析报告,是否报告错误。如果报告错误,将报告中的随机种子值还原至上述(2)步验证推进阶段,此时可以还原仿真发生错误时的具体情况,并且可以通过FSDB波形和各种日志信息进一步调试验证平台,排查并确认错误是由验证平台构建中还是数字引信定时电路设计失误造成的。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (12)
1.一种基于UVM的数字引信定时电路验证平台,用于对待测模块DUT即数字引信定时电路进行验证,其特征是,包括以下模块:
(1)串行输入模块com_agent_i,用于产生待测模块DUT的串行输入端口COMIN所需的输入激励;
(2)开始模块start_agent,用于产生待测模块DUT的开始信号端口START所需的输入激励;
(3)计时/计数输入输出模块IOT_agent,用于产生待测模块DUT的输入输出端口IOT的输入激励或者用于监测待测模块DUT的计时/计数输入输出端口IOT的计时输出;
(4)串行输出模块com_agent_o,用于监测待测模块DUT的串行输出端口COMOUT的信号输出;
(5)对比模型模块DUT_mdl,用于提供待测模块DUT的模型,接收与待测模块DUT相同的输入,产生与待测模块DUT相同的输出;
(6)比较模块DUT_scb,用于接收待测模块DUT本身的输出和对比模型模块DUT_mdl的输出,并比较两者的输出是否在一定偏差范围内一致;
(7)时序模块DUT_vsqr,用于全局控制上述所有模块内部的sequencer UVM标准模块和sequence UVM标准模块输出激励的时序。
2.根据权利要求1所述的一种基于UVM的数字引信定时电路验证平台,其特征是,上述每个模块之间的通信均是基于事务级TLM 1.0。
3.根据权利要求1所述的一种基于UVM的数字引信定时电路验证平台,其特征是,串行输入模块com_agent_i与对比模型模块DUT_mdl之间传递本次测试产生的随机激励配置相关信息。
4.根据权利要求1所述的一种基于UVM的数字引信定时电路验证平台,其特征是,对比模型模块DUT_mdl与计时/计数输入输出模块IOT_agent之间传递与计时/计数输入输出端口IOT配置相关的信息。
5.根据权利要求1所述的一种基于UVM的数字引信定时电路验证平台,其特征是,开始模块start_agent与对比模型模块DUT_mdl之间传递开始信号端口start相关信息。
6.根据权利要求1所述的一种基于UVM的数字引信定时电路验证平台,其特征是,对比模型模块DUT_mdl与比较模块DUT_scb之间传递理想输入输出端口IOT的输出信息与本次测试所需的偏差信息。
7.根据权利要求1所述的一种基于UVM的数字引信定时电路验证平台,其特征是,待测模块DUT与比较模块DUT_scb之间传递实际的计时/计数输入输出端口IOT的输出信息。
8.根据权利要求1所述的一种基于UVM的数字引信定时电路验证平台,其特征是,串行输出模块com_agent_o与比较模块DUT_scb之间传递监测到的串行输出端口COMOUT信息。
9.根据权利要求1所述的一种基于UVM的数字引信定时电路验证平台,其特征是,所述对比模型模块DUT_mdl还负责暂存测试产生的随机激励配置信息,用于给其本身或者其他模块提供该次配置信息。
10.根据权利要求1所述的一种基于UVM的数字引信定时电路验证平台,其特征是,上述所有的模块在搭建过程中,均符合UVM验证方法学中phase机制和factory机制。
11.根据权利要求1所述的一种基于UVM的数字引信定时电路验证平台,其特征是,在串行输入模块com_agent_i中,使用通道连接表的更新算法。
12.根据权利要求1所述的一种基于UVM的数字引信定时电路验证平台,其特征是,根据验证过程中各阶段验证目标的不同,在makefile中设置3个不同的目标target,对应3种不同的阶段验证目标:
(1)验证雏形阶段,所有的激励均采用人工设置固定值的方式进行测试;配套产生FSDB波形,UVM打印语句中所有冗余等级的日志信息,使用printf语法打印标明验证平台运行中各个阶段的日志信息;
(2)验证推进阶段,所有的激励均采用在随机约束条件下产生随机激励的方式进行仿真;配套产生FSDB波形,UVM打印语句中所有冗余等级的日志信息,使用printf语法打印标明验证平台运行中各个阶段的日志信息;
(3)验证成熟阶段,采用脚本的方式,循环产生测试用例,采用系统时间作为随机种子值,每个测试用例中所有的激励均采用在随机约束条件下产生随机激励的方式进行仿真;此时不产生FSDB波形,UVM打印语句中只产生等级最高的日志信息;
通过对所有测试用例的运行,根据FSDB波形和各种日志信息,排查确认错误是由验证平台构建中还是数字引信定时电路设计失误造成的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811228196.4A CN109492269B (zh) | 2018-10-22 | 2018-10-22 | 一种基于uvm的数字引信定时电路验证平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811228196.4A CN109492269B (zh) | 2018-10-22 | 2018-10-22 | 一种基于uvm的数字引信定时电路验证平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109492269A true CN109492269A (zh) | 2019-03-19 |
CN109492269B CN109492269B (zh) | 2023-06-27 |
Family
ID=65692440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811228196.4A Active CN109492269B (zh) | 2018-10-22 | 2018-10-22 | 一种基于uvm的数字引信定时电路验证平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109492269B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416760A (zh) * | 2020-11-11 | 2021-02-26 | 北京京航计算通讯研究所 | 一种通用的测试平台TestBench的模块封装方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530216A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种基于uvm验证方法学的pcie验证方法 |
CN104268310A (zh) * | 2014-09-05 | 2015-01-07 | 浪潮集团有限公司 | 使用专用图形界面调用uvm验证环境的方法 |
CN104486169A (zh) * | 2015-01-07 | 2015-04-01 | 北京华力创通科技股份有限公司 | 可重用自动检测及随机验证系统和方法 |
CN104935936A (zh) * | 2015-06-15 | 2015-09-23 | 东南大学 | 基于uvm的熵解码器验证方法及装置 |
CN106484583A (zh) * | 2016-10-12 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种基于uvm验证平台的upi协议模型链路层模块验证系统 |
CN106503308A (zh) * | 2016-10-08 | 2017-03-15 | 中国电子科技集团公司第五十八研究所 | 一种基于uvm的can控制器ip验证平台 |
CN106777720A (zh) * | 2016-12-23 | 2017-05-31 | 深圳市国微电子有限公司 | 电路验证方法及装置 |
US20180060453A1 (en) * | 2016-08-24 | 2018-03-01 | Raytheon Company | Universal verification methodology (uvm) register abstraction layer (ral) painter |
CN108038283A (zh) * | 2017-11-30 | 2018-05-15 | 北京时代民芯科技有限公司 | 一种虚拟时钟同步的高效高覆盖率SoC验证平台 |
US20180300431A1 (en) * | 2017-04-18 | 2018-10-18 | Raytheon Company | Universal verification methodology (uvm) register abstraction layer (ral) traffic predictor |
-
2018
- 2018-10-22 CN CN201811228196.4A patent/CN109492269B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530216A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种基于uvm验证方法学的pcie验证方法 |
CN104268310A (zh) * | 2014-09-05 | 2015-01-07 | 浪潮集团有限公司 | 使用专用图形界面调用uvm验证环境的方法 |
CN104486169A (zh) * | 2015-01-07 | 2015-04-01 | 北京华力创通科技股份有限公司 | 可重用自动检测及随机验证系统和方法 |
CN104935936A (zh) * | 2015-06-15 | 2015-09-23 | 东南大学 | 基于uvm的熵解码器验证方法及装置 |
US20180060453A1 (en) * | 2016-08-24 | 2018-03-01 | Raytheon Company | Universal verification methodology (uvm) register abstraction layer (ral) painter |
CN106503308A (zh) * | 2016-10-08 | 2017-03-15 | 中国电子科技集团公司第五十八研究所 | 一种基于uvm的can控制器ip验证平台 |
CN106484583A (zh) * | 2016-10-12 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种基于uvm验证平台的upi协议模型链路层模块验证系统 |
CN106777720A (zh) * | 2016-12-23 | 2017-05-31 | 深圳市国微电子有限公司 | 电路验证方法及装置 |
US20180300431A1 (en) * | 2017-04-18 | 2018-10-18 | Raytheon Company | Universal verification methodology (uvm) register abstraction layer (ral) traffic predictor |
CN108038283A (zh) * | 2017-11-30 | 2018-05-15 | 北京时代民芯科技有限公司 | 一种虚拟时钟同步的高效高覆盖率SoC验证平台 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416760A (zh) * | 2020-11-11 | 2021-02-26 | 北京京航计算通讯研究所 | 一种通用的测试平台TestBench的模块封装方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109492269B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106021044B (zh) | 可重用spi总线协议模块验证环境平台及其验证方法 | |
CN103559112B (zh) | 一种软件故障注入方法及系统 | |
CN110618929A (zh) | 一种基于uvm的对称加密算法的验证平台和验证方法 | |
CN106503308A (zh) | 一种基于uvm的can控制器ip验证平台 | |
CN108737187A (zh) | 一种can总线故障模拟系统及故障模拟方法 | |
CN104346272B (zh) | 芯片自动仿真验证系统 | |
CN103176161A (zh) | 一种电学量自动校准系统及其校准方法 | |
CN102169846A (zh) | 一种在集成电路晶圆测试过程中实现多维变量密码并行写入的方法 | |
CN109634600A (zh) | 一种基于安全扩展SysML和AADL模型的代码生成方法 | |
US20020173942A1 (en) | Method and apparatus for design validation of complex IC without using logic simulation | |
CN105808843A (zh) | 一种混合信号验证平台的构造方法 | |
US8645897B1 (en) | Integrated circuit design verification system | |
CN108038328A (zh) | 芯片自动仿真验证系统 | |
CN109543212A (zh) | 可编程逻辑器件的功能测试方法、装置及计算机存储介质 | |
CN109492269A (zh) | 一种基于uvm的数字引信定时电路验证平台 | |
CN108984945B (zh) | 基于多核心联合仿真被验证设计的仿真验证平台 | |
CN103970654B (zh) | 一种软件可靠性虚拟测试方法 | |
CN103761387A (zh) | 一种fpga组合逻辑系统顺序规范的形式化验证方法 | |
CN106886487A (zh) | 用于评价fpga软件可靠性的方法 | |
CN108829903A (zh) | 判定fpga冗余设计的代码与综合后电路一致性的方法和系统 | |
CN106777665A (zh) | 提高协同仿真平台验证效率的方法及系统 | |
US9104829B2 (en) | Method of validating timing issues in gate-level simulation | |
Peters et al. | Clocks vs. instants relations: Verifying CCSL time constraints in UML/MARTE models | |
CN104461882B (zh) | 一种符合do‑178b/c a级软件的模型验证方法 | |
CN105404572B (zh) | 一种基于遍历搜索存储模型的Cache系统形式化验证方法 |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 233040 No.10 Caiyuan Road, Bengbu City, Anhui Province Patentee after: Anhui North Microelectronics Research Institute Group Co.,Ltd. Address before: 233040 No.10 Caiyuan Road, Bengbu City, Anhui Province Patentee before: NORTH ELECTRON RESEARCH INSTITUTE ANHUI Co.,Ltd. |