覆盖率驱动的随机验证的方法技术

技术编号:7489977 阅读:167 留言:0更新日期:2012-07-10 02:05
本发明专利技术提出一种利用至少两个计算单元进行覆盖率驱动的随机验证的方法,所述至少两个计算单元包括第一计算单元和第二计算单元,所述第一和第二计算单元分别具有第一和第二覆盖率数据库,所述第一和第二计算单元均可访问总覆盖率数据库,所述第一和第二计算单元分别启动各自的随机验证,并将产生的覆盖率数据写入各自的覆盖率数据库,然后将覆盖率数据库的覆盖率数据写入总覆盖率数据库,并对总覆盖率数据库中的覆盖率数据进行融合,得到融合的覆盖率数据,最后将融合的覆盖率数据写入第一覆盖率数据库和第二覆盖率数据库。

【技术实现步骤摘要】

本专利技术涉及集成电路的验证,特别涉及基于覆盖率驱动的随机验证。
技术介绍
随着集成电路设计规模的不断增大,功能日趋复杂,验证逐渐成为制约集成电路设计的瓶颈之一。传统的验证方法不仅效率低,而且验证结果的可靠性也不能完全得到保证,验证的遗漏点往往会成为导致芯片崩溃的杀手。为了解决验证的问题,最近出现了很多新的验证方法学,例如基于断言的验证,覆盖率驱动的随机验证等。通过随机激励能够发现很多设计和验证人员没有预想到的角落,但是如果不对随机激励源加以约束往往会产生很多重复的激励,这些激励不能提高验证的质量,只会降低验证的效率,延长验证的收敛时间。为了加速随机验证的收敛,我们通常会把覆盖率数据反馈给激励源,激励源根据当前的覆盖率情况对后续的随机激励加以约束,产生有针对性的激励,这样就可以减少简单重复的随机激励,加速验证的收敛过程。目前基于覆盖率驱动的随机验证都是使用单台计算机或工作站进行的,在项目进度紧迫时不能有效加快验证的速度。因此需要一种能够加速验证的收敛过程的基于。
技术实现思路
本专利技术的目的在于解决上述问题中的一个或多个。为了达到上述目的,本专利技术提出一种方法,其充分利用多计算机的资源,通过共享及融合覆盖率数据加快基于覆盖率驱动的随机验证的收敛过程。本专利技术在一个方面,提出一种利用至少两个计算单元进行,所述至少两个计算单元包括第一计算单元和第二计算单元,所述第一计算单元具有第一覆盖率数据库,所述第二计算单元具有第二覆盖率数据库,所述第一计算单元和所述第二计算单元均可访问总覆盖率数据库,所述方法包括所述第一计算单元启动第一随机验证,并将第一随机验证产生的第一覆盖率数据写入第一覆盖率数据库,所述第二计算单元启动第二随机验证,并将第二随机验证产生的第二覆盖率数据写入第二覆盖率数据库,每隔一段时间,将第一覆盖率数据库的第一覆盖率数据和第二覆盖率数据库的第二覆盖率数据写入总覆盖率数据库,对总覆盖率数据库中的第一覆盖率数据和第二覆盖率数据进行融合,得到融合的覆盖率数据,将融合的覆盖率数据写入第一覆盖率数据库和第二覆盖率数据库。根据本专利技术的另一方面,第一计算单元使用第一随机激励启动第一随机验证,第二计算单元使用第二随机激励启动第二随机验证,第一随机激励与所述第二随机激励不CN 同。根据本专利技术的另一方面,第一计算单元根据融合的覆盖率数据调整第一随机激励,第二计算单元根据融合的覆盖率数据调整第二随机激励。根据本专利技术的另一方面,调整第一随机激励包括改变第一激励或者调整指令的权重。根据本专利技术的另一方面,还包括使用第三计算单元根据融合的覆盖率数据进行第三随机验证。本专利技术具有下列优点1、各计算机间通过网络共享覆盖率数据,并行工作减少单个计算机性能对验证速度的制约,可有效加快基于覆盖率驱动的随机验证的收敛过程。2、通过在仿真脚本中加入网络传输命令或使用已有的网络传输工具即可将覆盖率数据发送到远程的覆盖率数据库。通常仿真工具产生覆盖率数据可以通过简单的办法进行融合。整个控制简单,避免了实现的复杂性。3、可以根据计算机资源,随时增加或减少整个验证网络中计算机的数目,不会中断验证进程。附图说明图1是根据本专利技术的一个实施例的使用多计算单元加速覆盖率驱动的随机验证的系统架构示意图。具体实施例方式以下结合附图,对本专利技术的具体实施例进行详细的说明。如图1所示,多个计算单元,例如计算单元1、2、3和4,连接到中心计算单元5,该连接可以是无线连接或者有线连接。本专利技术的计算单元可以是常用的计算机,但不限于此, 计算单元可以包括能够进行仿真的任何计算设备。各计算单元能够分别启动自己的随机仿真,为了减小各计算单元产生的激励的相关性,各计算单元使用的随机激励或随机种子应有足够差别。各计算单元有本地的覆盖率数据库,这样可以减少通信给仿真速度造成的影响。远程覆盖率数据库(即,总覆盖率数据库)位于中心计算单元5上。总覆盖率数据库融合来自各计算单元的覆盖率数据。例如,总覆盖率数据库利用可以利用仿真工具提供的覆盖率融合办法或脚本语言融合来自各计算单元的覆盖率数据,从而生成总覆盖率数据。总覆盖率数据库也可以位于计算单元1-4其中之一从而不需要中心计算单元5。下面以Synopsys公司的VCS作为仿真工具示例性地说明本专利技术的使用多计算单元加速覆盖率驱动的随机验证的具体过程。需要说明的是本专利技术不限于VCS,本专利技术提出的方法适用于所有支持覆盖率仿真的EDA工具。首先,各计算机(仿真计算机)分别启动自己的仿真,仿真使用设计好的侧重于不同验证点的激励,例如验证设计中的不同模块的激励,各指令比重不同的激励,正常模式和异常模式的激励等。当仅有一条随机激励时可以使用不同的种子作为随机激励的种子, 例如各计算机的MAC地址,计算机号等有区分的信息。4仿真时各计算机维护一套本地的覆盖率数据,覆盖率的数据从名称上加以区分, 各仿真计算机的本地覆盖率数据使用-cm_name选项生成名称不同的本地覆盖率数据。每隔一段时间,各计算机使用网络命令(例如Linux操作系统下的scp或FTP传输工具,例如 gftp等)将本地的覆盖率数据拷贝到网络中具有固定网址的中心计算机(中心计算单元), 中心计算机具有远程覆盖率数据库(即,总覆盖率数据库)。也可以不需要专门的存放共享的覆盖率数据的中心计算机,使用其中一台仿真用的计算机存储总覆盖率数据库。作为选择,各仿真计算机本地仿真时可以使用-O选项生成名称不同的本地仿真数据,然后将本地仿真数据发送到总覆盖率数据库。总覆盖率数据库对收集到的来自各计算机的覆盖率数据进行融合,总覆盖率数据库仅保存和更新来自各仿真计算机的不同数据,使用名称作为区分,不需要额外的融合。例如覆盖率数据库使用-cm_dir -cm_map -cm_name选项将来自各仿真计算机的数据融合成一个统一的覆盖率数据,减少总的覆盖率文件的数据。每隔一段时间,当各计算机需要根据覆盖率情况对随机激励的产生进行新的调整时,发送命令从总覆盖率数据库取回融合后的覆盖率数据,并根据各计算机仿真的总覆盖率情况对后续产生的随机激励进行约束调整。例如,每隔一段时间或当各计算机的覆盖率提升较慢时,各计算机使用网络命令或FTP工具从远程覆盖率数据库拷贝出融合后的覆盖率数据并和本地的覆盖率数据进行再融合,随机激励源根据当前的覆盖率情况对后续产生的激励进行调整,例如,选择不同的激励或者调整各指令的权重等。当需要加快验证的收敛速度时,可直接把新的计算机连接到验证网络上。新计算机首先从总覆盖率数据库拷贝出目前已验证的总的覆盖率,然后根据当前验证的情况启动新的验证。另外,当需要把其中某些计算机用于其他用途时,也可在该计算机将本地覆盖率数据拷贝到总覆盖率数据库后中止该计算机的仿真。实例下面列举具体的例子。通过以一款USB2.0 Slave控制器为例,说明如何实现使用多计算机加速覆盖率驱动的随机过程。对于USB2. 0 Slave控制器的验证至少要包括低速/全速,控制传输/等时传输/ 中断传输/块传输,各种类型枚举,电气层正常/异常,内部缓存空/满等情况的验证。这些功能点将通过System Verilog中的covergroup禾口 assert进行描述,covergroup的覆盖率会反馈到激励源以调整各种USB包的比例以及插本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈涛
申请(专利权)人:北京国睿中数科技股份有限公司
类型:发明
国别省市:

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

1
相关领域技术