介绍
美国能源部(DOE)的一份综合报告“半导体供应链深度潜水评估”(2022年2月)呼吁将能源效率提高1000倍,以维持未来的需求,因为世界能源产量有限。能源效率是当今设计师的首要任务。能源效率的整体方法必须从设计流程的早期阶段开始,即建筑和微观建筑层面。正是在这些抽象层面,设计师可以评估power-performance-area权衡并创建节能架构。设计过程的后期阶段提供的节能机会有限。
能源效率和功率优化工作必须以所有抽象级别的功率分析为指导。在实施阶段,早期功率分析本质上不如签署功率分析准确,但早期功率分析的目标必须是为设计人员提供一致的准确性,使他们能够做出明智的决策。
传统的寄存器传输级(RTL)功率分析工具考虑的与设计实际实现相关的信息量非常有限。此类工具中使用的快速合成技术通常不是时序驱动的,具有有限的寄生电容估计能力,构建简单的扇出驱动时钟树结构,执行次优小区大小,并使用不精确的启发式方法进行毛刺功率计算。
这些考虑要求新一代RTL功率分析工具通过利用技术相关信息、时序约束和准确的故障功率建模来提供一致的准确性。这些工具以一致的方式提供RTL功率分析与最终签署分析的紧密相关性。只有对实现和签署功率计算算法有深入的理解,这种一致的准确性才可能实现。
本文概述了数字设计中功率耗损的基础知识,概述了RTL功率分析的工作原理,概述了实现一致的RTL功率分析精度的关键要求,并介绍了使设计团队能够做到这一点的Synothy s技术。
数字设计中的功耗基础
功率耗损计算的基本概念如下图1所示:
- 动态-动态功率是门切换时消耗的功率
- 内部:
- 短路:栅极P和N晶体管之间的瞬时短路
- 内部电容:栅极内的充电/放电电容(例如缓冲器=2个反相器)
- 开关:cell输出端负载电容的充电和放电耗散的功率
- 静态/泄漏:静态功率是栅极不切换时耗散的功率
功耗大致可分为两大类:动态和静态(或泄漏)功率。动态功率是由于设计中的逻辑状态转换——信号从逻辑“0”切换到逻辑“1”,反之亦然。这一活动基于设计的RTL或门级模拟,因此是正在使用的特定测试或“矢量”的函数。动态功率进一步分为内部功率和开关功率子类别。内部功率是由于门内部的短路电流和电容切换而在门内部消耗的功率。开关功率是通过对门的输出电容负载进行充电和放电而消耗的功率。这个外部电容负载是从门输出到接收器的寄生路由电容和接收器的输入引脚电容的总和。即使没有输入或输出开关活动,逻辑门也会消耗静态(或泄漏)功率。
- 内部:
工艺库(例如Liberty)包含与库中每个单元的逻辑状态转换相关的能量值。RTL或门级功率分析工具处理仿真数据,并根据设计和库能量值中的网络活动计算内部功耗。功率分析工具还通过使用估计或提取的电容和相应的网络活动作为CV2Fa来计算开关功率,其中C是净电容,V是电源电压(来自工艺库),Fa是与电容相关的网络频率。每个单元的泄漏功率值可直接从工艺库获得。
RTL功率分析-它是如何工作的
RTL功率分析利用快速逻辑合成技术将输入的RTL代码转换为设计的门级(网表)或字级表示。活动信息是RTL模拟的结果,还需要一个工艺库。然后,RTL功率分析工具能够以上述方式计算功耗。这如图2所示。还需要快速周转时间(TAT),以使RTL设计工程师能够评估RTL编码变化及其对功耗的影响。
快速合成技术的一种类型是基于扇出的字级逻辑推理。虽然这种方法提供了快速TAT,但它也有严重的限制,极大地影响了RTL功率分析的准确性,导致用户进行真正降低功率和提高能效的RTL编码更改的置信度降低。以下部分概述了在RTL功率分析中实现一致精度的关键要求,克服了基于扇出的技术的缺点。
一致的RTL功率精度的关键要求
虽然RTL功率分析的高精度是非常可取的,但这种精度也必须是一致的。这意味着对于各种设计类型或块,精度或RTL功率分析必须在最终实现后功率分析的明确定义范围内(例如在15%内),而不需要每个设计类型或块独有的特殊工具设置。为了实现这种一致的精度,RTL功率分析工具必须使用具有时序和物理感知的快速合成技术,以及signoff质量功率计算引擎。让我们更详细地检查这些要求中的每一个。
时序感知快速合成
嵌入RTL功率分析工具中的快速合成需要时序驱动,就像下游合成和实现(放置和路由)工具一样。基于扇出的快速合成不足以根据时序限制适当调整单元大小,因此可能导致不准确的内部功率计算。这在下面的图3中说明:
在此示例中,关键时序路径以红色突出显示,因为它从输入通过慢速3输入或门到3个逻辑电平的输出。设计中单元的最大扇出为2,如圆圈所示。由于扇出较低,基于扇出的快速合成技术将为每个单元分配最小尺寸(1x)。然而,时序驱动的快速合成算法将识别关键路径并使用更高的驱动强度单元来满足关键路径上的时序限制。这些更高驱动强度的单元在技术库中具有更高的能量值,因此基于扇出的RTL功率分析工具将低估此设计中的内部功率。另一方面,时序驱动的RTL功率分析工具将提供更准确的结果。
物理感知快速合成
如上所述,在设计中计算开关功率需要净电容。传统的基于扇出的RTL功率分析工具使用启发式方法来执行净电容估计——类似于线载模型,电容是根据设计中每个单元的扇出根据扇出电容表计算的,其中电容是表示可能的电线长度范围的统计数字。尽管线载模型在过去甚至被实施工具使用,但线载模型在高级过程节点上变得无效以实现时序闭合。为了实现一致的RTL功率精度,RTL功率分析工具必须是物理软件——即它必须能够在设计中对单元进行第一遍放置,以及全局路由,以获得准确的净电容值。这需要除了技术库之外的技术数据(技术文件)输入。如图4所示,物理感知电容估计会为每个网络产生唯一的准确值,而基于扇出的方法会导致开关功率不准确。
Sgnff质量功率计算引擎
实现一致的RTL功率分析精度的最后一个关键要求是signoff质量功率计算引擎。signoff功率分析通常经过与SPICE结果和硅测量的验证,预计在实际硅值的百分之几以内。signoff分析的如此高精度确保了在带电前预测功率值的可信度,避免了设备启动和系统验证期间的不愉快意外。动态功耗的一个关键组成部分是故障功率——由于设计中不必要的活动而产生的功率,如图5所示。
签署质量功率分析引擎必须准确计算glitch功率。这只有通过单元级或网表表示设计和用于精确计算延迟的内置计时引擎才能实现。使用字级逻辑推理进行快速综合的传统RTL功率分析工具只能应用启发式方法进行glitch功率计算,因此不准确。
https://www.synopsys.com/content/dam/synopsys/solutions/energy-efficient-socs/white-papers/achieving-consistent-rtl-power-accuracy-wp.pdf