一种对覆盖率进行数据挖掘加速验证收敛的方法

文档序号:9911332阅读:592来源:国知局
一种对覆盖率进行数据挖掘加速验证收敛的方法
【技术领域】
[0001] 本发明涉及芯片逻辑验证领域,具体地说是一种实用性强、对覆盖率进行数据挖 掘加速验证收敛的方法。
【背景技术】
[0002] 伴随芯片设计复杂度的增加,芯片验证的复杂度更是大幅度提高,传统的人工开 发直接测试用例的方法,也被受控随机测试用例取代。受控随机测试根据输入的限定条件, 在有限范围内自动产生各种随机组合,更容易发现逻辑设计的缺陷。大部分时候受控随机 激励与人工编写的直接激励结合使用,能够大概验证覆盖率的目标。现有技术芯片逻辑验 证过程中,首先确定受控随机测试的约束条件,在此条件下用多个随机数种子产生不同的 激励,运行这些激励得到相应覆盖率信息,通过这些信息确认未被覆盖的测试漏洞,然后针 对这些漏洞,调整约束条件,或者增加直接测试用例。经过多轮迭代最终达到覆盖率目标。
[0003] 以上过程对于小规模设计,可能几个迭代就能完成,但是大规模设计可能很多轮 迭代后,仍然会有验证漏洞的存在。这种迭代过程是一费时而且需要验证人员进行人工干 预的过程,如何有效调整约束条件使验证尽快收敛,需要工程师对设计验证的内容相当熟 悉,并且洞悉其中的各种规律。
[0004] 为了有效的加速以上迭代过程,我们需要一种方法,对覆盖率以及激励产生机制 进行数据分析,找出其中的相关规律,然后优化激励产生机制。

【发明内容】

[0005] 本发明的技术任务是针对以上不足之处,提供一种实用性强、对覆盖率进行数据 挖掘加速验证收敛的方法。
[0006] -种对覆盖率进行数据挖掘加速验证收敛的方法,其实现过程为:通过对验证覆 盖率的数据进行时域分析以及与激励相关性的分析,对激励产生机制进行优化调整,使激 励能更有效命中验证点,加速验证的收敛。
[0007] 其具体实现过程为:
[0008] 步骤一、首先产生测试激励,所述测试激励由指令集中的各种指令自由组合生成, 该指令集中的指令包括跳转指令、寄存器传输指令、运算指令三类;
[0009]步骤二、对覆盖率的时域行为进行分析,该覆盖率是指在仿真过程中不断被触发 时的重复触发率,该步骤通过仿真软件记录每个验证点在仿真周期内的触发次数实现,所 述验证点包括基本功能点、特殊情况功能点、错误处理功能点;
[0010] 步骤三、对验证点与指令集子集的相关性进行分析,计算出指令集子集的权重与 指定验证点被命中的线性相关性,得到指定验证点被触发对应的仿真时间的分布以及对应 的备选指令的权重,并以此为依据进行优化,使得在更少的时间内,得到更大的验证覆盖 率。
[0011] 测试激励的产生过程为:每个指令都被归类在指令集的三种指令中,每次仿真时, 都会产生一个随机数T来限定这次仿真所执行的指令的个数;每次产生三个随机数pl、p2、 P3,指定这三类指令分别占总指令数的比重,同时指定每个指令占相应指令种类的比重,然 后将所有抽取的指令随机排列,生成一个随机测试程序,让mcu去执行,形成测试激励。
[0012] 所述mcu 为 8 位mcu。
[0013] 对覆盖率的时域行为进行分析的具体实现过程为:
[0014] 通过仿真将仿真时间,即周期数内验证点被触发的次数记录下来,通过调整T的最 大值来降低无用仿真周期,针对每个单独的验证点,分析它的时域分布特性。
[0015]对验证点与指令集子集的相关性进行分析的具体过程为:
[0016]在一个固定的仿真周期数内,设定不同的指令比重pi、p2、p3,查看指定验证点被 触发到的概率q,计算指令集子集的权重与指定验证点被命中的线性相关性,计算公式如下 所示:
[0017] 其中X表示权重p,y表示命中概率q,计算 ,. 所得的相关性为0说明两者没有相关性,为正数说明增大其中一个,则另一增加。
[0018] 对激励产生机制的优化针对全部验证点或部分验证点,该优化包括激励产生的优 化和验证点的激励优化,其具体优化内容包括每次仿真的时间周期最大值以及指令权重参 数。
[0019] 对整个验证的激励产生进行优化的具体过程为:
[0020] 调整仿真周期最大值为所有验证点的80%均被首次触发的时间;
[0021] 调整各个指令权重值,使得所有权重P与所有命中概率q的相关系数的均方根最 小。
[0022]对验证点的激励进行优化的具体过程为:
[0023]调整仿真周期最大值为此类验证点被首次触发的时间的10倍;
[0024]调整各个指令权重值,使得所有权重pi、p2、p3与此验证点命中概率q的相关系数 全为0。
[0025]本发明的一种对覆盖率进行数据挖掘加速验证收敛的方法,具有以下优点:
[0026]本发明通过对验证覆盖率的数据进行时域分析以及与激励相关性的分析,对激励 产生机制进行优化调整,使激励能更有效命中验证点,加速验证的收敛。本方法能极大提高 逻辑验证的效率,缩短芯片开发周期,实用性高,易于推广。
【附图说明】
[0027]附图1为本发明中基本激励与验证点的分类示意图。
[0028] 附图2为验证点被触发的时间分布图。
[0029] 附图3为验证点被首次触发和重复触发的时间分布对照图。
【具体实施方式】
[0030]下面结合附图和具体实施例对本发明作进一步说明。
[0031 ]本发明提供一种对覆盖率进行数据挖掘加速验证收敛的方法,如附图1所示,其实 现过程为:通过对验证覆盖率的数据进行时域分析以及与激励相关性的分析,对激励产生 机制进行优化调整,使激励能更有效命中验证点,加速验证的收敛。
[0032] 其具体实现过程为:
[0033] 步骤一、首先产生测试激励,所述测试激励由指令集中的各种指令自由组合生成, 该指令集中的指令包括跳转指令、寄存器传输指令、运算指令三类;
[0034] 步骤二、对覆盖率的时域行为进行分析,该覆盖率是指在仿真过程中不断被触发 时的重复触发率,该步骤通过仿真软件记录每个验证点在仿真周期内的触发次数实现,所 述验证点包括基本功能点、特殊情况功能点、错误处理功能点,其中特殊情况功能点是指边 界条件,即极端应用时的功能点,比如带宽阈值等;对这些进行分类是为了做验证功能点与 激励产生相关性的数据分析;
[0035]步骤三、对验证点与指令集子集的相关性进行分析,计算出指令集子集的权重与 指定验证点被命中的线性相关性,得到指定验证点被触发对应的仿真时间的分布以及对应 的备选指令的权重,并以此为依据进行优化,使得在更少的时间内,得到更大的验证覆盖 率。
[0036] 测试激励的产生过程为:每个指令都被归类在指令集的三种指令中,每次仿真时, 都会产生一个随机数T来限定这次仿真所执行的指令的个数;每次产生三个随机数pl、p2、 P3,指定这三类指令分别占总指令数的比重,同时指定每个指令占相应指令种类的比重,然 后将所有抽取的指令随机排列,生成一个随机测试程序,让mcu去执行,形成测试激励。
[0037] 所述mcu 为8 位mcu。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1