低功耗设计单元汇总

描述

为实现低功耗设计,会采用多电源域、多电压域、动态电压调节等策略,需要使用到电压控制单元,包括:isolation、level shifter、power switch、always-on、retention等,下面介绍学习的一些低功耗单元概念、lib格式和pg_type的三种类型。

低功耗单元汇总

isolation cells

隔离单元,用于在电源关断之后,保持输出为定值。用在shut-off电压域的输出。可以防止不定态信号值传播引起下级逻辑错误,和当电压在0.5 VDD附近时造成的短路功耗。

按照放置的位置可以分为sink-side和source-side。其中sink-side指的是放在always-on电压域的单元,里面只有一个供电电源,即always-on的电源。source-side指的是放在可关断电压域的单元,里面有两个供电电源,shutoff电源和always-on电源。

按照结构可以分为AND-type、OR-type和Latch-type类型的单元。

因此组合可以分文sink-side AND-type isolation cell、sink-side OR-type isolation cell、sink-side latch-type isolation cell、source-side AND-type isolation cell with global power、source-side OR-type isolation cell with global power、source-side latch-type isolation cell with global power等。

level shifter cells

电压转换单元,用于将信号从一个电压域转移到另一个电压域。一般用于低电压域到高电压域的转换:因为假如低电压域输出0,那么能够正常控制高电压域的NMOS关闭和PMOS开启,如果低电压域输出1,因为电压较低,一般来说能够控制高电压域NMOS开启,但是不能控制PMOS关闭,造成短路。

power switch cells

电源开关,能够打开/关闭电压域的供电电源,分为header(通过PMOS控制VDD开关)和footer(利用NMOS控制VSS开关,该库没有这一类型)。

学习了4种类型的HEADER结构的power switch cells。包括:

HEADER: switch connects the local power with global power,最基础版,只有一个输入使能。

HEADERBUF:switch with always-on buffer that connects the local power with global power,高级点的,有输入使能和输出。

HEADERBUFTIE::switch with always-on buffer that connects the local power with global power, the n-well and p-well are tied to VDDG and VSS respectively,在HEADERBUF基础上给nwell和pwell加了偏置。

HEADERTIE:,switch that connects the local power with global power, the n-well and p-well are tied to VDDG and VSS respectively,在HEADER基础上加了nwell和pwell偏置。

always-on cells

该电源供电来源于不会被关断的电源域,但是可以被摆放到shut-off电源域,用于驱动always-on net。其结构是shutoff的VDD和VSS在基本单元版图中为feedthrough形式,仅用于连接power rail保证不断路,真正的供电电源为VDDG(backup power)。

类型:

TIEHI、TIELO、二输入与或门、反相器、延时单元、BUF等。

Retention cells

能够在电源关断的情况下保持状态。是时序逻辑,有两种类型:flip-flop和latch。

没找到retention cell的详细结构。

特殊单元

FILLDCAP:为了防止大量标准单元翻转造成的voltage drop问题。其原理是电容公式为C=εS/4πkd,通过下面的版图,增大了S,降低了d,因此提升了VDD和VSS之间的电容,能够维持电源稳定。

VSS

此外还有为nwell和pwell提供偏置电压的特殊单元。

LIB举例:

            sink-side isolation:

cell(A2BISO) { 

cell_footprint : A2BISO ; 

dont_touch : true ; 

dont_use : true ; 

is_isolation_cell : true ; 

sec_class : combinational ; 

sec_cell_type : clamp ; 

valid_location : to ; 

leakage_power

...

pg_pin(VDD) { 

voltage_name : VDD ; 

pg_type : primary_power 

related_bias_pin : "TW" ; 

}

...

pin(Y) { 

direction : output ; 

function : "(A&!ENB)" ; 

related_ground_pin : VSS ; 

related_power_pin : VDD ; 

power_down_function : "!VDD+VSS" ; 

sec_pin_type : data ; 

internal_power

timing

...

}

...

sec_pdt_pin(VDD) { 

sec_pdt_pin_type : power ; 

}

...

}

source-side isolation:

cell(GPA2BISO) { 

cell_footprint : GPA2BISO ; 

dont_touch : true ; 

dont_use : true ; 

is_isolation_cell : true ; 

sec_class : combinational ; 

sec_cell_type : clamp ; 

valid_location : from ; 

leakage_power()

...

pg_pin(VDD) { 

voltage_name : VDD ; 

pg_type : primary_power ; 

related_bias_pin : "TW" ; 

}

pg_pin(VDDG) { 

voltage_name : VDDG ; 

pg_type : backup_power ; 

}

...

pin(A) { 

direction : input ; 

related_ground_pin : VSS ; 

related_power_pin : VDD ; 

isolation_cell_data_pin : true ; 

internal_power

...

}

}

pin(ENB) { 

direction : input ; 

input_voltage : alwaysonpower ; 

related_ground_pin : VSS ; 

related_power_pin : VDDG ; 

isolation_cell_enable_pin : true ; 

sec_pin_type : enable_low ; 

always_on : true ; 

internal_power

...

}

}

pin(Y) { 

direction : output ; 

function : "(A&!ENB)" ; 

output_voltage : alwaysonpower ; 

related_ground_pin : VSS ; 

related_power_pin : VDDG ; 

power_down_function : "!VDD+!VDDG+!TW+VSS+VPW+SX" ; 

always_on : true ; 

internal_power

...

timing

...

}

sec_pdt_pin(VDD) { 

sec_pdt_pin_type : power ; 

}

...

}

Power Switch:

cell(HEAD) { 

cell_footprint : HEADL ; 

dont_touch : true ; 

dont_use : true ; 

switch_cell_type : coarse_grain ; 

sec_cell_type : complex ; 

user_function_class : HEAD ; 

leakage_power

...

dc_current(ivt125x25) { 

related_switch_pin : SLEEP ; 

related_pg_pin : VDDG ; 

related_internal_pg_pin : VDD ; 

}

pg_pin(VDD) { 

voltage_name : VDD ; 

pg_type : internal_power ; (power switch的内部输出电源)

direction : output ; 

switch_function : "SLEEP" ; 

pg_function : "VDDG" ; 

}

pg_pin(VDDG) { 

voltage_name : VDDG ; 

pg_type : primary_power ; (power switch使用的电源)

}

...

pin(SLEEP) { 

direction : input ; 

input_voltage : header ; 

related_ground_pin : VSS ; 

related_power_pin : VDDG ; 

switch_pin : true ; 

always_on : true ; 

...

}

sec_pdt_pin(VDD)

...

}

pg_type的3种类型

    primary_power/ground:

主电源/地,一般功能信号使用的电源/地,可关断

    backup_power/ground:

备用电源/地,always-on的电源/地

    internal_power/ground:

内部电源/地,主要用于power switch的电源/地

审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分