ASIC设计中的功耗估算|电脑功耗估算
摘要阐述一种为ASIC设计进行功耗估算的方法,根据这个方法,设计者可以科学的估算ASIC设计中的各种功耗,从而避免因为功耗设计的缺失导致设计返工、计划延误、成本增加等严重后果。
关键词ASIC设计;功耗估算;估算
中图分类号TN492文献标识码A文章编号1673-9671-(2010)041-0014-01
在ASIC设计的前面阶段,对于功耗的估算是很重要的,它的成功与否直接影响着ASCI最终的性能和可靠性。如今的ASIC设计更加复杂,对于功耗的要求也更加严苛,如果功耗的设计出现缺陷,常常会导致设计返工、计划延误、成本增加等严重后果。
1功耗估算包括对动态功耗、静态功耗和泄露功耗等方面的估算
1)关注的是如何进行近似的估算,所以,并不牵涉各种二阶效应,比如说交变电流。为了简化估算过程,在此将动态功耗和静态功耗分开来进行。如有可能,可以优先考虑最小功耗要求,这可以通过比较静态和动态电源开销的相互重要性来确定。
2)内存为初始功耗估算提供了很好的起点。复杂的设计可能包含了上百种类型的内存,其功耗总量通常都占有可观的比例,对于内存功耗的估算和权衡,既不需要成熟的网表,也不需要强大的EDA工具,只需要供货商的规格表,或者用内存编译器来生成其规格特征。以一个内存配置的实例来开始快速的估算和比较,先关注占用最多电源开销的内存配置:实例数量大的、高运行频率的和高位宽的,随着设计架构的进展成熟,再将其他的内存考虑进来,直到最后覆盖设计中的所有内存。
3)如果忽略二阶效应,我们可以假设开关电容贯穿全过程且温度恒定,因此,可以假设与开关电容相关的动态内存功耗也是如此,如此来做粗略的功耗估算。例如,若一个基于高阈值电压晶体管的内存太缓慢,可以用近似的编译器来生成一个类似的基于更快速,泄漏更高的低阈值电压晶体管的内存,二者应具有相当的布局和动态功耗,但泄漏功耗是大为不同的。
4)内存动态功耗可用电压平方的一个函数来表示:P=CV2f,其中P为功耗,C为有效功耗电容,V为工作电压,f为有效转换频率。因为开关电容是一直存在且恒温的,估算动态功耗时,此函数就仅与电压的平方和转换频率有关,好在这些变量彼此独立,我们可以分开进行关注。例如,若内存厂商表明动态功耗最好情况下的电压为1.32V,10%的电压变化,但设计是工作于1.26V或以下,5%电压变化,则动态功耗比例因子为(1.26)2/(1.32)2=0.91。
5)为了将内存厂商的动态功耗扩展以电源电压的平方来进行校验,我们可检验其典型情况下和最好情况下的数据(1.2V和1.32V),而后,计算出这两个数据的比例:(1.20)2/(1.32)2=0.826。
2内存动态功耗对于频率和活动率是线性变化的
P=CV2fA,这里的A是活动率,范围0-100%。许多内存规格中都提供了简单的电源活动常量,我们应将其乘以频率和活动率,将这些常量和内存频率包括在内存功耗电子数据表中,从而进行自动化的计算。比如说,假设厂商规格提供的动态功耗是固定活动率的,如20%,设计运行的最大动态率为10%,就应将20%的活动率缩减10%,使用比例因子为10%/ 20%=0.5。
1)内存的读取和写入操作的活动率应使用不同的功耗活动系数,但如果读取和写入的活动率始终保持恒定,我们可以将二者合一处理。比如说,假设内存的读和写活动率均为15%,我们需要计算活动率为25%时将如何,则可以将这15%的读写活动率结合按照25%/15%=1.67来算;如果读取和写入活动率不同,读取为25%,写入为5%,则不能将二者结合起来计算,应分别计算然后结合。
2)内存静态功耗在不同温度的差别是指数级的,90纳米及以上级别的处理器几乎每15°C便相差一倍,对于较新较小的处理器,泄漏对于温度的敏感度要小一些。我们可以通过查看内存规格的泄漏数据来了解温度对泄漏的影响和计算使泄漏加倍的温度变化,假如规格数据是25到85°C,那么因为85-25=60°C,4×15=60°C,所以从25到85°C,泄漏应大约以24或16的倍数递增。另又如,若规格数据是85°C,而设计的最高结点温度是100°C,则泄漏功耗应估计为85°C时数据的两倍。
3)估算模块功耗类似估算内存功耗,但没有内存功耗那样复杂,实例数往往低得多,省电特性越少,则可选择的模块也越少,这就简化了功耗的估算呢。当我们在对比不同厂商时,其他的因素,如模块设计风险、成本和地域等,可能在重要性方面超过了模块的功耗,我们应将初始模块功耗估算建立在客户的规格标准之上,将模块的功耗数据输入电子数据表并与静态和动态功耗区分开来。
4)在电容未知的情况下,我们可以从类同先前的设计中扩展功耗结果,假设包括布线电容的功耗数据是可以获取的。目标是相同的进程结点时,对实例数和频率进行扩展;目标是更小的进程结点时,对实例数、频率、电压平方和电容进行扩展。注意电容是间距缩小的,比如说,如果门区扩展为50%,则电容扩展为60 %到 90%。
5)估算标准单元的静态功耗也是可编程的,一个途径是依靠对先前类似设计中泄漏功耗进行扩展的结果,假设数据是可获取的。如果以相同进程结点和库为目标,可通过对实例数的扩展来估算泄漏功耗。我们可能需要针对多阈值电压单元的相对混合进行调整。如果目标进程相同而库不同,则对实例数和相对库泄漏进行扩展,我们可在标准单元的一个小型典型样本的相对泄漏基础上进行库泄漏扩展;如果以一个不同的进程结点为目标,对于实例数和相对库泄漏都要进行扩展。
6)估算标准单元泄漏功耗的第二种途径是依靠标准单元库数据。为了选择一种典型的标准单元作为样本,我们可能需要在多种标准单元样本来找出库间的不同和多阈值电压单元的变化,对每一个样本先估算泄漏功耗,再估算反映出的总共实例数,最后进行扩展以估算设计实例数的典型响应并估算总静态功耗。
3结束语
为了进行快速的功耗估算,应从具有代表性的关键器件样本开始,在设计一步步走向成熟的过程中,缩小进程和模块选择范围,采用更多的器件数据。开始时基线数据不带有省电特性,在设计的进展中估算恰当的省电特征,分别分析静态和动态的功耗以简化结果,同时,要分别关注内存、模块和标准单元功耗,必要时结合三者来进行估算。集成电路设计项目各有不同,我们需要具体问题具体分析,灵活的判断处理功耗估算问题。
参考文献
[1]Keith Barr. ASIC设计-混合信号集成电路设计指南[M].科学出版社,2006..
[2]沈理.SOC/ASIC设计.验证和测试方法学[M].中山大学出版社,2009.
[3]黄海生.在ASIC设计中的功耗分析与优化设计[J].半导体技术,2001,07.
