CN114492258A - 随机约束和覆盖组同步方法 - Google Patents

随机约束和覆盖组同步方法 Download PDF

Info

Publication number
CN114492258A
CN114492258A CN202210086418.3A CN202210086418A CN114492258A CN 114492258 A CN114492258 A CN 114492258A CN 202210086418 A CN202210086418 A CN 202210086418A CN 114492258 A CN114492258 A CN 114492258A
Authority
CN
China
Prior art keywords
random
coverage
constraint
value
data
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
Application number
CN202210086418.3A
Other languages
English (en)
Inventor
马骁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Clounix Technology Ltd
Original Assignee
Hangzhou Clounix Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Clounix Technology Ltd filed Critical Hangzhou Clounix Technology Ltd
Priority to CN202210086418.3A priority Critical patent/CN114492258A/zh
Publication of CN114492258A publication Critical patent/CN114492258A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model 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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种随机约束和覆盖组同步方法,包含如下步骤:S1:在gen_ignore_bins方法中声明并构造目标的随机对象;S2:遍历覆盖组的交叉覆盖点的组合,获得遍历的值;S3:将遍历的值指定赋给待检查的随机对象的数据成员;S4:将预设的参数null传递到随机方法中,以将随机约束求解方法当作随机约束的检测器来使用;S5:调用该随机约束检测器检查随机对象中数据成员的值是否符合随机约束所约束的合法区间范围值,从而做出相应操作;S6:重复执行上述步骤S2、步骤S3、步骤S4和步骤S5,直至遍历完所有覆盖组的交叉覆盖点的组合。本发明将参数传递到随机方法来将原先的随机产生器当作检测器来使用,从而创新性的应用实现了随机约束和覆盖组之间的关联同步。

Description

随机约束和覆盖组同步方法
技术领域
本发明涉及芯片检测技术领域,特别涉及一种随机约束和覆盖组同步方法。
背景技术
在芯片验证工作中,我们往往需要对RTL(Register Transfer Level,寄存器传输级)设计的配置对象或者施加的输入激励进行随机,然后运行相应的测试用例以期望通过随机发现一些RTL设计中潜在的问题。而这里的随机,并不是完全的随机,需要约束限制其随机的值在合法的区间范围,以使得RTL设计模块工作在正常的状态或者得到有效合法的输入激励,否则我们可能会得到无效的配置或激励,那么运行测试用例则失去了测试验证该RTL设计的意义。(这里的有效合法值,指的是符合RTL设计规则的区间值,这里的正常的工作状态,指的是符合RTL设计规则的工作模式状态)。
如图1所示,可以看到,图中我们对配置对象config和输入激励sequence进行随机,以配置DUT在随机的工作状态,以及施加给DUT一个随机的激励来仿真测试。虽然在对复杂的芯片的验证过程中,通过随机约束的方法能够帮助我们避免手动编写测试用例,从而帮助我们提高验证效率,但是如果不运行仿真来查看仿真日志文件的话,我们很难清楚的知道该随机出来的配置对象或输入激励里的数据成员最终是什么值,因此我们通常需要编写覆盖率收集组件中的覆盖组(covergroup)来确保随机出来的对象的数据成员的值落在我们想要观测的区间范围值,从而帮助我们跟踪对DUT验证的完整性或者说验证的进度。而随机约束和覆盖率收集组件两者都代表着对目标对象随机求解后的合法区间范围值进行的建模,主要区别如下:
随机约束:从正面进行建模,即通过随机约束程序块(constraint)指明随机求解过程需要满足的一些约束条件,以使得最终的随机值处在目标区间范围值,这最终决定了我们想要仿真的配置对象或输入激励。
覆盖率收集组件:从反面进行建模,即通过指明需要忽略的覆盖仓(ignore_bins)来排除需要覆盖收集的数值,相当于从反面指明了最终我们想要关心的随机区间范围值,这最终决定了我们想要观测的配置对象或输入激励。
因此,两者需要进行关联同步,否则很可能由于错误的随机约束或覆盖率收集组件的观测不够,而引发对DUT的验证不够充分,最终导致对目标芯片的验证不充分而流片失败。
现有的用来实现上面两者的关联同步的方案如图2所示。
下面看个具体的例子,代码如图5所示;
上述代码派生于uvm_sequence_item,通常作为仿真输入激励,里面有数据成员A和B,都是bit类型,位宽为4。另外包含如下三个随机约束:
A_larger_than_B:成员A的随机值需要大于成员B的随机值;
sum_of_A_B_is_odd:成员A和B的随机值之和必须是奇数;
if_A_is_3_then_B_is_2:如果成员A的随机值为3,那么成员B的随机值应该为2。
然后我们来看覆盖率收集组件部分,代码如图6所示,该覆盖率收集组件可以通过使用订阅者模式派生于uvm_subscriber组件来实现,也可以通过TLM通信端口连接来实现,这里为了方便,使用订阅者模式来实现。
覆盖组中包含两个覆盖点A和B,以及一个交叉覆盖点,我们在交叉覆盖点中定义了三个方法用于产生需要在交叉覆盖点中忽略的覆盖仓来排除需要覆盖收集的数值,然后在下方的ignore_bins中调用相应的方法即可完成之前提到的从反面指明最终我们想要关心的随机区间范围值。
其中需要使用到SystemVerilog为交叉覆盖组提供的CrossQueueType数据类型。这里做简单说明代码如图7所示。
根据图7所示可以看到,主要有两种类型:
CrossValType:一种将交叉覆盖点涉及到的成员变量组合成为结构体的新的数据类型。
CrossQueueType:利用上述类型声明的队列。这里我们使用相关方法时使用的返回值即该队列数据类型,用来写入在交叉覆盖点中忽略的覆盖仓。
(1)现有方案中的随机约束和覆盖率收集组件中存在大量重复描述的运算表达式部分,即存在较多重复代码,只是对于随机约束部分代码来说,其是从正面进行建模,对于覆盖率收集组件部分代码来说,其是从反面进行建模,但是基本上都将原先的等式重新进行了编写,代码冗余,开发效率低。
(2)如果我们要对随机约束或者覆盖率收集组件的两者之一进行修改的话,那么就需要同时修改两个地方,很容易遗漏导致出错,因此很难保证两者之间同步的及时性和一致性,即代码的可维护性比较差。
发明内容
根据本发明实施例,提供了一种随机约束和覆盖组同步方法,包含如下步骤:
S1:创建gen_ignore_bins方法,在gen_ignore_bins方法中声明并构造目标的随机对象;
S2:遍历覆盖组的交叉覆盖点的组合,获得遍历的值;
S3:将遍历的值指定赋给待检查的随机对象的数据成员;
S4:将预设的参数传递到随机方法中,以将随机约束求解方法当作随机约束的检测器来使用;
S5:调用检测器检查随机对象中数据成员的值是否符合随机约束所约束的合法区间范围值,从而做出相应操作;
S6:重复执行上述步骤S2、步骤S3、步骤S4和步骤S5,直至遍历完所有覆盖组的交叉覆盖点的组合。
进一步,若数据成员的值符合随机约束所约束的合法区间范围值,检查数据将返回1,不做任何操作。
进一步,若数据成员的值不符合随机约束所约束的合法区间范围值,检查数据将返回0,将数据成员写入相应的覆盖组的交叉队列类型。
进一步,当将预设的参数传递到随机方法中时,待检查的所述随机对象不会产生目标随机值。
根据本发明实施例的随机约束和覆盖组同步方法,将参数传递到随机方法来将原先的随机产生器当作检测器来使用,从而创新性的应用实现了随机约束和覆盖组之间的关联同步。简化后的覆盖组中获取ignore_bins的接口方法缩减为一个,且不再需要编写此前类似随机约束的约束表达式,从而大大简化了代码,提升了验证开发效率。
要理解的是,前面的一般描述和下面的详细描述两者都是示例性的,并 且意图在于提供要求保护的技术的进一步说明。
附图说明
图1为基于UVM的典型验证平台架构中的随机约束示例原理图。
图2现有技术的随机约束和覆盖组关联的原理图。
图3本发明实施例的随机约束和覆盖组同步方法的原理图。
图4本发明实施例的随机约束和覆盖组同步方法的流程图。
图5现有技术的的代码图。
图6现有技术的的代码图。
图7现有技术的的代码图。
具体实施方式
以下将结合附图,详细描述本发明的优选实施例,对本发明做进一步阐述。
首先,将结合图3~4描述根据本发明实施例的随机约束和覆盖组同步方法,用于芯片验证使用,其应用场景很广。
如图3~4所示,本发明实施例的随机约束和覆盖组同步方法,具有如下步骤:
在S1中,如图4所示,创建gen_ignore_bins方法,在gen_ignore_bins方法中声明并构造目标的随机对象。
在S2中,如图4所示,遍历覆盖组的交叉覆盖点的组合,获得遍历的值。
在S3中,如图4所示,将遍历的值指定赋给待检查的随机对象的数据成员。
在S4中,如图4所示,将预设的参数传递到随机方法中,以将随机约束求解方法当作随机约束的检测器来使用。在本实施例中,当将预设的参数传递到随机方法中时,待检查的随机对象不会产生目标随机值。
在S5中,如图4所示,调用检测器检查随机对象中数据成员的值是否符合随机约束所约束的合法区间范围值,从而做出相应操作。在本实施例中,若数据成员的值符合随机约束所约束的合法区间范围值,检查数据将返回1,不做任何操作,若数据成员的值不符合随机约束所约束的合法区间范围值,检查数据将返回0,将数据成员写入相应的覆盖组的交叉队列类型。
在S6中,如图4所示,重复执行上述步骤S2、步骤S3、步骤S4和步骤S5,直至遍历完所有覆盖组的交叉覆盖点的组合。
以上,参照图3~4描述了根据本发明实施例的随机约束和覆盖组同步方法,将参数传递到随机方法来将原先的随机产生器当作检测器来使用,从而创新性的应用实现了随机约束和覆盖组之间的关联同步。 简化后的覆盖组中获取ignore_bins的接口方法缩减为一个,且不再需要编写此前类似随机约束的约束表达式,从而大大简化了代码,提升了验证开发效率。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包含……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

Claims (4)

1.一种随机约束和覆盖组同步方法,其特征在于,包含如下步骤:
S1:创建gen_ignore_bins方法,在所述gen_ignore_bins方法中声明并构造目标的随机对象;
S2:遍历覆盖组的交叉覆盖点的组合,获得遍历的值;
S3:将所述遍历的值指定赋给待检查的所述随机对象的数据成员;
S4:将预设的参数传递到随机方法中,以将随机约束求解方法当作随机约束的检测器来使用;
S5:调用所述检测器检查所述随机对象中数据成员的值是否符合所述随机约束所约束的合法区间范围值,从而做出相应操作;
S6:重复执行上述步骤S2、步骤S3、步骤S4和步骤S5,直至遍历完所有所述覆盖组的交叉覆盖点的组合。
2.如权利要求1所述随机约束和覆盖组同步方法,其特征在于,若所述数据成员的值符合随机约束所约束的合法区间范围值,所述检查数据将返回1,不做任何操作。
3.如权利要求1或2所述随机约束和覆盖组同步方法,其特征在于,若所述数据成员的值不符合随机约束所约束的合法区间范围值,所述检查数据将返回0,将所述数据成员写入相应的所述覆盖组的交叉队列类型。
4.如权利要求1所述随机约束和覆盖组同步方法,其特征在于,当将所述预设的参数传递到随机方法中时,待检查的所述随机对象不会产生目标随机值。
CN202210086418.3A 2022-01-25 2022-01-25 随机约束和覆盖组同步方法 Pending CN114492258A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210086418.3A CN114492258A (zh) 2022-01-25 2022-01-25 随机约束和覆盖组同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210086418.3A CN114492258A (zh) 2022-01-25 2022-01-25 随机约束和覆盖组同步方法

Publications (1)

Publication Number Publication Date
CN114492258A true CN114492258A (zh) 2022-05-13

Family

ID=81474285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210086418.3A Pending CN114492258A (zh) 2022-01-25 2022-01-25 随机约束和覆盖组同步方法

Country Status (1)

Country Link
CN (1) CN114492258A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115168241A (zh) * 2022-09-08 2022-10-11 济南新语软件科技有限公司 一种基于组合功能覆盖率的测试方法和系统
CN116663492A (zh) * 2023-07-26 2023-08-29 北京云枢创新软件技术有限公司 交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115168241A (zh) * 2022-09-08 2022-10-11 济南新语软件科技有限公司 一种基于组合功能覆盖率的测试方法和系统
CN116663492A (zh) * 2023-07-26 2023-08-29 北京云枢创新软件技术有限公司 交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质
CN116663492B (zh) * 2023-07-26 2023-10-13 北京云枢创新软件技术有限公司 交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质

Similar Documents

Publication Publication Date Title
Raghavan et al. Optimal and near-optimal test sequencing algorithms with realistic test models
JP3441645B2 (ja) フィルタリング型アプローチを使用する組合せ回路の検証方法
CN114492258A (zh) 随机约束和覆盖组同步方法
CN107783758B (zh) 一种智能合约工程方法
CN109522228B (zh) 接口自动化测试数据构造方法、装置、平台及存储介质
CN107966648B (zh) 一种基于相关性矩阵的嵌入式故障诊断方法
CN103970654B (zh) 一种软件可靠性虚拟测试方法
CN116956801B (zh) 芯片验证方法、装置、计算机设备和存储介质
CN109669436A (zh) 一种基于电动汽车的功能需求的测试用例生成方法和装置
US6845440B2 (en) System for preventing memory usage conflicts when generating and merging computer architecture test cases
US20030046608A1 (en) Incremental fault dictionary
Ipate Complete deterministic stream X-machine testing
CN108984397B (zh) 黑盒故障注入方法和系统及介质设备
CN108304330A (zh) 内容提取方法、装置和计算机设备
CN103399816A (zh) 一种数据检查方法及装置
US10769332B2 (en) Automatic simulation failures analysis flow for functional verification
Pham et al. Modular conformance testing and assume-guarantee verification for evolving component-based software
Enand et al. A methodology for validating large knowledge bases
CN115358175B (zh) 电路形式化模型简化方法及系统
CN109635480A (zh) 一种基于制图软件的控制逻辑验证和调试方法
Schmidt et al. Efficient testing framework for simulink models with MTCD and automated test assessments in the context of ISO 26262
McPherson et al. A two-level diagnostic model for digital systems
Mussa et al. Model-based test cases reuse and optimization
Guo et al. Automated test oracle generation via denotational semantics
Chaari et al. Efficient exploration of safety-relevant systems through a link between analysis and simulation

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
CB02 Change of applicant information

Country or region after: China

Address after: 3 / F, 665 Zhangjiang Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant after: Yunhe Zhiwang (Shanghai) Technology Co.,Ltd.

Address before: 311200 room 107, building D, integrated circuit design Industrial Park, No. 858, Jianshe Second Road, Xiaoshan Economic and Technological Development Zone, Xiaoshan District, Hangzhou, Zhejiang Province

Applicant before: Hangzhou yunhezhi Network Technology Co.,Ltd.

Country or region before: China

CB02 Change of applicant information