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. sqli-labs less-11 --> less-12

    Less-11(报错注入POST方式) 1.判断是否存在注入点 因为是POST 方式的与GET方式稍有不同,可以选择使用burp suite以及火狐的hackbar进行操作,直接在输入框usernam ...

  2. Wannafly Camp 2020 Day 3D 求和 - 莫比乌斯反演,整除分块,STL,杜教筛

    杜教筛求 \(\phi(n)\), \[ S(n)=n(n+1)/2-\sum_{d=2}^n S(\frac{n}{d}) \] 答案为 \[ \sum_{d=1}^n \phi(d) h(\fra ...

  3. vue常用插件之打印功能、二维码插件、批量打印二维码

    vue实现打印的两种方法 vue实现批量打印二维码 (需安装二维码插件qrcodejs2) 一.vue-print-nb插件 1.安装: npm i vue-print-nb -S 2.全局注册(ma ...

  4. 事件分析法学习笔记(ESM)

    事件分析法基础学习笔记 1.定义   事件分析法是研究某事件的发生对组织价值的影响以及影响程度. 或者说研究特定事件对组织行为的影响. notes:事件分析法的关键点在于探讨所关注事件在某个时段产生的 ...

  5. 堆优化的dijkstra算法

    #include<bits/stdc++.h> using namespace std; #define ll long long #define P pair<int,int> ...

  6. 如何与GitHub同步,将本地文件push到到远程仓库

    Run git config --global user.email "you@example.com" git config --global user.name "Y ...

  7. spring框架中用到了哪些设计模式

    1.代理模式:在AOP和remoting中被用的比较多 2.单例模式:在spring配置文件中定义的bean默认为单例模式 3.模板方法模式:解决代码重复问题 4.前端控制器模式:spring提供了D ...

  8. 从servlet向jsp中传数据用Java接收js调用

    servlet: response.sendRedirect("showMessage.jsp?ValueA=1"); jsp: var a=<%=request.getPa ...

  9. Could not connect to SMTP host: smtp.qq.com, port: 465, response: -1 SpringBoot发送邮件

    解决方案 换端口 QQ邮箱可以把端口换成587 设置属性 spring.mail.properties.mail.smtp.ssl.enable=true 原因 465端口是为SMTPS(SMTP-o ...

  10. malloc函数动态分配内存

    #include <stdio.h> #include <stdlib.h> //malloc free #include <windows.h> //sleep ...