低功耗设计与验证
Shaka / 2023-08-15
一. 简介
功耗是现代复杂芯片最重要的维度之一。设计人员可利用功率门控、电压调整、体偏压等复杂功耗分析技术来节省功耗及减少散热。因此,芯片的功耗分析验证是一个相当复杂的过程。功耗管理调试的难度导致大量 EDA 供应商不仅要提供功耗分析前端仿真与硬件加速仿真功能,而且还要推出聚焦于功耗管理验证的工具 —— 从静态分析和基于规则的功耗检查,到功耗分析逻辑等效性检查和 Layout 工具,从前端设计阶段一直到后端实现阶段。
功耗管理调试已渗透到传统 HDL 仿真的方方面面,几乎所有的主要 EDA 供应商都需要提供如下功耗专用调试特性:UPF(统一功耗格式) 创建对象的可视化,RTL 源和波形窗口中的 HDL 信号着色和高亮显示,功耗相关的动态信息/状态消息,功耗专用断言的自动生成以及功耗报告的生成。
二、分类
功耗分析主要可以分为两个部分 静态功耗和 动态功耗。
1. 静态功耗(漏电流功耗 leakage power)
CMOS电路中,静态功耗主要是漏电流引起的功耗。即使电路处于静止状态,没有时钟,没有任何switching,这部分功耗依然存在。
漏电流的计算主要通过.lib中的数据,从而选定一种或几种适合当前design需求的library。如 CellA 相比 CellB 的 leakage 比较大,因此再做 PR 时就不会选 CellA。
1.1 编译时的静态验证
许多工具会根据 UPF 中描述的 PST 和功耗状态,以统计方式确定域边界处隔离和电平转换器单元的需求。
2. 动态功耗
2.1 开关功耗(Switch Power)
Switch Power是在CMOS电路中,对负载电容进行充放电时消耗的功耗。通过开关功耗的公式 Pswitch = 0.5 * V^2 * C * Tr
计算。
2.2 内部功耗(Internal Power)
内部功耗(Internal Power)也称短路功耗,是由于信号翻转时,有一段时间 PMOS 和 NMOS 同时导通,那么电源 VDD 到地 VSS 之间就有了通路,形成短路电流。
内部功耗的公式:Pshort = Tr * V * Qx
由于这部分是由标准单元内部switch造成的功耗。工具根据.lib里的数据计算这部分功耗。输入A变化引起的功耗。工具根据输入A的transition time查询rise_power, fall_power 表。
三、功耗分析工具
功耗分析预测分析工具包括PowerArtist(Ansys)、Spyglass Power(Synopsys)、Prime Time PX(Synopsys)和Redhawk(Ansys)等。 下表为不同功耗分析工具的比较。
RTL功耗 | 门级功耗 | ||
---|---|---|---|
工具 | PowerArtist & Spyglass | PrimeTime PX | Redhawk |
目的 | 为设计提供建议 | 准确的功耗估计 | 静态和动态分析 |
使用难度 | 易用,适用于硅前验证早期 | 复杂,适合在门级 | 复杂,适合在门级 |
专注领域 | 功耗管理的功能优化 | 布局布线的影响 | 能耗一致性问题调试 |
四、低功耗与断言(SVA)
系统 Verilog 断言 (SVA) 是动态验证低功耗设计的强有力方法。断言可用来验证功耗控制逻辑序列,以及确保功耗模式转变之前和之后能满足特定要求。许多 EDA 供应商会提供自动化的、工具生成的断言,以 在运行时检查隔离和电平转换器单元是否缺少或不正确。针对域边界处的每个接口信号都会插入一个断言,检查是否需要隔离和电平转换器单元。
五、IC 设计中的功耗分析流程
1. 逻辑综合后的功耗分析(以 Synopsys 设计流程为例)
PTPX所需文件:
1.逻辑综合后的verilog文件(.v)
2.静态时序分析时用到的约束文件(.sdc)
3.RTL的仿真波形文件(.vcd)
4.有功耗信息的库文件(.db)
Synopsys PTPX 功耗分析的流程:
1.允许功耗分析功能;
2.设置分析模式(average:不用仿真文件;time-based,时序仿真件);
- 读入设计和库文件 ;
- 指定operating condition;
- 时序分析;
- 获取activity data(rtl-level or gate-level)
- 设置功耗分析选项;
- 功耗分析;
- 生成功耗分析报告;
2. 布局布线后的功耗分析
与综合后功耗分析流程类似。
六、提高验证效率和电路规模
现代 EDA 产商 多使用 multi-threaded(多线程)、distributed processing(分布式运算)和Hierarchical analysis(分层分析)技术提高验证效率和电路规模。