为实现低功耗设计,会采用多电源域、多电压域、动态电压调节等策略,需要使用到电压控制单元,包括: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之间的电容,能够维持电源稳定。
此外还有为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的电源/地
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !