CN103150228B - 面向高速缓冲存储器的可综合伪随机验证方法及装置 - Google Patents

面向高速缓冲存储器的可综合伪随机验证方法及装置 Download PDF

Info

Publication number
CN103150228B
CN103150228B CN201310057006.8A CN201310057006A CN103150228B CN 103150228 B CN103150228 B CN 103150228B CN 201310057006 A CN201310057006 A CN 201310057006A CN 103150228 B CN103150228 B CN 103150228B
Authority
CN
China
Prior art keywords
signal
random number
read
pseudo random
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.)
Active
Application number
CN201310057006.8A
Other languages
English (en)
Other versions
CN103150228A (zh
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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201310057006.8A priority Critical patent/CN103150228B/zh
Publication of CN103150228A publication Critical patent/CN103150228A/zh
Application granted granted Critical
Publication of CN103150228B publication Critical patent/CN103150228B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

面向高速缓冲存储器的可综合伪随机验证方法及装置
技术领域
本发明涉及高速缓冲存储器(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一致性协议的验证。
上述方法都采用了伪随机方法对设计进行验证,但是,上述方法都是基于软件模拟技术,其优点是易于查错,并且易于分析覆盖率,但是其缺点是运行速度慢,时间开销很大,验证的效率与覆盖率都有限,难以弥合庞大的验证空间与验证能力之间的差距,无法满足规模不断增加的高速缓冲存储器芯片验证需求。
发明内容
本发明要解决的技术问题是提供一种验证效率高、验证覆盖率高、验证质量好的面向高速缓冲存储器的可综合伪随机验证方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向高速缓冲存储器的可综合伪随机验证方法,其实施步骤如下:
1)预先建立与高速缓冲存储器进行同步写操作的数据镜像模块,对所述数据镜像模块进行初始化,然后跳转执行下一步;
2)生成伪随机数,从伪随机数中取出相应的位域,构造对高速缓冲存储器进行读操作或者写操作的访存控制数据信号,如果所述访存控制数据信号是写操作,则直接将访存控制数据信号发送到高速缓冲存储器,并更新数据镜像模块;如果所述访存控制数据信号是读操作,则产生读识别号,并将访存地址信号和读识别号存入读识别号列表,然后将访存控制数据信号和读识别号发送到高速缓冲存储器,同时启动该读识别号的超时计数器,直到携带该读识别号的读数据返回或者超时计数器溢出,如果超时计数器溢出,则报告超时错误;当收到高速缓冲存储器返回的读数据及其读识别号时,将读识别号的超时计数器清0,从读识别号列表中匹配出访存地址,从数据镜像模块的相同访存地址读取相应的数据,将两份读数据进行比较,从而判断高速缓冲存储器的读数据是否出错,同时根据返回的读识别号是否在读识别号列表中判断是否发生读识别号错,根据返回的读数据进行ECC校验判断是否发生ECC校验错。
作为本发明面向高速缓冲存储器的可综合伪随机验证方法的进一步改进:
所述步骤2)中生成伪随机数的详细步骤如下:
2.1)输入时钟信号、复位信号、使能信号、种子信号,在每个时钟周期的上升沿,跳转执行下一步;
2.2)判断复位信号是否有效,当复位信号有效时,将64位的种子信号作为生成的伪随机数输出;否则等待使能信号变为有效,当使能信号有效时跳转执行下一步;
2.3)将前一个时钟周期输出的伪随机数的第63位和第64位进行异或操作,产生新伪随机数的第64位,将前一个时钟周期输出的伪随机数的第61位和第64位进行异或操作,产生新伪随机数的第62位,将前一个时钟周期输出的伪随机数的第60位和第64位进行异或操作,产生新伪随机数的第61位,除上述三位之外,新伪随机数的其它每一位都是通过前一个时钟周期输出的伪随机数的上一位通过循环移位得到,最终将新伪随机数作为生成的伪随机数输出。
所述步骤2)中从伪随机数中取出相应的位域构造访存控制数据信号的详细步骤如下:从伪随机数中取出最低n位作为写数据信号;从伪随机数中取出相邻所述最低n位的次低m位作为访存地址信号,其中m满足
Figure BDA00002851561100042
是向上取整操作符,表示取大于log2d的最小整数,d为数据镜像模块的深度;从伪随机数中取出最高位作为进行读操作或者写操作的操作类型信号;如果所述操作类型信号为读操作,则将访存地址信号和操作类型信号作为发往高速缓冲存储器的访存控制数据信号;如果所述操作类型信号为写操作,则将写数据信号、访存地址信号和操作类型信号作为发往高速缓冲存储器的访存控制数据信号。
所述步骤1)和步骤2)均基于FPGA硬件仿真实现。
本发明还提供一种面向高速缓冲存储器的可综合伪随机验证装置,包括:
数据镜像模块,用于与高速缓冲存储器进行同步写操作;
伪随机数产生器,用于生成伪随机数;
约束指导测试激励生成模块,用于数据镜像模块进行初始化,从伪随机数中取出相应的位域构造访存控制数据信号,如果访存控制数据信号是写操作,则直接将访存控制数据信号发送到高速缓冲存储器并更新数据镜像模块;如果访存控制数据信号是读操作,则产生读识别号,并将访存地址信号和读识别号存入读识别号列表,然后将访存控制数据信号和读识别号发送到高速缓冲存储器,同时启动该读识别号的超时计数器,直到携带该读识别号的读数据返回或者超时计数器溢出,如果超时计数器溢出则报告超时错误;
错误自动检查模块,用于当收到高速缓冲存储器返回的读数据及其读识别号时,将读识别号的超时计数器清0,从读识别号列表中匹配出访存地址,从数据镜像模块的相同访存地址读取相应的数据,将两份读数据进行比较从而判断高速缓冲存储器返回的读数据是否出错,同时根据返回的读识别号是否在读识别号列表中判断是否发生读识别号错、根据返回的读数据进行ECC校验判断是否发生ECC校验错。
作为本发明面向高速缓冲存储器的可综合伪随机验证装置的进一步改进:
所述伪随机数产生器为64位PRBS伪随机数产生器,所述64位PRBS伪随机数产生器的输入信号包括时钟信号、复位信号、使能信号、种子信号;所述64位PRBS伪随机数产生器在时钟信号的上升沿时判断复位信号是否有效,当复位信号有效时,将64位的种子信号作为生成的伪随机数输出;否则等待使能信号变为有效,当使能信号有效时将前一个时钟周期输出的伪随机数的第63位和第64位进行异或操作,产生新伪随机数的第64位,将前一个时钟周期输出的伪随机数的第61位和第64位进行异或操作,产生新伪随机数的第62位,将前一个时钟周期输出的伪随机数的第60位和第64位进行异或操作,产生新伪随机数的第61位,除上述三位之外,新伪随机数的其它每一位都是通过前一个时钟周期输出的伪随机数的上一位通过循环移位得到,最终将新伪随机数作为生成的伪随机数输出。
所述约束指导测试激励生成模块从伪随机数中取出相应的位域构造访存控制数据信号的详细步骤如下:从伪随机数中取出最低n位作为写数据信号;从伪随机数中取出相邻所述最低n位的次低m位作为访存地址信号,其中m满足
Figure BDA00002851561100051
Figure BDA00002851561100052
是向上取整操作符,表示取大于log2d的最小整数,d为数据镜像模块的深度;从伪随机数中取出最高位作为进行读操作或者写操作的操作类型信号;如果所述操作类型信号为读操作,则将访存地址信号和操作类型信号作为发往高速缓冲存储器的访存控制数据信号;如果所述操作类型信号为写操作,则将写数据信号、访存地址信号和操作类型信号作为发往高速缓冲存储器的访存控制数据信号。
所述数据镜像模块、伪随机数产生器、约束指导测试激励生成模块、错误自动检查模块均基于FPGA硬件仿真实现。
本发明面向高速缓冲存储器的可综合伪随机验证方法具有下述优点:
1.本发明面向高速缓冲存储器的可综合伪随机验证方法通过生成伪随机数,从伪随机数中取出相应的位域构造访存控制数据信号,通过访存控制数据信号操作高速缓冲存储器,并对数据镜像模块同步写操作,当收到高速缓冲存储器返回的读数据及其读识别号时,将读识别号的超时计数器清0,从数据镜像模块的相同读取地址读取相应的数据,将两份读数据进行比较,从而判断高速缓冲存储器返回的读数据是否出错,同时根据返回的读识别号是否在读识别号列表中判断是否发生读识别号错、根据返回的读数据进行ECC校验判断是否发生ECC校验错,实现了约束指导的测试激励生成与伪随机数产生,能够高效地产生伪随机测试激励,并通过特定的功能覆盖等约束指导随机测试向量的产生,约束指导的随机验证方法能够生成更符合实际需求的测试激励,覆盖到更多的、人为难以预测的组合条件与边界情况,从而提高验证的覆盖率,加快验证收敛的速度,更好地保证芯片的正确性,具有验证效率高、验证覆盖率高、验证质量好的优点。
2.本发明通过数据镜像模块实现了错误自动检测,在数据镜像模块中维护一个与高速缓冲存储器中数据完全相同的存储器,当接收到高速缓冲存储器返回的数据时,与镜像模块的内容进行比较;同时进行超时判断,检测高速缓冲存储器出现丢失请求问题,这样在验证进程中,同步地自动进行错误检查,并且实时地报告错误,错误检测简单灵活,而且检测速度快。
3.本发明步骤1)和步骤2)均基于FPGA硬件仿真实现,能够直接在FPGA等可编程逻辑器件中综合、布局布线,将FPGA硬件仿真流程融合到本发明的验证方法中,从而大幅提高验证效率,满足规模不断增加的芯片的验证需求。
本发明面向高速缓冲存储器的可综合伪随机验证装置为本发明面向高速缓冲存储器的可综合伪随机验证方法对应的装置,因此也具有与本发明面向高速缓冲存储器的可综合伪随机验证方法相同的技术效果,在此不再赘述。
附图说明
图1为本发明实施例的方法流程示意图。
图2为本发明实施例的装置框架结构示意图。
图3为本发明实施例中的伪随机数产生器的实现逻辑示意图。
图4为本发明实施例中的约束指导测试激励生成模块的有限状态机。
具体实施方式
如图1所示,本实施例面向高速缓冲存储器的可综合伪随机验证方法的实施步骤如下:
1)预先建立与高速缓冲存储器进行同步写操作的数据镜像模块,对所述数据镜像模块进行初始化,然后跳转执行下一步;
2)生成伪随机数,从伪随机数中取出相应的位域,构造对高速缓冲存储器进行读操作或者写操作的访存控制数据信号,如果所述访存控制数据信号是写操作,则直接将访存控制数据信号发送到高速缓冲存储器,并更新数据镜像模块;如果所述访存控制数据信号是读操作,则产生读识别号(读ID号),并将访存地址信号和读ID号存入读识别号列表(读ID列表),然后将访存控制数据信号和读ID号发送到高速缓冲存储器,同时启动该读识别号的超时计数器,直到携带该读识别号的读数据返回或者超时计数器溢出,如果超时计数器溢出,则报告超时错误;当收到高速缓冲存储器返回的读数据及其读识别号时,将读识别号的超时计数器清0,从读识别号列表中匹配出访存地址,从数据镜像模块的相同访存地址读取相应的数据,将两份读数据进行比较,从而判断高速缓冲存储器的读数据是否出错,同时根据返回的读识别号是否在读识别号列表中判断是否发生读识别号错,根据返回的读数据进行ECC校验判断是否发生ECC校验错。
本实施例中,步骤2)中生成伪随机数的详细步骤如下:
2.1)输入时钟信号、复位信号、使能信号、种子信号,在每个时钟周期的上升沿,跳转执行下一步;
2.2)判断复位信号是否有效,当复位信号有效时,将64位的种子信号作为生成的伪随机数输出;否则等待使能信号变为有效,当使能信号有效时跳转执行下一步;
2.3)将前一个时钟周期输出的伪随机数的第63位和第64位进行异或操作,产生新伪随机数的第64位,将前一个时钟周期输出的伪随机数的第61位和第64位进行异或操作,产生新伪随机数的第62位,将前一个时钟周期输出的伪随机数的第60位和第64位进行异或操作,产生新伪随机数的第61位,除上述三位之外,新伪随机数的其它每一位都是通过前一个时钟周期输出的伪随机数的上一位通过循环移位得到,最终将新伪随机数作为生成的伪随机数输出。
本实施例中,步骤2)中从伪随机数中取出相应的位域构造访存控制数据信号的详细步骤如下:从伪随机数中取出最低n位作为写数据信号;从伪随机数中取出相邻最低n位的次低m位作为访存地址信号,其中m满足
Figure BDA00002851561100071
Figure BDA00002851561100072
是向上取整操作符,表示取大于log2d的最小整数,d为数据镜像模块的深度;从伪随机数中取出最高位作为进行读操作或者写操作的操作类型信号;如果操作类型信号为读操作,则将访存地址信号和操作类型信号作为发往高速缓冲存储器的访存控制数据信号;如果操作类型信号为写操作,则将写数据信号、访存地址信号和操作类型信号作为发往高速缓冲存储器的访存控制数据信号。
本实施例中,步骤1)和步骤2)均基于FPGA硬件仿真实现,能够大幅提高验证效率,能够弥合庞大的验证空间与验证能力之间的差距、满足规模不断增加的芯片的验证需求。
如图2所示,本实施例面向高速缓冲存储器的可综合伪随机验证装置包括:
数据镜像模块,用于与高速缓冲存储器进行同步写操作;
伪随机数产生器,用于生成伪随机数;
约束指导测试激励生成模块,用于数据镜像模块进行初始化,从伪随机数中取出相应的位域构造访存控制数据信号,如果访存控制数据信号是写操作,则直接将访存控制数据信号发送到高速缓冲存储器并更新数据镜像模块;如果访存控制数据信号是读操作,则产生读ID号,并将访存地址信号和读ID号存入读ID号列表,然后将访存控制数据信号和读ID号发送到高速缓冲存储器,同时启动该读ID号的超时计数器,直到携带该读ID号的读数据返回或者超时计数器溢出,如果超时计数器溢出则报告超时错误;
错误自动检查模块,用于当收到高速缓冲存储器返回的读数据及其读ID号时,将读ID号的超时计数器清0,从读ID号列表中匹配出访存地址,从数据镜像模块的相同访存地址读取相应的数据,将两份读数据进行比较从而判断高速缓冲存储器返回的读数据是否出错,同时根据返回的读ID号是否在读ID号列表中判断是否发生读ID号错、根据返回的读数据进行ECC校验判断是否发生ECC校验错。
数据镜像模块用于存储发往Cache部件的写数据,对于发送到Cache模块的每次写操作,都会在数据镜像中存储器的同一地址内进行写操作,以保证数据的一致性。数据镜像模块主要是由存储器及其读写逻辑构成,而存储器的容量取决于FPGA器件的存储资源。当数据镜像模块接收到约束指导测试激励生成模块发送的初始化启动信号后,检测到写使能为1时,根据写地址信号,将写数据写入到存储器对应的位置;当所有存储单元都完成写操作后,返回初始化完成信号。当数据镜像模块检测到读使能信号为1时,根据读地址信号,将存储器中对应位置的数据读出,发送到错误自动检查模块。
约束指导测试激励生成模块是主控逻辑,首先产生启动信号,控制数据镜像进行初始化,当数据镜像模块返回初始化完成的信号后,发送完成信号;而后发送使能信号与种子信号到伪随机产生器,并接收产生的伪随机数;而后根据Cache的访问接口,将伪随机数转换为操作类型、访问地址、写数据信号,并且从读ID队列中取出未使用的读ID信号,一起发送到Cache;当检测到Cache发送的数据有效为1时,接收Cache返回的读数据与读ID信号,并令比较使能信号为1,将读数据发送到错误自动检查模块;同时向数据镜像模块发送读使能信号与读地址信号。错误自动检查模块检测到比较使能信号为1时,将来自约束指导测试激励生成模块的Cache返回数据,与接收到的数据镜像的存储器中读出同一地址的内容,进行比较,从而自动地判断Cache读数据的正确性;并且根据计数器是否超出预设的阈值,判断访问Cache是否超时;最终将错误与超时信号返回给约束指导测试激励生成模块。
本实施例中,伪随机数产生器为64位PRBS伪随机数产生器,64位PRBS伪随机数产生器的输入信号包括时钟信号、复位信号、使能信号、种子信号;64位PRBS伪随机数产生器在时钟信号的上升沿时判断复位信号是否有效,当复位信号有效时,将64位的种子信号作为生成的伪随机数输出;否则等待使能信号变为有效,当使能信号有效时将前一个时钟周期输出的伪随机数的第63位和第64位进行异或操作,产生新伪随机数的第64位,将前一个时钟周期输出的伪随机数的第61位和第64位进行异或操作,产生新伪随机数的第62位,将前一个时钟周期输出的伪随机数的第60位和第64位进行异或操作,产生新伪随机数的第61位,除上述三位之外,新伪随机数的其它每一位都是通过前一个时钟周期输出的伪随机数的上一位通过循环移位得到,最终将新伪随机数作为生成的伪随机数输出。伪随机数产生器以一个预设的64位种子信号作为初始数据,当产生使能信号有效时,通过移位与异或操作,产生下一个时钟周期的伪随机数据,并发送到约束指导测试激励生成模块,64位PRBS伪随机数产生器的代码是可综合的,能够直接用于硬件仿真验证中,如果一组64位的伪随机数不够用,可以改变种子信号,生成多组不同的64位伪随机数。
如图3所示,64位PRBS伪随机数产生器的实现逻辑名称为prbs_gen_64bit,输入信号包括时钟信号clk、复位信号rst_n、使能信号enable、种子信号seed_data,其中seed_data的数据宽度是64位;输出信号是64位的伪随机数信号prbs_o。RPBS伪随机数产生算法的工作流程为:在每个时钟周期的上升沿进行判断,当复位信号有效时,线性反馈移位寄存器的初值为种子信号(第4~6行);当复位信号失效后,等待使能信号变为有效(第7行);当使能信号变为1时,以一种线性反馈移位的方式来产生伪随机数,当前周期的64位数主要是前一个时钟周期的数据经过循环移位得到的,但是在某些位出现一些变化,第64位是前一周期数据的第63位和第64位的异或操作产生(第8行),第62位是前一周期数据的第61位和第64位进行异或得到(第10行),第61位是前一周期的第60位与第64位通过异或操作生成(第11行)。除这三位之外,其他位都是通过循环移位得到(第9、12、13行)。上述PRBS伪随机数产生算法的优点主要有两个:一是代码为可综合的,能够采用FPGA硬件实现;二是通过变换不同的种子,可以得到不同的伪随机数,便于构造出不同的验证场景,从而提高验证的覆盖率。
本实施例中,约束指导测试激励生成模块从伪随机数中取出相应的位域构造访存控制数据信号的详细步骤如下:从伪随机数中取出最低n位作为写数据信号;从伪随机数中取出相邻最低n位的次低m位作为访存地址信号,其中m满足
Figure BDA00002851561100091
Figure BDA00002851561100092
是向上取整操作符,表示取大于log2d的最小整数,d为数据镜像模块的深度;从伪随机数中取出最高位作为进行读操作或者写操作的操作类型信号;如果操作类型信号为读操作,则将访存地址信号和操作类型信号作为发往高速缓冲存储器的访存控制数据信号;如果操作类型信号为写操作,则将写数据信号、访存地址信号和操作类型信号作为发往高速缓冲存储器的访存控制数据信号。
本实施例中,可综合伪随机验证装置(数据镜像模块、伪随机数产生器、约束指导测试激励生成模块、错误自动检查模块)基于FPGA硬件仿真实现,本实施例所实现的数据镜像模块、约束指导测试激励生成模块、错误自动检查模块、伪随机数产生器都是可综合的,能够直接在FPGA等可编程逻辑器件中综合、布局布线,将FPGA硬件仿真流程融合到本发明的验证方法中,从而大幅提高验证效率,满足规模不断增加的芯片的验证需求,弥合庞大的验证空间与验证能力之间的差距。本实施例基于FPGA硬件仿真实现对高速缓冲存储器(Cache)进行验证的详细步骤如下:
第一步,构建本实施例的可综合伪随机验证装置结构,完成代码设计。
本实施例面向高速缓冲存储器的可综合伪随机验证装置主要由数据镜像模块、约束指导测试激励生成模块、错误自动检查模块、伪随机数产生器等模块构成。数据镜像模块用于存储发往Cache部件的写数据,对于发送到高速缓冲存储器(Cache)的每次写操作,都会在数据镜像中存储器的同一地址内进行写操作,以保证数据的一致性。数据镜像模块主要是由存储器及其读写逻辑构成,而存储器的容量取决于FPGA器件的存储资源。约束指导测试激励生成模块是主控逻辑,首先产生启动信号,控制数据镜像进行初始化,当数据镜像模块返回初始化完成的信号后,发送完成信号;而后发送使能信号到伪随机产生器,并接收产生的伪随机数;而后根据Cache的访问接口,转换为相应的信号发送到Cache;当接收到Cache返回的读数据时,将数据发送到错误自动检查模块。错误自动检查模块会同步从数据镜像的存储器中读出同一地址的内容,进行比较,从而自动地判断数据的正确性;并且根据计数器是否超出预设的阈值,判断访问Cache是否超时;最终将错误与超时信号返回给主控模块。伪随机数产生器实现了PRBS伪随机序列产生算法。由于需要在FPGA等可编程逻辑器件中实现,因此伪随机数产生器的代码必须是可综合的。伪随机数产生器以一个预设的种子数据作为初始数据,当使能信号有效时,通过移位与异或操作,产生下一个时钟周期的伪随机数据,并发送到约束指导测试激励生成模块。
第二步,将本实施例的可综合伪随机验证装置与被测模块完成综合与布局布线,都实现为FPGA位流,下载到FPGA验证板上。本实施例的可综合伪随机验证装置是由FPGA器件为核心构建的FPGA验证板。基于FPGA的可综合随机验证方法的测试激励采用RTLVerilog实现,采用工具进行综合与布局布线,最终产生位流文件,而后与验证对象Cache一同下载到FPGA验证板上,进行测试。在测试的过程中,可以通过在线观察设备直接采样一些关键信号,用于调试信号和观测结果。
第三步,在FPGA验证板上进行测试。
本实施例中,在FPGA验证板上进行测试的具体流程为:
3.1在伪随机激励产生过程中,首先完成数据镜像模块初始化过程。
在复位后,随机激励自动生成模块产生一个时钟周期宽度的初始化启动信号。当数据镜像模块接收到启动信号后,数据镜像模块中的存储器准备进行初始化。随机激励自动生成模块令写使能信号保持为1,写数据信号为0,写地址信号从0开始逐一累加,直至存储器的最大地址,即通过写端口将存储器的所有单元都初始化为0;当存储器的所有单元都被遍历时,数据镜像模块将初始化完成信号置为1,通知约束指导测试激励生成模块,令写使能信号变为0,标识初始化完成,可以开始产生随机激励。
3.2测试激励自动生成模块产生约束指导的伪随机激励,并发送至待测的Cache。
约束指导测试激励生成模块主要由有限状态机进行控制产生与发送访存信号到Cache部件。在激励的生成过程中,并非完全随机,而是根据Cache部件设计的实际功能特性,排除一些不可能出现的信号赋值组合,通过这些约束信息,指导测试激励的产生,能够有效减小验证的状态空间,加快验证收敛进度。
如图4所示,本实施例约束指导测试激励生成模块维护的有限状态机包含5个状态:空闲态、构造态、ID生成态、发送态、更新态。有限状态机的工作方式如下:
a)空闲态:初始状态为空闲态,如果数据镜像模块完成初始化,那么令产生随机数的使能信号为1,发送到伪随机数产生器,下一状态转换到构造态;否则继续在当前空闲状态循环;
b)构造态:完成约束指导的伪随机地址、数据等信号的构建工作,首先从当前产生的伪随机数中取出最低n位,作为发往Cache的写数据,但是写数据在读操作时无效;随机数中的次低m位,作为发往Cache的访存地址,m的值取决于数据镜像模块的深度d,
Figure BDA00002851561100111
随机数中的最高位,作为发往Cache的操作类型,表示当前请求是读操作还是写操作;如果是读操作,下一状态迁移到IDEGEN,否则下一状态跳转到发送态;
c)ID生成态:检测是否存在空闲的读ID(ID),如果空闲读ID列表为空,那么在当前ID生成状态循环;否则将其中一个空闲ID存入已使用读ID列表,并将该ID从空闲ID列表中删除,同时下一状态到达发送态;
d)发送态:主要功能是发送控制信号与数据信号到Cache部件,令发送的有效信号为1,同时将前面产生的写数据、访存地址、操作类型、读ID等信号发送到Cache部件,下一状态跳转到更新态;
e)更新态:其功能是将写数据备份,完成数据镜像模块中存储器的更新操作,如果当前访存操作的类型是写操作,那么就根据访存地址,将写数据同步更新到数据镜像模块的存储器中,下一状态返回空闲态。
测试激励自动生成模块产生约束指导的伪随机激励并发送到高速缓冲存储器(下文中为了描述方便,简称为Cache)的具体流程为:
3.2.1有限状态机的初始状态为空闲态,当数据镜像模块完成初始化时,令产生随机数的使能信号为1,发送到伪随机数产生器;当伪随机数据产生器接收到使能信号,根据种子信号,在当前周期产生伪随机数返回;下一状态转换到构造态;否则继续在当前空闲状态循环。
伪随机数产生器采用了64位的PRBS伪随机数产生算法,如果一组64位的伪随机数不够用,可以改变种子信号,生成多组不同的64位伪随机数。伪随机数产生器的输入信号包括时钟信号clk、复位信号rst_n、使能信号enable、种子信号seed_data,输出信号是伪随机数信号prbs_o。伪随机数产生器产生伪随机数的具体流程如下:
3.2.1.1当复位信号有效时,线性反馈移位寄存器的初值为种子信号,种子信号来自于主控逻辑,可以预先设置;
3.2.1.2当复位信号失效后,等待使能信号变为有效;当使能信号变为1时,以线性反馈移位的方式来产生伪随机数;
3.2.1.3当前周期的64位数是由前一个时钟周期的数据经过循环移位得到的,但是在第61、62和64位出现一些变化;第64位是前一周期数据的第63位和第64位的异或操作产生,第62位是前一周期数据的第61位和第64位进行异或得到,第61位是前一周期的第60位与第64位通过异或操作生成;
3.2.2完成约束指导的伪随机地址、数据等信号的构建工作。首先从当前产生的伪随机数中取出最低n位,作为发往Cache的写数据信号,但是写数据信号在读操作时无效;随机数中的次低m位,作为发往Cache的访存地址信号,m的值取决于数据镜像模块的深度d,随机数中的最高位,作为发往Cache的操作类型信号,表示当前请求是读操作还是写操作;如果是读操作,下一状态迁移到IDEGEN,否则下一状态跳转到发送态;
3.2.3检测是否存在空闲的读识别号(ID),如果空闲读ID列表为空,那么在当前ID生成状态循环;否则将其中一个空闲ID作为读ID信号发送到Cache,并存入已使用读ID列表,将该ID从空闲ID列表中删除,同时下一状态到达发送态;
3.2.4主要功能是发送控制信号与数据信号到Cache部件,令发送的有效信号为1,同时将前面产生的写数据、访存地址、操作类型、读ID等信号发送到Cache部件,下一状态跳转到更新态;
3.2.5其功能是将写数据备份,完成数据镜像模块中存储器的更新操作,如果当前访存操作的类型是写操作,那么就根据访存地址,将写数据同步更新到数据镜像模块的存储器中,下一状态返回空闲态。
3.3测试激励自动生成模块检测到Cache发送的数据有效信号时,接收Cache返回的读数据。
当Cache返回的数据有效信号为1时,完成接收读数据的工作,其具体工作流程为:
3.3.1当检测到数据有效信号为1时,接收Cache发送的读数据及其读ID信号;
3.3.2根据读ID,从访存地址与读ID的对应表中匹配出地址;这个对应表是采用一个相联存储器(Content Addressed Memory,CAM)和一个随机访问存储器(Random AccessMemory,RAM)实现的,CAM的深度为d,宽度为m,m取决于读ID的宽度,RAM的深度也为d,宽度为n,n取决于访存地址的宽度。当一个空闲ID被选择,连同随机产生的访存地址发出时,将该读ID存入已使用读ID列表,同时将该读ID写入CAM中深度为d0的位置,d0≤d,并在RAM中深度为d0的位置写入访问地址。当读ID到达时,在CAM中进行匹配,得到深度d1,而后在RAM中深度为d1的位置读出访存地址;
3.3.3根据得到的访存地址,将该地址作为读地址信号,与读使能信号一同发向数据镜像模块;同时,向错误自动检查模块发送Cache返回的读数据信号与比较使能信号;
3.3.4当数据镜像模块检测到读使能信号为1时,根据读地址信号,从存储器中读出相应的数据,发送到错误自动检查模块。
3.4错误检测模块接收到约束指导测试激励生成模块发送的比较使能与Cache返回的数据时,与数据镜像模块发送的读数据进行比较与判错,同时完成读ID错与ECC校验错的判定,将错误信息与超时信息返回到约束指导测试激励生成模块。
错误自动检查模块主要由错误判别逻辑、超时报告逻辑构成。因此该模块主要完成两部分工作,一是错误判别,二是超时报告。在FPGA具体实现时,可以将这些出错信号转换为电平信号,输出到测试板的LED上显示,便于实时监测错误的发生。
本实施例步骤3)错误判别逻辑主要收集与判断三类错误,每一种错误具体如下:
第一种是读数据错,当到达的比较使能信号为1时,将Cache返回的读数据与数据镜像模块中同样地址的读出数据进行判等操作,如果不相等,则表明读数据错误,读数据错误信号置为1;
第二种是读ID错,因为外部的主存通常采用DDR2或DDR3SDRAM实现,而SDRAM处理读请求时可能会出现乱序返回的现象,因此处理器发送每一个读请求,都会分配一个读ID号,连同读地址一起发送到Cache,并且维护一个已使用读ID的列表;当Cache返回读数据时,会和读ID一起到达,此时判断该读ID是否属于已使用读ID列表,如果不属于,那么读ID错误信号置为1;
第三种是纠错编码(Error Correcting Code,ECC)校验错,当前Cache出于容错考虑,通常都会加入ECC,那么当接收到读数据与ECC编码时,进行ECC校验,若出现一位错,则ECC一位错信号置为1,若出现两位错,则ECC两位错信号置为1。
超时报告逻辑的主要功能是判别读操作发出后,是否在预设的时限内返回读数据。其具体工作流程是:超时报告逻辑为每个读ID设计一个64位的计数器,并将所有读ID的超时信号通过“或”操作,得到超时出错信号;当某个读ID被使用时,即测试激励发送了携带该读ID的读请求报文,此时计数器开始计数;当携带该读ID的读数据返回时,计数器清0;否则,一直计数,当计数器的值达到预设的时限时,就将超时出错信号置为1。
本实施例可综合伪随机验证装置的工作步骤如下:首先进行数据镜像模块中存储器的初始化工作,而后分为两部分逻辑,并行工作:一部分逻辑约束指导测试激励生成模块完成,由状态机控制下主要完成约束指导的伪随机激励产生的工作,首先控制伪随机数产生器产生伪随机数,然后从伪随机数中取出相应的位域,构造访存的地址、操作类型、写数据等信号;若是写操作,则直接发送访存信号到Cache,若是读操作,则产生读ID,连同之前产生的访存控制信号,发往Cache部件;而后根据访存地址,更新数据镜像模块;同时启动该读ID的超时计数器,直到携带该读ID的读数据返回,或计数器上溢,报告超时;另一部分逻辑错误自动检查模块完成,包括接收读数据的工作,当接收到读数据及其读ID信号时,首先根据读ID,从访存地址与读ID的对应表中匹配出地址;而后根据该地址,从镜像模块的存储器中读出相应的数据,与接收的读数据进行比较与判错,同时完成读ID错与ECC校验错的判定,并向系统报告。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310057006.8A CN103150228B (zh) 2013-02-22 2013-02-22 面向高速缓冲存储器的可综合伪随机验证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310057006.8A CN103150228B (zh) 2013-02-22 2013-02-22 面向高速缓冲存储器的可综合伪随机验证方法及装置

Publications (2)

Publication Number Publication Date
CN103150228A CN103150228A (zh) 2013-06-12
CN103150228B true CN103150228B (zh) 2014-06-04

Family

ID=48548326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310057006.8A Active CN103150228B (zh) 2013-02-22 2013-02-22 面向高速缓冲存储器的可综合伪随机验证方法及装置

Country Status (1)

Country Link
CN (1) CN103150228B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104750633B (zh) * 2013-12-30 2019-03-15 锐迪科(重庆)微电子科技有限公司 Fpga设备访问验证装置及方法
US10063263B2 (en) 2015-05-20 2018-08-28 International Business Machines Corporation Extended error correction coding data storage
CN106325827B (zh) * 2015-06-16 2019-07-19 深圳市中兴微电子技术有限公司 一种随机测试程序生成方法及装置
CN106209772B (zh) * 2016-06-23 2019-03-22 苏州英瀚时信息科技有限公司 网络数据编码方法、装置、核验方法、装置和传输方法
CN107368434B (zh) * 2017-07-21 2020-08-04 苏州浪潮智能科技有限公司 一种验证Cache一致性协议的装置及方法
CN109117518B (zh) * 2018-07-21 2022-09-20 中国人民解放军战略支援部队信息工程大学 一种寄存器读写访问验证系统及方法
CN109445365B (zh) * 2018-12-27 2021-07-09 青岛中科青芯电子科技有限公司 一种fpga嵌入式乘法器的筛选测试方法
CN112583581A (zh) * 2019-09-29 2021-03-30 杭州中天微系统有限公司 一种数据读取装置、系统及数据读取方法
CN111782217B (zh) * 2020-06-23 2023-05-09 上海赛昉科技有限公司 快速高效产生cache一致性测试C程序的系统及方法
CN112948200A (zh) * 2021-02-01 2021-06-11 湖南品腾电子科技有限公司 基于mcu存储器可重用性验证系统及方法
CN113535499B (zh) * 2021-07-22 2023-10-27 无锡江南计算技术研究所 一种支持多核心共享访问的多类型并存访存流验证方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040034820A1 (en) * 2002-08-15 2004-02-19 Soltis, Donald C. Apparatus and method for pseudorandom rare event injection to improve verification quality
CN101256521B (zh) * 2007-03-01 2010-12-01 创惟科技股份有限公司 提高闪存资料存取可靠性的方法
CN101894591B (zh) * 2010-07-26 2012-10-10 清华大学 一种基于lfsr的外部存储接口的随机测试装置

Also Published As

Publication number Publication date
CN103150228A (zh) 2013-06-12

Similar Documents

Publication Publication Date Title
CN103150228B (zh) 面向高速缓冲存储器的可综合伪随机验证方法及装置
Civera et al. Exploiting circuit emulation for fast hardness evaluation
CN102332310B (zh) 一种基于fpga的nand flash器件单粒子效应测试系统
De Paula et al. Backspace: Formal analysis for post-silicon debug
US12001317B2 (en) Waveform based reconstruction for emulation
CN105930242B (zh) 一种支持精确访存检测的多核处理器随机验证方法及装置
CN103853639A (zh) 自测试芯片上功能逻辑块的芯片上集成的系统和方法
CN103678115B (zh) 在混合模式程序中检测源代码差错的位置的设备和方法
US11461523B1 (en) Glitch analysis and glitch power estimation system
CN117077588B (zh) 硬件加速仿真调试系统
Taatizadeh et al. Automated selection of assertions for bit-flip detection during post-silicon validation
US20230376645A1 (en) Faster Coverage Convergence with Automatic Test Parameter Tuning in Constrained Random Verification
Parulkar et al. OpenSPARC: An open platform for hardware reliability experimentation
CN103944778B (zh) 一种基于组合测试集的分布式事件注入装置
CN103268272A (zh) 基于场景的处理器系统级验证完备性度量方法
US10970442B1 (en) Method of debugging hardware and firmware of data storage
Guan et al. Chaser: An enhanced fault injection tool for tracing soft errors in mpi applications
Hassan et al. MCXplore: An automated framework for validating memory controller designs
Entrena et al. Hardware fault injection
Li Computer embedded automatic test system based on VxWorks
Tiejun et al. An FPGA-based random functional verification method for cache
US20240232485A1 (en) Test point insertion in analog circuit design testing
Nalla et al. Effective liveness verification using a transformation-based framework
Ahmed Relyzer+: An open source tool for application-level soft error resiliency analysis
Mannos et al. Information Leakage Analysis of a RISC-V Microprocessor using Accelerated Fault Injection.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant