一种基于RTL级功耗分析的错误定位方法及系统与流程

文档序号:16087295发布日期:2018-11-27 22:35阅读:291来源:国知局

本发明涉及微处理器的低功耗验证领域,具体涉及一种基于RTL级功耗分析的错误定位方法及系统。



背景技术:

微处理器芯片作为现代各种计算机设备的核心,引领着工业界集成电路和信息技术的高速发展。随着半导体工艺的不断发展以及芯片对性能要求的不断提高,芯片系统集成度越来越高,微处理器的设计面临着一系列的问题和挑战,急剧上升的功耗成为至关重要的问题。一方面,由于微处理器的功耗引起散热和电源噪声等问题,影响芯片的封装、测试以及系统可靠性等;另一方面,由于能源的短缺以及近些年电池技术的进展缓慢,半导体产品尤其是便携式设备的使用寿命对功耗有所限制,因而微处理器功耗也决定着SoC片上系统和便携式设备的发展速度。这些因素都促使微处理器的低功耗设计成为目前业内的研究热点问题之一,成为解决性能提升与功耗限制两者平衡的关键技术。

微处理器芯片设计流程中,验证工作至关重要,有数据表明,整个芯片设计周期有接近70%~80%的时间花费在验证工作中。微处理器芯片验证主要包括功能验证、物理验证和时序验证等内容,在不同的设计阶段,其验证工作的内容和侧重点有所不同,如寄存器传输级(RTL)设计阶段主要侧重功能验证,物理实现和版图设计阶段主要侧重物理验证等。对于低功耗设计的微处理器芯片而言,功耗验证通常是一个非常棘手的问题,因为目前的主流验证技术如模拟验证、形式化验证以及硬件辅助加速验证都不能很好地验证所设计的微处理器芯片是否达到低功耗设计的目标,这些主流验证方式主要作为功能验证的技术。传统芯片设计流程中,功耗问题往往在物理实现完成后进行PPA(Performance、Power、Area)物理验证时才能被关注,面临的问题是物理设计阶段功耗优化空间较低,而且功耗缺陷的迭代修复周期较长,目前暂未看到类似的基于功耗分析的错误定位方法。

如图1所示,现有的微处理器功耗分析方法包括针对参考设计REF(源代码)、被测设计DUT(源代码)进行编译,然后分别针对测试激励文件TestCase.fsdb进行向量分析、相对功耗分析,针对向量分析结果依次进行平均功耗分析分别获取平均功耗数据,针对相对功耗分析依次进行峰值功耗分析分别获取峰值功耗数据,然后在平均功耗数据、峰值功耗数据的基础上,对参考设计REF与被测设计DUT的功耗数据进行处理和对比分析。

基于上述微处理器芯片设计中功耗验证存在的问题,如何实现基于RTL级功耗分析的错误方法,以便在微处理器芯片设计早期实现功耗分析、功耗缺陷定位与验证等流程以及大大缩短设计迭代时间,则已经成为一项亟待解决的关键技术问题。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于RTL级功耗分析的错误定位方法及系统,本发明能够在微处理器芯片设计早期实现功耗分析、功耗缺陷定位与验证等流程,大大缩短设计迭代时间,突破主流验证技术如模拟验证、形式化验证等方法皆不能验证功耗缺陷问题的局限,弥补物理设计阶段功耗优化空间较小且设代迭代时间长的不足,以更快速度和更高效率去满足预期的低功耗设计需求与目标。

为了解决上述技术问题,本发明采用的技术方案为:

一种基于RTL级功耗分析的错误定位方法,实施步骤包括:

1)获取可执行的被测设计DUT、参考设计REF、以及测试用例集{TestCasei};

2)从测试用例集{TestCasei}中遍历选择一个当前测试用例TestCasei,运行当前测试用例TestCasei,借助EDA功耗分析工具对被测设计DUT与参考设计REF分别进行功耗评估;

3)获取被测设计DUT、参考设计REF在特定测试激励下的功耗,对功耗结果进行对比与分析获得功耗对比分析结果;

4)根据被测设计DUT与参考设计REF的功耗对比分析结果,对设计按由顶至底的方式逐层进行功耗缺陷的错误定位分析,并针对当前测试用例TestCasei计算被测设计DUT与参考设计REF两者的平均功耗变化率和峰值功耗变化率;

5)判断测试用例集{TestCasei}是否遍历完毕,如果尚未遍历完毕,则跳转执行步骤2);否则,跳转执行下一步;

6)针对所有当前测试用例TestCasei对应的被测设计DUT与参考设计REF两者的平均功耗变化率和峰值功耗变化率进行比较进行功耗缺陷错位定位;

7)验证被测设计DUT中所定位功耗缺陷的准确性;

8)反馈输出功耗缺陷错位定位报告。

优选地,步骤3)中的功耗对比分析结果具体是指待测设计与参考设计REF之间的功耗变化率。

优选地,步骤4)的详细步骤包括:

4.1)根据被测设计DUT与参考设计REF,从顶层top level开始到叶层leaf level结束、按照由顶至底的方式逐层遍历选择定位顶层top level作为当前层;

4.2)判断被测设计DUT以及参考设计REF之间在当前层的功耗变化率是否超过期望值;若超过期望值,则判定当前层存在潜在功耗缺陷,跳转执行步骤4.3),否则判定当前层不存在潜在功耗缺陷,跳转执行步骤5);

4.3)判断是否遍历完毕,如果遍历完毕则跳转执行步骤5);否则,遍历选择定位下一层作为新的当前层,跳转执行步骤4.2)。

优选地,步骤6)中比较进行功耗缺陷错位定位具体是指针对所有当前测试用例TestCasei对应的被测设计DUT与参考设计REF两者的平均功耗变化率和峰值功耗变化率进行比较,判定被测设计DUT中平均功耗变化率和/或峰值功耗变化率超过预设期望值的模块部件存在功耗缺陷。

优选地,步骤7)的详细步骤包括:

7.1)针对被测设计DUT中所定位功耗缺陷进行时钟门控效率CGE分析得到CGE值,判断得到的CGE值是否小于预设的期望值,如果小于预设的期望值,则初步判定被测设计DUT中所定位的功耗缺陷准确;否则初步判定被测设计DUT中所定位的功耗缺陷待定;

7.2)针对被测设计DUT中所定位功耗缺陷进行寄存器时钟的翻转活动因子FCA分析得到FCA值,判断得到的FCA值是否大于预设的期望值,如果大于预设的期望值,则判定被测设计DUT中所定位的功耗缺陷准确;否则判定被测设计DUT中所定位的功耗缺陷待定。

本发明还提供一种基于RTL级功耗分析的错误定位系统,包括计算机设备,其特征在于:所述计算机设备被编程以执行本发明基于RTL级功耗分析的错误定位方法的步骤。

和现有技术相比,本发明具有下述有益效果:

1、错误定位迅速且准确。本发明应用在EDA功耗评估工具搭建功耗评估分析环境下,整个流程包括功耗数据的产生、获取与处理均采用脚本自动化执行,加快功耗缺陷的错误定位速度;更为重要地,本发明还包含错误验证分析过程,同时保证了所定位的功耗缺陷的准确性。

2、缩减设计迭代时间。相比物理设计阶段的功耗评估分析,RTL级的功耗评估所花费的时间成本明显较低,快速的功耗评估与功耗缺陷定位能有效地缩减设计迭代时间。

3、挖掘功耗优化空间。本发明通过定位出功耗缺陷处的位置,从而确定被测设计DUT功耗优化的方向,尽可能地挖掘被测设计DUT潜在的功耗优化空间,达到预期的低功耗设计目标。

附图说明

图1为现有技术的功耗分析流程示意图。

图2为本发明实施例方法的整体流程示意图。

图3为应用本发明实施例的错误定位及错误验证流程示意图。

图4为本发明实施例功耗缺陷定位的功耗变化率结果示意图。

图5 为本发明实施例错误验证的功耗缺陷处CGE和FCA结果示意图。

具体实施方式

下文将以包含两个测试用例的测试用例集{TestCasei}为例,对本发明基于RTL级功耗分析的错误定位方法及系统进行进一步的详细说明,其中测试用例集{TestCasei}包含的两个测试用例分别为测试整数程序的TestCase0和测试向量浮点程序的TestCase1。

如图2和图3所示,本实施例基于RTL级功耗分析的错误定位方法的实施步骤包括:

1)获取可执行的被测设计DUT、参考设计REF、以及测试用例集{TestCasei};

2)从测试用例集{TestCasei}中遍历选择一个当前测试用例TestCasei,运行当前测试用例TestCasei,借助EDA功耗分析工具对被测设计DUT与参考设计REF分别进行功耗评估;

3)获取被测设计DUT、参考设计REF在特定测试激励下的功耗,对功耗结果进行对比与分析获得功耗对比分析结果;

4)根据被测设计DUT与参考设计REF的功耗对比分析结果,对设计按由顶至底的方式逐层进行功耗缺陷的错误定位分析,并针对当前测试用例TestCasei计算被测设计DUT与参考设计REF两者的平均功耗变化率和峰值功耗变化率;

5)判断测试用例集{TestCasei}是否遍历完毕,如果尚未遍历完毕,则跳转执行步骤2);否则,跳转执行下一步;

6)针对所有当前测试用例TestCasei对应的被测设计DUT与参考设计REF两者的平均功耗变化率和峰值功耗变化率进行比较进行功耗缺陷错位定位;

7)验证被测设计DUT中所定位功耗缺陷的准确性;

8)反馈输出功耗缺陷错位定位报告。

本实施例中,步骤2)中使用的EDA功耗分析工具具体为基于PowerArtist平台搭建的功耗分析环境,第一次迭代时选取并运行测试用例TestCase0,在基于PowerArtist平台搭建的功耗分析环境下获取被测设计与参考设计在测试激励TestCase0下的功耗值;第二次迭代时更改测试用例,选取并运行测试用例TestCase1,在基于PowerArtist平台搭建的功耗分析环境下获取被测设计与参考设计在测试激励TestCase1下的功耗值。

本实施例中,步骤3)中的功耗对比分析结果具体是指待测设计与参考设计REF之间的功耗变化率,本实施例中被测设计与参考设计两者间的功耗变化率通过定制化脚本实现功耗数据获取与处理。

本实施例中,步骤4)的详细步骤包括:

4.1)根据被测设计DUT与参考设计REF,从顶层top level开始到叶层leaf level结束、按照由顶至底的方式逐层遍历选择定位顶层top level作为当前层;

4.2)判断被测设计DUT以及参考设计REF之间在当前层的功耗变化率是否超过期望值;若超过期望值,则判定当前层存在潜在功耗缺陷,跳转执行步骤4.3),否则判定当前层不存在潜在功耗缺陷,跳转执行步骤5);

4.3)判断是否遍历完毕,如果遍历完毕则跳转执行步骤5);否则,遍历选择定位下一层作为新的当前层,跳转执行步骤4.2)。

如图3所示,首先定位顶层模块(top level),判断被测设计与参考设计的顶层模块(top level)的功耗变化率是否超过期望值,是则定位各个次顶层模块(level 1);定位各个次顶层模块(level 1)后,判断被测设计各个次顶层模块(level 1)中是否存在功耗变化率超过期望值的一级子模块,是则定位下一个层级模块(level 2);定位下一个层级模块(level 2)后,判断被测设计各个下一个层级模块(level 2)中是否存在功耗变化率超过期望值的二级子模块,是则继续定位下一个层级模块(level 3);按照逐层递归的方式,直至分析被测设计的叶层(leaf level)的功耗变化率是否超过预期值;若是,则初步判定该leaf level模块存在潜在功耗缺陷;否则初步判定被测设计不存在功耗缺陷。

本实施例中,步骤6)中比较进行功耗缺陷错位定位具体是指针对所有当前测试用例TestCasei对应的被测设计DUT与参考设计REF两者的平均功耗变化率和峰值功耗变化率进行比较,判定被测设计DUT中平均功耗变化率和/或峰值功耗变化率超过预设期望值的模块部件存在功耗缺陷。本实施例中,测试用例TestCase0为输入时,通过比较被测设计与参考设计两者的平均功耗变化率和峰值功耗变化率,结果显示在测试激励TestCase0下的被测设计不存在功耗变化率超过预期值的模块;测试用例TestCase1为输入时,再次比较被测设计与参考设计两者的平均功耗变化率和峰值功耗变化率,结果如图4所示,表明在测试激励TestCase1下被测设计的某3级子模块浮点除法部件L0.L1.L2.fdiv64的功耗变化率超过期望值。结合测试激励TestCase0与TestCase1的结果综合分析,L0.L1.L2模块可以初步排除存在功耗缺陷的可能,L0.L1.L2.fdiv64模块可能存在功耗缺陷错误。

如图3所示,本实施例中步骤7)的详细步骤包括:

7.1)针对被测设计DUT中所定位功耗缺陷进行时钟门控效率CGE分析得到CGE值,判断得到的CGE值是否小于预设的期望值,如果小于预设的期望值,则初步判定被测设计DUT中所定位的功耗缺陷准确;否则初步判定被测设计DUT中所定位的功耗缺陷待定;

7.2)针对被测设计DUT中所定位功耗缺陷进行寄存器时钟的翻转活动因子FCA分析得到FCA值,判断得到的FCA值是否大于预设的期望值,如果大于预设的期望值,则判定被测设计DUT中所定位的功耗缺陷准确;否则判定被测设计DUT中所定位的功耗缺陷待定。

本实施例中定位被测设计内可能存在功耗缺陷位于子级模块L0.L1.L2.div64中,在实施基于PowerArtist平台搭建的功耗分析环境下,对子级模块L0.L1.L2.div64进行CGE(Clock Gating efficiency,时钟门控效率)与FCA(Flop Clock Activity,寄存器时钟的翻转活动因子)分析。其中CGE衡量设计内某模块的时钟门控效率,FCA分析模块内flop时钟端的翻转因子,衡量某模块的时钟门控覆盖率。结果如图5所示,被测设计内子模块除法部件L0.L1.L2.div64的CGE值低于期望值表明时钟门控效率有待提高,且FCA值远高于期望值表明时钟门控覆盖率有很大提升空间,从而验证所定位子级模块L0.L1.L2.div64的功耗缺陷的正确性;本实施例中,步骤8)中将定位的所有功耗缺陷位置反馈给设计人员时,本实施例同时还建议设计人员从提高时钟门控效率与时钟门控覆盖率两个方向来消除功耗缺陷。

本实施例还提供一种基于RTL级功耗分析的错误定位系统,包括计算机设备,该计算机设备被编程以执行本实施例基于RTL级功耗分析的错误定位方法的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1