低功耗IC后端培训 | 盘点Power Switch Cell在实际项目中应用注意事项

news2024/11/22 6:48:27

下面直接进入今天的技术干货分享——全面盘点power gating cell在数字IC后端实现中的各种注意事项。

什么是Power Gating?

随着工艺制程越做越小和芯片规模越来越大,芯片的leakage的比重越来越高,数字后端实现时就得考虑leakage的优化。而leakage优化很重要的一个手段就是power gating。

Power Gating字面意思就是对电源Power进行控制,即通过切断电源网络的方式来节省leakage。

之所以能这么干,是因为芯片中有的模块并不需要一直处于工作的状态。所以我们仅仅需要在模块需要工作的时候给它供上电即可。这个可以通过我们预先设置的控制信号来做控制。

Power Gating Cell的类型

Foundary工艺库中提供了两种类型的Power gating cell。一种是Coarse Grain Footer(Footer类型),另外一种是Coarse Grain Header(Header类型)。Footer类型是通过开关VSS来实现电源网络VSS到Virtual VSS的开启与关闭。而Header类型则是通过开关VDD来实现电源网络VDD到Virtual VDD的开启与关闭。

实际项目中大都是采用Header类型的Power Gating Cell。
在这里插入图片描述
下图为咱们社区IC训练营项目Cortexa7core中使用的Power gating cell(MTCMOS)。显然它是一个Header类型的Power Switch Cell。当系统判断需要开启这个模块时,就会把TVDD到VDD这个电源网络接通,否则就会关闭。
在这里插入图片描述

何时加Power Gating Cell?

如果当前模块需要做Power gating,我们通常说这个模块是一个Power Domain(简称PD)。对于大型SOC芯片来说,可能会包含几百个PD。

当项目告诉你这个设计需要做Power Domain时,我们后端实现时就需要在这个设计的floorplan阶段加入MTCMOS。

Power Gating Cell的数量

通常我们在加power gating cell之前需要估算下当前设计能接受的IR drop百分比,然后计算出所需要的数量(典型的欧姆定律,power gating cell的电阻已知)。具体计算过程之前分享过好几次了,这里就不再详细说明。如果还有不懂,可以移步小编知识星球上查阅。

我们为了得到一个更好的IR drop结果,是不是可以通过多加power gating cell来实现呢?理论上肯定是可以的。但是实际项目中并非越多越好,主要原因有以下几点。

  • 每个power gating cell的面积较大

加的power gating cell越多就会占用更多的有效面积,留给标准单元的面积就会更少(固定模块面积的情况下)。

  • 每个power gating cell都有leakage
  • 在这里插入图片描述
    因为即便MTCMOS是处于关断状态,它还存在一定的leakage。咱们训练营项目所用的Header类型MTCMOS的结构如上图所示。所以这个leakage来源是上面那个High-VT的PMOS管。
  • 每个power gating cell都需要有TVDD的电源网络(占用更多绕线资源)
  • 带power gating cell的设计,ir drop会更大

Power Gating Cell加入的pattern

目前主流有两种加法,分别是Column(line)和Stagger样式,具体如下图所示。这两种所加的Power switch cell数量是一样的,区别在于前者是按照固定的pitch来均匀摆放,而后者是按交错的方式来摆放。
在这里插入图片描述
在这里插入图片描述
下图为咱们社区训练营项目的Power switch cell的加法。对于设计中带Macro的模块,我们需要如何来给macro加power switch cell呢?

在这里插入图片描述

控制信号串链方式

T28工艺库中提供了单链和双链两种类型的Power switch cell。目前大家都是使用双链类型的,即这个Power switch cell的开关控制信号有Nsleep1in,Nsleep1out,Nsleep2in和Nsleep2out这四个控制信号。

官方也是强烈建议使用双链结构的MTCMOS。为了防止开启MTCMOS时产生较大的power glitch,foundary建议上电时先开启Nsleep2这条链,即先开启小管子再开大管子。
在这里插入图片描述
将整个设计中所有Power switch cell控制信号按照上面的要求串好链之后的效果如下图所示。
在这里插入图片描述
但实际项目中为了防止上电时有较大的rush current,我们一般还会使用多条nsleep chain来串完所有的power switch cell。

【思考题】串链后Power Switch Cell Nsleep chain存在max transition violation,能否通过插普通buffer来解决?

好了,今天的内容分享就到这里。另外,因为公众号更改推送规则,小编分享的每篇干货不一定能及时推送给各位。为了避免错过精彩内容,请关注星标公众号,点击“在看”,点赞并分享到朋友圈,让推送算法知道你是社区的老铁,这样就不会错过任何精彩内容了。

如果你想和小编有更进一步的沟通交流的机会,欢迎加入小编知识星球,让我们一起学习成长,共同进步。相信在这里能让你成就一个更完美的自己。

在这里插入图片描述
欢迎关注“吾爱IC社区”

微信号:ic-backend2018

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/560506.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

交通标志识别系统-卷积神经网络

介绍 使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Django框架,开发网页端操作平台,实现用户上传一张图片识别其名…

Linux 软件包管理工具

rpm命令管理软件包 1.学会看rpm包,通过rpm包的名字来了解这个软件包的一些基础信息xfsprogs-4.19.0-2.el8.x86_64.rpm xfsprogs 软件名字 4.19.0 版本号 2 发行次数 el8 适用于哪个操作系统(rel8) x86_64 软…

Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践(解决升级问题)

在Streamlit官方文档中,没有提供提供安全身份验证组件。目前,第三方streamlit-authenticator提供此功能,详见引用我原来的博文,在《Streamlit应用程序使用Streamlit-Authenticator进行用户的安全身份验证实践》文中,原…

Vue计算属性

1,为什么Vue会设计计算属性(computed property)? 答:一定程度上,Vue的作用就是管理呈现到HTML页面上的所有数据data的,每当一个data发生变化,Vue实例就会自动的去更新模板里面使用到data的地方,…

pytorch完整模型训练套路

文章目录 CIFAR10数据集简介训练模型套路1、准备数据集2、加载数据集3、搭建神经网络4、创建网络模型、定义损失函数、优化器5、训练网络6、测试数据集7、添加tensorboard8、转化为正确率9、保存模型 完整代码 本文以 CIFAR10数据集为例,介绍一个完整的模型训练套路…

机器学习-线性代数-向量、基底及向量空间

概述 文章目录 概述向量理解向量运算 基底与向量的坐标表示基底与向量的深入基底与向量选取与表示基底的特殊性张成空间 向量 理解 直观理解 行向量:把数字排成一行A [ 4 5 ] [4~ 5] [4 5]列向量:把数字排成一列A [ 4 5 ] \ \left [ \begin{matrix}…

多线性开发实例分享

一. 概述 首先,在这里有必要和大家复现一下我使用该技术的背景: 在使用若依框架的时候,由于实际开发的需要,我需要配置四个数据源,并且通过mapper轮流去查每个库的指定用户数据,从而去判断改库是否存在目标…

构建一个简易数据库-用C语言从头写一个sqlite的克隆 0.前言

英文源地址 一个数据库是如何工作的? 数据是以什么格式存储的(在内存以及在磁盘)?何时从内存中转移到此磁盘上?为什么每张表只能有一个主键?回滚一个事务是如何工作的?索引是以什么格式组织的?什么时候会发生全表扫描, 以及它是如何进行的?准备好的语句是以什么格式保…

#C2#S2.2~S2.3# 加入 factory/objection/virtual interface 机制

2.2 加入factory 机制 factory机制的实现被集成在了一个宏中:uvm_component_utils。这个宏所做的事情非常多,其中之一就是将my_driver登记在 UVM内部的一张表中,这张表是factory功能实现的基础。只要在定义一个新的类时使用这个宏&#xff0…

斐波那契数列相关简化4

看这篇文章前需要看下前面三篇文章,最起码第一第二篇是需要看一下的 斐波那契数列数列相关简化1_鱼跃鹰飞的博客-CSDN博客 斐波那契数列数列相关简化2_鱼跃鹰飞的博客-CSDN博客 算法玩的就是套路,练练就熟悉了 再来一个: 用1*2的瓷砖&am…

如何在 CentOS Linux 上安装和配置 DRBD?实现高可用性和数据冗余

DRBD(Distributed Replicated Block Device)是一种用于实现高可用性和数据冗余的开源技术。它允许在不同的服务器之间实时同步数据,以提供数据的冗余和容错能力。本文将详细介绍如何在 CentOS Linux 上安装和配置 DRBD。 1. 确认系统要求 在…

一文带你了解MySQL之InnoDB统计数据是如何收集的

前言 本文章收录在MySQL性能优化原理实战专栏,点击此处查看更多优质内容。 我们前边唠叨查询成本的时候经常用到一些统计数据,比如通过show table status可以看到关于表的统计数据,通过show index可以看到关于索引的统计数据,那…

MySQL之事务初步

0. 数据源 /*Navicat Premium Data TransferSource Server : localhost_3306Source Server Type : MySQLSource Server Version : 80016Source Host : localhost:3306Source Schema : tempdbTarget Server Type : MySQLTarget Server Version…

在线OJ常用输入规则

一、字符串输入规则 1.1 单行无空格字符串输入 输入连续字符串,cin默认空格/换行符为分割标志。 string s; //输入连续字符串,cin默认空格/换行符为分割标志。 cin >> s; 1.2 单行有空格字符串输入 getline函数接受带有空格的输入流&#xff…

C++——初识模板

文章目录 总述为什么要有模板函数模板概念函数模板使用方法函数模板的原理函数模板的实例化隐式示例化显式实例化 模板参数的匹配规则 类模板类模板的实例化 总述 本篇文章将带大家简单的了解一下c的模板方面的知识,带大家认识什么是模板,模板的作用&…

STL-常用算法(一.遍历 查找 排序)

目录 常用遍历算法: for_each和transform函数示例: 常用查找算法: find函数示例: find_if函数示例: adjacent_find示例: binary_search函数示例: count函数示例: count_if函…

训练/测试、过拟合问题

在机器学习中,我们创建模型来预测某些事件的结果,比如之前使用重量和发动机排量,预测了汽车的二氧化碳排放量 要衡量模型是否足够好,我们可以使用一种称为训练/测试的方法 训练/测试是一种测量模型准确性的方法 之所以称为训练…

springmvc升级到springboot2踩的坑

声明:删除springmvc的jar配置改成springboot的,若别的组件依赖springboot该升级就升级,该删掉就删掉,此文章只记录升级后的坑,升级springboot所需的jar请自行百度。 一.Hibernate的坑 概念:jpa和Hibernate的关系,jpa…

【JAVAEE】网络编程的简单介绍及其实现

目录 1.什么是网络编程 网络编程中的基本概念 常见的客户端服务端模型 2.Socket套接字 Socket套接字分类 举例对比TCP和UDP 3.UDP数据报套接字编程 DatagramSocket API DatagramPacket API InetSocketAddress API 4.实现一个简单的UDP回显服务器与客户端 服务端与客…

当前最新免费使用GPT-4方法汇总

目录 前言 温馨提示 Ora AI 使用方式 使用测试 Forefont chat 使用方式 使用测试 Perplexity AI 使用方式 使用测试 Poe 总结 前言 目前GPT-4的收费对于大多数人而言都还是不便宜,且付费方式复杂,使用上还有每3小时25个问题的限制&#xff…