Power Analysis是芯片设计实现中极重要的一环,因为它直接关系到芯片的性能和可靠性。Power Analysis 需要Timing Analysis 产生包含频率、transition 等时序信息的 Timing File,也需要包含Net Capacitance和Resistance信息的SPEF文件,功耗分析工具根据timing file 和RC value计算功耗或者分析IR-Drop/EM。

在介绍数字后端Power Signoff Flow之前,先大概论述一下芯片的功耗构成和基本原理。芯片功耗主要分为Static Power (静态功耗)和Dynamic Power(动态功耗)两大类。动态功耗来自于芯片晶体管的开关翻转,它取决于芯片的时钟频率和switching activity。静态功耗是指芯片晶体管的LeakagePower(泄漏功耗)。

进一步细分,动态功耗可以分为Internal Power和Switching Power.

  • Switching power是由于芯片内instance 上的逻辑翻转对有效负载电容进行充放电所消耗的功耗。公式如下,其中,a是switching activity,f是clock frequency,Ceff是有效负载电容,Vdd是芯片电源电压。

  • Internal power是由于晶体管信号传输的某一个瞬间,PMOS和NMOS会同时导通的短路电流消耗的功耗。对于更低阈值电压或者transition time大的晶体管internal power会更大。
  • 静态功耗,即漏电功耗(leakage power)。漏电流早期的CMOS工艺里是可忽略的,但是随着近年来器件尺寸越来越小以及阈值电压的减小使Leakage current在功耗分析中不能再被忽视。Leakage power主要由以下几个方面组成

推荐一篇论文:Leakage Current Mechanisms and Leakage Reduction Techniques in Deep-Submicrometer CMOS Circuits。作者是KaushikRoy.

Power Signoff

当今主流的power signoff 工具有Cadence的Voltus 和 ANSYS公司的Redhawk。限于作者工作经验,本文就基本flow 做一简单概述。

Power signoff 主要包括静态、动态功耗分析和Signal-EM分析以及基于芯片封装模型的SIPI分析等。

静态功耗分析(Static IR-drop/EM Power Analysis):这里的静态功耗分析并不是leakage 功耗,而是指一种基于芯片内部电路在直流工作模式下的功耗分析。

  • 芯片上的PG网络在静态功耗分析中会近似于电阻网络

  • 而且流经各个instance的电流都认为是直流电流。

  • 均值电流都是在每个instance上算的,利用欧姆定律即可直接算出节点电压。电迁移值Electromigration 在电源网络分析之后会得出金属线网络的电流密度,再根据对应工艺的Tech file里对于Electromigration的极限电流密度的约束,便可以得出整个芯片的电迁移报告。报告里所有电迁移值都用百分比来表示,一般而言都是用100%来signoff芯片电迁移是否可以满足极限值。<这里涉及到不同工艺下的EM table和Chip Reliability 的内容;对于电迁移概念的理解,还有一个概念是Blech Length和Black Equation;后续会做相关分享。

  • Static IR/EM Analysis:得到芯片功耗之后,会去分析IR-drop和EM,static模式下主要check 芯片的PowerMesh 够不够强壮,有没有power/ground mesh 的short 和open;再就是memory 的channel 处standard cell 是否有足够的metal覆盖。

Static IR/EM Analysis:得到芯片功耗之后,会去分析IR-drop和EM,static模式下主要check 芯片的PowerMesh 够不够强壮,有没有power/ground mesh 的short 和open;再就是memory 的channel 处standard cell 是否有足够的metal覆盖。

动态功耗分析(Dynamic IR-drop/EM Power Analysis)

  • On-chip的PG mesh 被模型化成RLC网络;

  • 对于有开关和状态翻转的instance cell,其电流模型是时间和电压值的函数;

  • 对于没有翻转的instance cell,会分析其中有效的decoupling capacitance以及ESR (Effective Series Resistance)和leakage current。

  • 每个instance的电流模型是PWL Current Model;

  • Dynamic Voltage Drop是通过在每一个电路节点的瞬态分析得到的

对于Dynamic IR-drop/EM, 要特别说一下APL file和Decoupling Capacitance。

  • APL file:通常由foundary 提供,也可以用工具自带的utility产生。APL file对于dynamic IR-drop analysis会更准确,对于device 内部的decoupling 电容可以分析进去,dynamic结果看起来更符合design实际情况。

  • Decoupling Capacitance:Decap实际上就是在Vdd和Gnd之间加入的隔离电容,可以去除很多由电源上的噪声而引起的Voltage Drop。在debug dynamic IR-drop时需要结合decap density map进行比对,看是不是这些issue points处的decap density过低。decap最好尽可能分布均匀而且在一些敏感基本单元附近有足够的decap cells。

浅谈Power Signoff的更多相关文章

  1. 浅谈 Linux 内核无线子系统

    浅谈 Linux 内核无线子系统 本文目录 1. 全局概览 2. 模块间接口 3. 数据路径与管理路径 4. 数据包是如何被发送? 5. 谈谈管理路径 6. 数据包又是如何被接收? 7. 总结一下 L ...

  2. (转)浅谈 Linux 内核无线子系统

    前言 Linux 内核是如何实现无线网络接口呢?数据包是通过怎样的方式被发送和接收呢? 刚开始工作接触 Linux 无线网络时,我曾迷失在浩瀚的基础代码中,寻找具有介绍性的材料来回答如上面提到的那些高 ...

  3. 《Machine Learning in Action》—— 浅谈线性回归的那些事

    <Machine Learning in Action>-- 浅谈线性回归的那些事 手撕机器学习算法系列文章已经肝了不少,自我感觉质量都挺不错的.目前已经更新了支持向量机SVM.决策树.K ...

  4. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  5. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  6. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  7. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  8. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  9. 浅谈angular2+ionic2

    浅谈angular2+ionic2   前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别.   1. 项目所用:angular2+ionic2 ...

随机推荐

  1. Android中的内存管理机制以及正确的使用方式

    概述 从操作系统的角度来说,内存就是一块数据存储区域,属于可被操作系统调度的资源.现代多任务(进程)的操作系统中,内存管理尤为重要,操作系统需要为每一个进程合理的分配内存资源,所以可以从两方面来理解操 ...

  2. 1级搭建类110-Oracle 18c SI FS(Windows Server 2019)公开

    Oracle 18c 单实例文件系统在Windows Server 2019上的安装 在线查看

  3. C语言实现链式二叉树静态创建,(先序遍历),(中序遍历),(后续遍历)

    #include <stdio.h>#include <stdlib.h> struct BTNode{ char data ; struct BTNode * pLchild ...

  4. GitHub概述

    1 引言 GitHub是为开发者提供Git仓库的托管服务,是一个让开发者与同事.同学及相同兴趣爱好者共享代码的完美场所. GitHub公司总部位于美国旧金山,拥有一只似章鱼又似猫的吉祥物. GitHu ...

  5. Docker 镜像仓库为什么要分库分权限?

    先说一个事故案例: 场景:某大型互联网电商公司,使用一个镜像仓库管理所有Docker镜像.开发者打出的镜像上传到唯一的镜像库,测试通过后,运维环境的 Kubernetes 直接从这个库里拉取镜像,所有 ...

  6. Wannafly Camp 2020 Day 1I K小数查询 - 分块

    给你一个长度为\(n\)序列\(A\),有\(m\)个操作,操作分为两种: 输入\(x,y,c\),表示对\(i\in[x,y]\),令\(A_{i}=min(A_{i},c)\) 输入\(x,y,k ...

  7. Spring-JDBCTemplate介绍

        一.Spring对不同的持久化支持: Spring为各种支持的持久化技术,都提供了简单操作的模板和回调 ORM持久化技术 模板类 JDBC org.springframework.jdbc.c ...

  8. python爬取连续一字板股票及当时日期数据【原创分享】

    本篇为个人测试记录,记录爬取连续一字板的股票及当时日期. import tushare as ts import pandas as pd import time # 筛选一字板的策略 def gp_ ...

  9. R parallel包实现多线程1

    并行执行 Yes! Well done! Socket clusters are initialized without variables, so a_global_var wasn't found ...

  10. 洛谷P1583 魔法照片

    https://www.luogu.org/problem/P1583 话不多说,其实就是模拟,然后,各种繁琐 #include<bits/stdc++.h> using namespac ...