[发明专利]随机测试程序生成方法和系统以及设计验证方法有效
申请号: | 200910083767.4 | 申请日: | 2009-05-11 |
公开(公告)号: | CN101551749A | 公开(公告)日: | 2009-10-07 |
发明(设计)人: | 王玲;沈海华;李潮激 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F17/50 |
代理公司: | 北京泛华伟业知识产权代理有限公司 | 代理人: | 王 勇;姜 华 |
地址: | 100190北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 随机 测试 程序 生成 方法 系统 以及 设计 验证 | ||
技术领域
本发明涉及微处理器的指令级功能验证,特别涉及一种随机测试程序 生成方法和系统以及相应的设计验证方法。
背景技术
随着设计规模的扩大,尤其是多核技术的发展,控制逻辑越来越复杂, 涉及的状态空间也日益扩大,验证在处理器设计过程中成为非常关键的一 步。指令级验证是当前微处理器验证中广泛采用的方法。
当前生成测试程序的方法主要有人工手写测试程序、约束随机测试生 成以及覆盖率驱动的测试生成。在超大规模集成电路(VLSI)的设计验证 中,约束随机测试生成是最主要的方法,对于那些采用随机难以覆盖到的 功能点,可以采用人工手写测试程序的方法作为辅助。
虽然随机生成的测试程序覆盖面广,可能覆盖到设计和验证人员完全 没有想到的功能角落,但是大量随机生成的测试向量也会造成验证功能点 的重复覆盖,延长验证的收敛时间,降低验证效率,因此需要在产生随机 程序的同时人为加入一些约束,使之尽量不重复,从而更有效、更有针对 性的完成验证任务。
随机测试程序生成的方法和架构从90年代开始逐渐成熟,一般包括 两部分:测试模板文件和随机求解引擎。前者用来描述指令序列,如指令 的种类、变量的约束条件等;后者接受模板文件中提取出来的随机变量和 约束信息,建立一个约束网络,将问题转成一个约束满足问题(CSP: constraint satisfaction problem),求该约束满足问题的均匀分布的随机解。 针对约束求解问题,R.Dechter首先提出了桶消元方法用以计算推理网络 的解空间,该方法不会引入过多的术语,可以用以计算约束满足问题的解 空间。但是尽管桶消元法已经具有较低的内存开销,它也是指数级的,不 能处理规模较大的约束满足问题。因此,降低计数函数的维数成了当务之 急。
Dechter和Emek等人又提出划分小桶的做法来减小时空问题,用多个 维数较小的计数函数来近似表示单个维数较大的计数函数。很明显,小桶 消元法的精确度很大程度上依赖于小桶个数t的取值。实践证明,t越大, 虽然空间复杂度降低,但所需的时间也相应增加,这就意味着需要在时间 和空间中折中。
综上所述,采用现有的约束求解技术生成随机测试程序具有很高的时 空复杂度,迫切需要一种简易、高效地随机测试程序生成方法,其随机变 量所在的约束网络的解空间的均匀度高,程序的冗余度和重复程度低,具 有更高的验证广度和深度。
发明内容
本发明提供一种随机测试程序生成方法和系统,其目的在于提高当前 随机测试程序生成中约束求解的均匀度,提高随机验证的效率。
根据本发明的一个方面,提供了一种随机测试程序生成方法,包括下 列步骤:
1)编写并解析指令模板,并构建约束网络;
2)利用小桶间的相容度计算小桶的计数函数;
3)基于所述计数函数根据所述约束网络来计算随机变量的随机解;
4)利用所述随机解设置指令的操作数,生成由所述指令构成的随机 测试程序。
在该方法中,所述步骤2)包括下列步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910083767.4/2.html,转载请声明来源钻瓜专利网。