本文转自:自己的微信公众号《集成电路设计及EDA教程》

前面的推文中我们分别介绍了低功耗设计中的Multi-VDD技术以及门控电源技术。在实际的低功耗设计中,门控电源技术中也常常结合Multi-VDD技术一起使用。

在使用了Multi-VDD技术之后,设计中会形成多个Power Domain(PD):

不同Power Domain之间如果需要数据的Talk,那么在中间需要插入Level Shifter(电平转换单元):

本推文我们来讲解一下第二个特殊的Cell -- Level Shifter。

Level shifter Cell

Level Shifters主要是多供电电压(MSV)的设计中,在2个不同电压域之间有数据交互的情况下,需要将某个电压域输出的电平转换成另一个电压域可以识别的逻辑电平,因此需要用到电平转换的器件,这就是Level Shifter。这种Cell在我们使用的IO中也广泛存在,用于将外部的电压与Core电压之间进行转换。

根据电平转换的方向,Level Shifter可以分为三种:

HL                ->           高电平转低电平

LH                ->           低电平转高电平

HL_LH         ->           双向转换均可

另外,如果设计中还采用了前面推文中讲的Power Gating技术,在不通电压域之间进行通信的情况下,除了需要添加Level Shifter之外还需要用到另外一种Cell -> Isolation Cell。因为电源关断之后,其驱动的电路就出现了输入浮空的情况,它的输入会处于高阻态,会用泄放电流将上面的电荷缓慢泄放掉,再次期间,其状态是不能确定的(如下图所示)。因此,为了解决这个问题,我们需要在电源关闭电路的输出端添加一个隔离单元(Isolation Cell)将输出钳位到一个确定的状态。

一般来说Isolation Cell的输出部分有较大的电容负载,也就是说Isolation Cell的延时将会比较大,对时序有一定的影响,是需要注意的。

关于Isolation Cell的详细内容下篇推文单独讲。

如果设计中含有Multi-VDD且有的Power Domain可以被关断,多个Domain之间还有数据交互,那么既需要用到Level Shifter也需要Isolation Cell,这种情况也非常常见。因此一般Foundary都会那种带有Isolation功能的Level shifter,兼两种功能。

下图就是这种情况,PD1是可被关断的,它与PD2以及PD3之间用的Level Shifter就是带有Isolation功能的Level Shifter。而PD2是Always On的,所以它送到PD3的数据只需要用普通的Level Shifter即可。

Level Shifter的物理布局

Level shifter是 Always-on Cell,一般有多个电源地Pin。它们的结构比较复杂,一般要比普通的Cell高度要高,它们的作用非常关键,我们需要保证它们的电源地连接是正确的。

考虑到以上因素,很多设计会采用下面的方案来摆放Level Shifter,将它们放置在特定区域内,Level Shifter的电源地Rail以及PG Pin的连接也更加规范有条理:

如下图所示为Dual Height的Level shifter Cell在版图中的摆放及其PG Pin的连接:

上面这种PG的连接特别的不方便,可能会占用较多的Routing Resources引起DRC。

除此之外,还可以采用下面的双Power Rail的方式,Level shifter横跨两个Rail的高度,两个不同的VDD,一个GND。

下面描述的是Level Shifter的Liberty格式:

cell(level_shifter)   {

is_level_shifter : true ; #定义为true,则该Cell被认为是lever shifter cell

level_shifter_type : HL | LH |   HL_LH ; #定义电平转换方向,HL表示高电平转低电平,LH表示低电平转高电平,HL_LH表示都可以用

input_voltage_range   (<float>, <float>); #输入电压范围,指该Cell输入连接的电路,电压工作范围,EDA工具会根据Operating   Condition的选择,检查该Cell是否满足电路需要,可以在功能pin中进行定义,如果在cell主体定义,则必须与output_voltage_range同时存在

output_voltage_range   (<float>, <float>);#输出电压范围,指该Cell输出连接的电路,电压工作范围,EDA工具会根据Operating   Condition的选择,检查该Cell是否满足电路需要,可以在功能pin中进行定义,如果在cell主体定义,则必须与input_voltage_range同时存在

pg_pin(<pg_pin_name_P>) {

pg_type : primary_power;

std_cell_main_rail : true; #该primary_power连接在Cell设计中的主rail

}

pg_pin(<pg_pin_name_G>) {

pg_type : primary_ground;

}

pin (data) {

direction : input;

input_signal_level :   “<voltage_rail_name>”; #输入信号电压环名

input_voltage_range (   <float> , <float>);

level_shifter_data_pin : true ;   #数据功能Pin

}/* End pin group */

pin (enable) {

direction : input;

input_voltage_range (   <float> , <float>);

level_shifter_enable_pin : true   ; #使能Pin,如果level   shifter还作为isolation cell的时候,使能信号会在电源关闭时停止level shifter功能,仅仅作为isolation cell存在

}/* End pin group */

pin (output) {

direction : output;

output_voltage_range (   <float> , <float>);

power_down_function :   (!pg_pin_name_P + pg_pin_name_G);

}/* End pin group */

}/* End Cell group */

#power_down_function 属性用来识别出何时output pin处于电源被关断的状态。

The power_down_function string   attribute is used to identify the condition when an output pin is switched   off by pg_pin and to specify the Boolean condition under which the cell’s   output pin is switched off (when the cell is in "off" mode due to   the external power pin states)

 

参考文献:

孙轶群 ,国民技术股份有限公司,数字集成电路低功耗物理实现技术与UPF

Synopsys Low-Power Flow User Guide

低功耗设计技术--Multi VDD--Level shifter的更多相关文章

  1. (数字IC)低功耗设计入门(三)——系统与架构级

    前面讲解了使用EDA工具(主要是power compiler)进行功耗分析的流程,这里我们将介绍在数字IC中进行低功耗设计的方法,同时也结合EDA工具(主要是Design Compiler)如何实现. ...

  2. (数字IC)低功耗设计入门(六)——门级电路低功耗设计优化

    三.门级电路低功耗设计优化 (1)门级电路的功耗优化综述 门级电路的功耗优化(Gate Level Power Optimization,简称GLPO)是从已经映射的门级网表开始,对设计进行功耗的优化 ...

  3. Retimer、Redriver(Level Shifter)

    重定时器Retimer和驱动器Redriver9(Level Shifter) 在高速串行通道的信号传输中,需要使用Redriver 和Retimer来保证信号传输的质量. Redriver,可以重新 ...

  4. MCU低功耗设计(三)产品

    关键词: 低功耗设计, 无线通信产品, LoRa长距离, Contiki系统, 能耗实时跟踪 引言: 能耗对电池供电的产品来说是一个重大问题.一旦电能耗尽设备将"罢工".在< ...

  5. 高性能的EMI滤波器及其小型化设计技术

    1 EMI滤波器的常见问题及发展趋势首先介绍了影响EMI滤波器性能/体积的因素及EMI滤波器的常见问题:低频传导发射高.高频传导/辐射发射高.体积大,从而分析出EMI滤波器的发展趋势为高性能和小体积, ...

  6. (数字IC)低功耗设计入门(一)

    低功耗设计这个专题整理了好久,有一个月了,有图有证据: 然而最近一直有些烦心事.郁闷事,拖延了一下,虽然现在还是有点烦,但是还是先发表了吧.下面我们就来聊聊低功耗设计吧,由于文章比较长,因此我就不一次 ...

  7. (数字IC)低功耗设计入门(四)——RTL级低功耗设计

    二.RTL级低功耗设计 前面介绍了系统级的低功耗设计,换句话说就是在系统级降低功耗可以考虑的方面.系统级的低功耗设计,主要是由系统级设计.具有丰富经验的人员实现,虽然还轮不到我们设计,我们了解一下还是 ...

  8. (数字IC)低功耗设计入门(五)——RTL级低功耗设计(续)

    二.RTL级低功耗设计(续) 前面一篇博文我记录了操作数隔离等低功耗设计,这里就主要介绍一下使用门控时钟进行低功耗设计. (4)门控时钟 门控时钟在我的第一篇博客中有简单的描述,这里就进行比较详细的描 ...

  9. (数字IC)低功耗设计入门(七)——门级电路低功耗设计优化(续)

    前面讲解了门级功耗的优化方法,包括静动态和总体的功耗.现在来记录一下门级层次(有点书也说是在系统级)常用的一种低功耗方法--电源门控. ①电源门控概述与原理 电源门控是指芯片中某个区域的供电电源被关掉 ...

随机推荐

  1. Spring应用事件(Application Event)

    Spring的事件为Bean与Bean的消息通信提供的支持.当一个Bean处理完了一个任务以后,希望另一个Bean知道并能做出相应的处理,这是我们就需要让另一个Bean监听当前Bean所发送的事件. ...

  2. HDU3652 B-number 题解 数位DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3652 题目大意: 求区间 \([1, n]\) 范围内包含连续的数位"13"并且能 ...

  3. 31.用python中的serial向串口发送和接收数据(案例一)

    代码功能说明:1.向串口助手发送十六进制数据:0X01,0X03,0X00,0X00,0X00,0X01,0X84,0X0A: 2.用串口助手向代码发送数据,并将发送过来的数据保存在数据库中,按数据和 ...

  4. JUC 中的 Atomic 原子类总结

    1 Atomic 原子类介绍 Atomic 翻译成中文是原子的意思.在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的.在我们这里 Atomic 是指一个操作是不可中断的.即使是 ...

  5. 变量的取用与设定:echo,变量设定规则,unset

    1.变量的取用echo echo $variable echo ${variable} 2.变量的设定规则 3.让我设定的name=VBird应用在下个应用程序 4.进入到核心的模块目录 5.取消设定 ...

  6. SQL Server2012高可用之事物复制(发布订阅)测试

      (一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既不可写也不可读,即采用的高可用技术为"数据库镜像".存在的问题为 ...

  7. 【记】Linux下安装JDK1.7

    Java官网已经不提供除最新版本以外版本的JDK下载了,下载JDK1.7,密码: rsqg 本地Linux系统为Centos6.9,本身就没安装Java:已安装Java需要先卸载,卸载方法请百度. 1 ...

  8. file_get_contents函数获取不到数据的一种情况

    问题:  file_get_contents($url) 获取不到数据,尽管URL地址正确,函数使用正确.如下代码 $url = "https://www.baidu.com"; ...

  9. 小白学Java:老师!泛型我懂了!

    目录 小白学Java:老师!泛型我懂了! 泛型概述 定义泛型 泛型类的定义 泛型方法的定义 类型变量的限定 原生类型与向后兼容 通配泛型 非受限通配 受限通配 下限通配 泛型的擦除和限制 类型擦除 类 ...

  10. opencv利用svm训练

    ]]]]]])rand2 = np.array([[]]]]]])label = np.array([[]]]]]]]]]]])data = np.vstack((rand1]]])pt_data = ...