利用功能覆盖率负反馈加速uvm验证收敛的方法

文档序号:6639225阅读:2219来源:国知局
利用功能覆盖率负反馈加速uvm验证收敛的方法
【专利摘要】本发明公开利用功能覆盖率负反馈加速UVM验证收敛的方法,属于计算机辅助设计领域,在UVM验证平台中创建与被测对象DUT对应的功能覆盖率检测器,对功能覆盖率进行动态采样,并依据验证平台具体需求对动态采样信息进行分拣,提取有效数据信息,并将此信息传递给激励产生端;激励产生端,UVM的sequence中接收有效数据信息,根据有效数据信息对约束控制进行分组,设置约束开关,方便验证平台依据功能覆盖率动态采样信对约束开关进行控制,动态调整UVM的sequence产生所使用的约束;本发明缩短了UVM验证环境要达到验证收敛所需的激励数量以及验证时间,提高了逻辑代码开发验证的效率。
【专利说明】利用功能覆盖率负反馈加速UVM验证收敛的方法

【技术领域】
[0001] 本发明公开加速UVM验证收敛的方法,属于计算机辅助设计领域,具体地说是利 用功能覆盖率负反馈加速UVM验证收敛的方法。

【背景技术】
[0002] UVM是芯片验证业界最新研发的一种验证方法学。工程师用它可创建坚实、可重 用、具互操作性的验证组件和验证平台。UVM提供基于SystemVerilog语言开发的一套库函 数,工程师通过调用库可以省去自己从零开始开发验证环境的麻烦。
[0003] UVM与System Verilog为验证人员开发面向对象的验证环境提供了方便,也为验 证环境产生受控随机激励提供了方便。受控随机激励不同于以往验证测试所用的特定激 励。发送受控随机激励给被测对象,能够测到很多通过特定激励无法覆盖到的情况,增加错 误被检测出的概率。除了受控随机激励,功能覆盖率也是验证中的重要概念。功能覆盖率 是用来检测测试激励是否覆盖到了测试计划中列出的功能点。当所有列出的功能点都被覆 盖后,就可以认为这个验证已经完成了。但是受控随机激励,可能会产生一些重复的激励, 这对于覆盖率的增加,是没用贡献的,而且会消耗很多的仿真验证时间,因此需要避免这种 重复,为了提高验证覆盖率收敛的速度,本发明公开利用功能覆盖率负反馈加速UVM验证 收敛的方法,让激励产生的行为接收我们的覆盖率目标,自动的提高有效激励的产生量,回 避无效激励的产生,加快UVM验证收敛的速度。


【发明内容】

[0004] 本发明针对现有技术存在的不足和问题,为解决受控随机激励,产生一些重复的 激励,增加覆盖率,而且消耗很多的仿真验证时间的难题,提供利用功能覆盖率负反馈加速 UVM验证收敛的方法。
[0005] 提出的具体方案是: 利用功能覆盖率负反馈加速UVM验证收敛的方法,具体步骤为: 在UVM验证平台中创建与被测对象DUT对应的功能覆盖率检测器,对功能覆盖率进行 动态采样,并依据验证平台具体需求对动态采样信息进行分拣,提取有效数据信息,并将此 信息传递给激励产生端; 激励产生端,UVM的sequence中接收有效数据信息,根据有效数据信息对约束控制进 行分组,设置约束开关,方便验证平台依据功能覆盖率动态采样信对约束开关进行控制,动 态调整UVM的sequence产生所使用的约束,回避无效激励的产生。
[0006] 所述的对约束控制进行分组是将sequence,configuration,testcase中激励的 约束进行上下层次划分。
[0007] 所述的验证平台对约束开关进行控制,通过UVM的config方式实现,具体为指定 一个数据包长度区间,根据这个长度区间定义功能点要求覆盖的长度,根据功能点要求覆 盖的长度定义约束条件,检测功能覆盖率的情况,对下层约束进行开关,避免已经产生的激 励再重复产生。
[0008] 功能覆盖率的代码封装在一个类中,在验证平台顶层传递给uvm_config_db,在需 要控制激励产生的sequence类中,从uvm_config_db中读取这个功能覆盖率代码信息,以 改变约束的开关。
[0009] 为了避免激励的随机性降低,在验证进行时,同时使用具有约束反馈和不具约束 反馈的验证平台进行验证。
[0010] 本发明的有益之处是:本发明利用功能覆盖率负反馈加速UVM验证收敛的方法, 让激励产生的行为接收我们的覆盖率目标,自动的提高有效激励的产生量,回避无效激励 的产生,加快UVM验证收敛的速度,缩短了 UVM验证环境要达到验证收敛所需的激励数量以 及验证时间,提高了逻辑代码开发验证的效率。

【专利附图】

【附图说明】
[0011] 图1是功能覆盖率负反馈的结构框架示意图。

【具体实施方式】
[0012] 下面结合【专利附图】
附图
【附图说明】。
[0013] 如图1,图片左面是UVM验证平台中的被测对象(DUT)。中间部分是环境主体uvm env,其中包括多个实体uvm agent。每个uvm agent中包括序列器sequencer,驱动器 driver,检测器monitor。每个uvm agent通过一个接口跟被测对象连接。序列器负责产生 测试序列,驱动器负责把测试序列转变为信号上面的数据流,并加载到被测对象,检测器负 责把信号上面的数据流转换为序列。虚拟序列器(virtual sequencer)会安排各个子序列 器按一定顺序执行。记分牌(scoreboard)会对每个实体收集到的报文进行记录比较。以 上各个UVM部件都是标准UVM验证环境中不可缺少的。
[0014] 为了实现使用功能覆盖率负反馈控制随机激励的产生,在标准UVM验证框架基础 上,首先创建与被测对象DUT对应的功能覆盖率检测器,此检测器需要实时采样覆盖率,并 传送出去。在激励的广生端,也就是UVM的sequence中,需要及时得知米样率彳目息,动态调 整新发出的激励的约束。两边信息的传递,可以利用UVM中特有的config机制来实现。
[0015] 以下用简单示例来阐明如何实现这种机制。假设我们要发送长度在2到5中间的 数据包,我们定义的功能点要求覆盖所有2到5的整数长度。那么在覆盖率收集模块中的 代码如下所示:

【权利要求】
1. 利用功能覆盖率负反馈加速UVM验证收敛的方法,其特征是具体步骤为: 在UVM验证平台中创建与被测对象DUT对应的功能覆盖率检测器,对功能覆盖率进行 动态采样,并依据验证平台具体需求对动态采样信息进行分炼,提取有效数据信息,并将此 信息传递给激励产生端; 激励产生端,UVM的sequence中接收有效数据信息,根据有效数据信息对约束控制进 行分组,设置约束开关,方便验证平台依据功能覆盖率动态采样信息对约束开关进行控制, 动态调整UVM的sequence产生所使用的约束,回避无效激励的产生。
2. 根据权利要求1所述的利用功能覆盖率负反馈加速UVM验证收敛的方法,其特征是 所述的对约束控制进行分组是将sequence, configuration, testcase中激励的约束进行 上下层次划分。
3. 根据权利要求2所述的利用功能覆盖率负反馈加速UVM验证收敛的方法,其特征是 所述的验证平台对约束开关进行控制,通过UVM的config方式实现,具体为指定一个数据 包长度区间,根据该个长度区间定义功能点要求覆盖的长度,根据功能点要求覆盖的长度 定义约束条件,检测功能覆盖率的情况,对下层约束进行开关,避免已经产生的激励再重复 产生。
4. 根据权利要求3所述的利用功能覆盖率负反馈加速UVM验证收敛的方法,其特征是 功能覆盖率的代码封装在一个类中,在验证平台顶层传递给uvm_conf ig_^,在需要控制激 励产生的sequence类中,从uvm_config_^中读取该个功能覆盖率代码信息,W改变约束 的开关。
5. 根据权利要求1-4任一项所述的利用功能覆盖率负反馈加速UVM验证收敛的方法, 其特征是为了避免激励的随机性降低,在验证进行时,同时使用具有约束反馈和不具约束 反馈的验证平台进行验证。
【文档编号】G06F11/26GK104461813SQ201410790177
【公开日】2015年3月25日 申请日期:2014年12月18日 优先权日:2014年12月18日
【发明者】耿介, 于治楼, 姜凯 申请人:浪潮集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1