面向高速缓冲存储器的可综合伪随机验证方法及装置制造方法及图纸

技术编号:8801025 阅读:196 留言:0更新日期:2013-06-13 05:43
本发明专利技术公开了一种面向高速缓冲存储器的可综合伪随机验证方法及装置,方法步骤如下:1)建立数据镜像模块并初始化;2)生成伪随机数,构造访存控制数据信号并发送到高速缓冲存储器,同时启动超时计数器并在超时后报告超时错误;当收到高速缓冲存储器返回的读数据及其读识别号(ID)时,将返回的读数据和数据镜像模块比较,判断高速缓冲存储器的访问是否出错,同时判断是否发生读ID错、是否发生纠错码校验错;装置包括数据镜像模块、伪随机数产生器、约束指导测试激励生成模块和错误自动检查模块。本发明专利技术具有验证效率高、验证覆盖率高、验证质量好的优点。

【技术实现步骤摘要】

本专利技术涉及高速缓冲存储器(Cache)涉及领域,具体涉及一种面向高速缓冲存储器的可综合伪随机验证方法及装置
技术介绍
随着超深亚微米与超大规模集成电路(Very Large Scale Integration, VLSI)的设计技术飞速发展,工艺的特征尺寸越来越小,芯片的规模越来越大,复杂度越来越高,设计周期也越来越长,其中大量的时间消耗在芯片的功能验证上。所谓功能验证是指无论是行为级、寄存器传输(Register Transition Level,RTL)级还是门级电路都要满足系统规范,其目的是发现芯片逻辑设计中的错误。业界普遍的观点认为,功能验证大约已经占到整个芯片设计周期的70%。形式验证、软件模拟与硬件仿真验证是目前最常采用的功能验证方法。形式验证能够达到100%的覆盖率,但存在状态爆炸问题,导致所验证的设计规模有限;软件模拟验证方法虽然易于查错,但是由于速度慢,当设计规模达到数百万门级甚至到数千万门级时,模拟运行时间开销很大,难以达到较高的覆盖率。而硬件仿真验证中最常用的是基于FPGA (Field Programmable Gate Array)的仿真,具有运行速度块,通常比软件模拟快多个数量级,易达到较高的覆盖率,其不足之处是查错较为困难,测试激励必须是可综合的。因此,当需要提高验证效率与验证覆盖率时,通常会采用硬件仿真验证方法。高速缓冲存储器(Cache)是微处理器中的关键部件,用于缓解主存与处理器之间性能的不匹配。根据测试激励,可以将Cache验证分为定向验证方法与随机验证方法。Cache验证目前主要面临三个问题:.第一是庞大的验证空间,Cache部件的设计规模与设计复杂度非常大,需要验证的空间也很巨大,如果采用定向测试,让测试人员编写如此巨大数量的测试向量也是难以完成,并且测试代码的正确性也无法保证;.第二是验证结果的正确性检查,由于Cache功能非常复杂,输入的测试向量规模也很庞大,得到的输出结果可能也是测试人员无法预料的,如果人为检查运行结果,费时费力,且易于出错,因此迫切需要一种自动化的正确性检查方法; 第三是验证覆盖率的提高,如果采用定向测试,需要针对每个需要测试的功能点都编写测试激励,耗时 长且难度很大,而且很多复杂的组合条件可能人为是无法预测的,因此定向测试难以达到一个较高的覆盖率。而采用随机验证方法能够较好地解决上述三个问题,可能覆盖到设计与验证人员无法想到的功能边界,生成的测试向量的规模和长度都灵活可控,更好地实现了验证的完备性与充分性。但是完全随机的测试激励也可能会造成验证功能点的重复覆盖,并且一些无谓的重复验证只能减缓功能验证的收敛时间,降低验证的效率。随机测试生成技术是当前超大规模集成电路验证流程中的重要支撑技术,而随机验证方法是目前该领域的研究热点,因此国内外很多专家学者都对此展开了深入研究:.2000 年,Patrick Girard 与 Christian Landrault 等面向芯片测试中的stuck-at错与bridging错,深入分析与比较了随机与伪随机测试向量的产生方法的优劣。.2002年,Mike Bartley等通过对两个片上总线桥接控制器的验证,比较了定向验证方法、伪随机验证方法与形式化验证方法,在具体验证过程中,伪随机验证方法发现22个错误,形式化验证方法查出18个错误,而定向验证方法发现14个错误。.2003年,Liang zhongshu等构造了一种测试激励产生器,它可以产生五种不同模式的随机激励,用于验证嵌入式微处理器。.2008年,Prabhat Mishra与Nikil Dutt提出了一种设计规范驱动的测试激励生成方法,以减少测试激励的生成时间。.2012年,Qin Xiaoke等通过分析与划分全局有限状态机的状态空间结构,提出了一种高效的测试激励自动产生技术,用于Cache —致性协议的验证,通过实验表明,该方法能够将生成的测试序列的尺寸减少50%。国内的学者也在该领域展开了深入研究,取得了很多卓有成效的研究成果:.2005年,李金娜与袁爱东等采用伪随机验证方法对多Cache —致性进行正确性验证。.2006年,张蓓莉提出了一种基于功能覆盖率的伪随机验证方法,该方法能够根据功能覆盖率的反馈自动生成测试向量。.2008年,吴列治与张盛兵等针对微处理器的验证,提出了一种以功能覆盖率为参考条件的动态伪随机验证方法。.2008年,张振军与毛志刚提出一种以伪随机算法为主自动产生测试向量,从而提高验证效率与完备性的方法。.2009年,沈海华与王朋宇等将遗传算法应用在覆盖率反馈驱动的随机测试方法中,提高了验证的自动化程度。.2010年,孟庆东与陈佳佳等采用基于约束的随机功能验证方法,对IP核的功能进行了验证。*2010年,张欣与黄凯等提出一种基于分层思想的受限随机激励产生方法,实现随机激励在不同粒度范围的可控性。.2011年,李拓等提出一种引入基于朴素贝叶斯模型的机器学习来完善覆盖率驱动的随机验证方法,并用于Cache —致性协议的验证。上述方法都采用了伪随机方法对设计进行验证,但是,上述方法都是基于软件模拟技术,其优点是易于查错,并且易于分析覆盖率,但是其缺点是运行速度慢,时间开销很大,验证的效率与覆盖率都有限,难以弥合庞大的验证空间与验证能力之间的差距,无法满足规模不断增加的高速缓冲存储器芯片验证需求。
技术实现思路
本专利技术要解决的技术问题是提供一种验证效率高、验证覆盖率高、验证质量好的面向高速缓冲存储器的可综合伪随机验证方法及装置。为了解决上述技术问题,本专利技术采用的技术方案为:—种面向高速缓冲存储器的可综合伪随机验证方法,其实施步骤如下:I)预先建立与高速缓冲存储器进行同步写操作的数据镜像模块,对所述数据镜像模块进行初始化,然后跳转执行下一步;2)生成伪随机数,从伪随机数中取出相应的位域,构造对高速缓冲存储器进行读操作或者写操作的访存控制数据信号,如果所述访存控制数据信号是写操作,则直接将访存控制数据信号发送到高速缓冲存储器,并更新数据镜像模块;如果所述访存控制数据信号是读操作,则产生读识别号,并将访存地址信号和读识别号存入读识别号列表,然后将访存控制数据信号和读识别号发送到高速缓冲存储器,同时启动该读识别号的超时计数器,直到携带该读识别号的读数据返回或者超时计数器溢出,如果超时计数器溢出,则报告超时错误;当收到高速缓冲存储器返回的读数据及其读识别号时,将读识别号的超时计数器清0,从读识别号列表中匹配出访存地址,从数据镜像模块的相同访存地址读取相应的数据,将两份读数据进行比较,从而判断高速缓冲存储器的读数据是否出错,同时根据返回的读识别号是否在读识别号列表中判断是否发生读识别号错,根据返回的读数据进行ECC校验判断是否发生ECC校验错。作为本专利技术面向高速缓冲存储器的可综合伪随机验证方法的进一步改进:所述步骤2)中生成伪随机数的详细步骤如下:2.1)输入时钟信号、复位信号、使能信号、种子信号,在每个时钟周期的上升沿,跳转执行下一步;2.2)判断复位信号是否有效,当复位信号有效时,将64位的种子信号作为生成的伪随机数输出;否则等待使能信号变为有效,当使能信号有效时跳转执行下一步;2.3)将前一个时钟周期输出的伪随机数的第6本文档来自技高网
...

【技术保护点】
一种面向高速缓冲存储器的可综合伪随机验证方法,其特征在于实施步骤如下:1)预先建立与高速缓冲存储器进行同步写操作的数据镜像模块,对所述数据镜像模块进行初始化,然后跳转执行下一步;2)生成伪随机数,从伪随机数中取出相应的位域,构造对高速缓冲存储器进行读操作或者写操作的访存控制数据信号,如果所述访存控制数据信号是写操作,则直接将访存控制数据信号发送到高速缓冲存储器,并更新数据镜像模块;如果所述访存控制数据信号是读操作,则产生读识别号,并将访存地址信号和读识别号存入读识别号列表,然后将访存控制数据信号和读识别号发送到高速缓冲存储器,同时启动该读识别号的超时计数器,直到携带该读识别号的读数据返回或者超时计数器溢出,如果超时计数器溢出,则报告超时错误;当收到高速缓冲存储器返回的读数据及其读识别号时,将读识别号的超时计数器清0,从读识别号列表中匹配出访存地址,从数据镜像模块的相同访存地址读取相应的数据,将两份读数据进行比较,从而判断高速缓冲存储器的读数据是否出错,同时根据返回的读识别号是否在读识别号列表中判断是否发生读识别号错,根据返回的读数据进行ECC校验判断是否发生ECC校验错。

【技术特征摘要】
1.一种面向高速缓冲存储器的可综合伪随机验证方法,其特征在于实施步骤如下: 1)预先建立与高速缓冲存储器进行同步写操作的数据镜像模块,对所述数据镜像模块进行初始化,然后跳转执行下一步; 2)生成伪随机数,从伪随机数中取出相应的位域,构造对高速缓冲存储器进行读操作或者写操作的访存控制数据信号,如果所述访存控制数据信号是写操作,则直接将访存控制数据信号发送到高速缓冲存储器,并更新数据镜像模块;如果所述访存控制数据信号是读操作,则产生读识别号,并将访存地址信号和读识别号存入读识别号列表,然后将访存控制数据信号和读识别号发送到高速缓冲存储器,同时启动该读识别号的超时计数器,直到携带该读识别号的读数据返回或者超时计数器溢出,如果超时计数器溢出,则报告超时错误;当收到高速缓冲存储器返回的读数据及其读识别号时,将读识别号的超时计数器清O,从读识别号列表中匹配出访存地址,从数据镜像模块的相同访存地址读取相应的数据,将两份读数据进行比较,从而判断高速缓冲存储器的读数据是否出错,同时根据返回的读识别号是否在读识别号列表中判断是否发生读识别号错,根据返回的读数据进行ECC校验判断是否发生ECC校验错。2.根据权利要求1所述的面向高速缓冲存储器的可综合伪随机验证方法,其特征在于,所述步骤2)中生成伪随机数的详细步骤如下: 2.1)输入时钟信号、复位信号、使能信号、种子信号,在每个时钟周期的上升沿,跳转执行下一步; 2.2)判断复位信号是否有效,当复位信号有效时,将64位的种子信号作为生成的伪随机数输出;否则等待使能信号变为有效,当使能信号有效时跳转执行下一步; 2.3)将前一个时钟周期输出的伪随机数的第63位和第64位进行异或操作,产生新伪随机数的第64位,将前一个时钟周期输出的伪随机数的第61位和第64位进行异或操作,产生新伪随机数的第62位,将前一个时钟周期输出的伪随机数的第60位和第64位进行异或操作,产生新伪随机数的第61位,除上述三位之外,新伪随机数的其它每一位都是通过前一个时钟周期输出的伪随机数的上一位通过循环移位得到,最终将新伪随机数作为生成的伪随机数输出。3.根据权利要求2所述的面向高速缓冲存储器的可综合伪随机验证方法,其特征在于,所述步骤2)中从伪随机数中取出相应的位域,构造访存控制数据信号的详细步骤如下:从伪随机数中取出最低η位作为写数据信号;从伪随机数中取出相邻所述最低η位的次低m位作为访存地址信号,其中m满足Ot=T1g2Zl-H是向上取整操作符,表示取大于log2d的最小整数,d为数据镜 像模块的深度;从伪随机数中取出最高位作为进行读操作或者写操作的操作类型信号;如果所述操作类型信号为读操作,则将访存地址信号和操作类型信号作为发往高速缓冲存储器的访存控制数据信号;如果所述操作类型信号为写操作,则将写数据信号、访存地址信号和操作类型信号作为发往高速缓冲存储器的访存控制数据信号。4.根据权利要求1或2或3所述的面向高速缓冲存储器的可综合伪随机验证方法,其特征在于:所述步骤I)和步骤2)均基于FPGA硬件仿真实现。5.一种面向高速...

【专利技术属性】
技术研发人员:张建民罗章徐金波董德尊赖明澈陆平静黎铁军王绍刚徐炜遐肖立权庞征斌王克非夏军童元满陈虎张峻齐星云王桂彬常俊胜
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1