文章目录
一、低功耗单元介绍
UPF设计中常用的低功耗单元主要包括以下几种:Isolation Cell、Level Shifter cell、Power Switch cell、State Retention cell、Always on cell等。不同的单元使用在不同情况下,具体应用如下:
-
Isolation cell:Used at interface of off power domain to always on power domain
(隔离单元,常用于关断电源域到常开电源域的接口)
(一般接在可以关断的电源域的输出端,防止关掉电源后无效信号X态传播;同时可以防止瞬态开路电流产生的静态功耗) -
Level Shifter cell:Used at interface of domain have different voltage
(电压/电平转换器,常用于有不同电压的电源域接口)
(通常是将信号从一个电压域切换到另一个电压域;不同电压域的VDD是不一样的,如果不进行电压转换,器件就无法正常工作) -
Power Switch cell:Used in of power domain to shut off and turn on domain supply
(电源开关单元,常用于电源域内部以关闭和打开电源域供电)
(提供了关闭逻辑电源域电源的能力) -
State Retention cell:Used in shut off domain to save critical bits when domain get shut off
(保留单元,常用于关断电源域内以便电源域关断后保存关键信号)
(能够在电源关闭的情况下,保持内部状态的特殊单元) -
Always on cell:Used to buffering always on nets in shut off domain or nets cross different domain
(一种特殊的cell,它的供电来自于不会被关断的电源域(always-on domain), 但是被摆放在可以被关断的电源域)
(能够放置在可关断的power domain,因为它的供电是true power或者是main power,或者叫always-on power)
二、Isolation
Isolation cell,即隔离单元,属于Interface cell(同Level Shifter)。一般用于shut off power domain和always on power domain之间的interface上,其目的就是为了在shut off power domain关断后输出一个确定的值(可以是0, 也可以是1),以防止X态从shut off power domain传递向always on power domain,影响always on power domain的信号逻辑值;同时isolation cell可以降低always on power domain在interface处的晶体管上短路电流,防止由此造成的较大的静态功耗。
2.1、Isolation分类
Isolation cell一般存在三个信号接口,包括1个data pin、1个enable pin、1个output pin。根据其功能可以分为以下几个主要种类。除此之外,Isolation cell根据放置位置还可分为From type(位于shut off PD输出端)、To type(位于always on PD输入端)、Any location(位于任意PD中)三类。
- AND型Isolation cell:功能类似 “与” 门,即当其起作用时(enable使能),会输出逻辑0;当其所属于的power domain没有关断(非使能状态)时,则直接输出data pin上的值
- OR型Isolation cell:功能类似 “或” 门,即当其起作用时(enable使能),会输出逻辑1;当其处于非使能状态时,则会输出data pin上的值
- LATCH型Isolation cell:在power domain下电前会锁存信号状态,一般较为少用,且面积开销较大。
2.2、Isolation编码规则
编码中主要描述的内容包含有以下主要内容:
- Domain clarification:参照domain,所有的编码规则中必须指定参照domain;
- Filtering principle:过滤规则,包括参照domain是哪一个?isolation的source/sink的port需要满足的supply是什么?
- logic location:逻辑位置,Isolation放在domain里边还是放在其它domain中?
- Cell power/ground supply
- Control signal connection:控制信号的连接,仅针对isolation和enable Shifter而言
- Cell type:cell类型,其命令与上述不同
Isolation常用的option如下:(2、9-11行选项必须指定,4-5行至少指定一个,其它选项可选
)
set_isolation rule_name
-domain
-no_isolation //PD中一旦指定该选项,则会覆盖后续所有的iso rule
-applies_to input|output|both //iso添加在PD的哪一端
-elements/-exclude_elements //iso添加在PD的哪些port上
-source/-sink //指定iso的supply是什么
-diff_supply_only //检查PD所有的output port的source、sink的supply是否一致
-location parent|self|other //指定iso的逻辑位置
-clamp_value 1|0|latch //指定iso在使能状态时的输出值(指定iso类型)
-isolation_signal/-isolation_sense //指定iso连接的net,net会连接到iso的enable pin端 / 指定enable为0(或者1)时,iso进入关断状态
-isolation_supply_set //指定iso由哪一个supply_set供电
-name_prefix //给iso例化的inst添加前缀
-update //incremental option, 实时更新option状态
map_isolation_cell | use_interface_cell -strategy rule_name
-domain
-lib_cells
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
三、Level Shifter
Level Shifter cell,即电压/电平转换单元,属于Interface cell(同Isolation)。一般用于有不同电压的电源域接口,放置于不同PD的交界处。这样做可以防止低电压域PD信号直接驱动高电压域PD的逻辑信号;同时可以防止高电压域信号直接驱动低电压域信号(尽管这样并不是必要的)。
3.1、Level Shifter分类
Level Shifter一般只存在两个信号接口,包括1个input pin、1个output pin,功能类似Buffer。根据其功能可以分为以下几个主要种类。
- Buffer型Level Shifter cell:功能类似buffer。
- AND/OR组合型Level Shifter cell:该类型的Level Shifter会带有1个enable pin,功能兼具Level Shifter 和 Isolation 两者的功能;当一个PD既属于shut off power domain,又属与低电压PD,此时便可用该类型Level Shifter以节省面积。
除此之外,Isolation cell根据输入输出的电压信号还可分为LH(low to high)、HL(high to low)、LH_HL(Bidirectional)三类。实际应用中,Bidirectional Level Shifter cell更为常用,它既可以将高电压信号转换为低电压信号,也可以将低电压信号转换为高电压信号。Isolation cell也可以同Isolation一样根据放置位置分为From type(位于driver PD中)、To type(位于receiver PD中)、Any location(位于任意PD中)三类。
3.2、Level Shifter编码规则
Level Shifter同Isolation一样,同属Interface cell,其编码规则与isolation类似,常用option如下:(2、9-10行必须指定,4/6选项至少指定一个,其它选项可选
)
set_level_shifter rule_name
-domain
-no_shift //PD中一旦指定该选项,则会覆盖PD中后续所有的level shifer rule
-applies_to input|output|both //Shifter添加在PD的哪一端
-rule high_to_low|low_to_high|both //指定Shifter类型
-elements/-exclude_elements //指定Shifter添加在PD的哪些port上
-source/-sink //指定Shifter的source supply是什么
-location parent|self|other //指定Shifter的逻辑位置
-input_supply_cell //指定input Supply_Set名字
-output_supply_cell //指定output Supply_Set名字
-name_prefix //给Shifter例化的inst添加前缀
-update //incremental option, 实时更新option状态
map_level_shifter_cell | use_interface_cell -strategy rule_name
-domain
-lib_cells
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
四、Power Switch
Power Switch cell,即电源开关单元,。一般用于power domain内部,实现片上PD的supply打开与关断。
4.1、Power Switch分类
Power Switch一般可以分为两种类型,一种为Header类型,一种为Footer类型,示意图如下。Header类型的power Switch主要负责关断电源,类似一个 “PMOS” 晶体管,连接在一个always on电源和一个shut off电源之间;当enable pin 为 0 时,always on电源便会经过PMOS管传输到shut off电源线上,当enable pin 为 1 时,PMOS管关断,shut off电源线上便会掉电。Footer类型的power Switch类似一个 “NMOS” 晶体管,当enable pin 为 1 时,shut off地线会连通always on地线,实现电源通路,当enable pin 为 0 时,shut off地线悬空,此时整个domain里电源关断。
在实际设计中,Header类型的Power Switch cell较为常见。(Footer类型cell通过电子导电,开关的关断速度比PMOS管的空穴导电更快;但是header形式,断电后电量可以由地线放掉,footer形式,断电后需要设计特殊电路放电,比较麻烦)
除此之外,Power Switch cell还可以分为Coarse grain和Fine grain两大类。其中Coarse grain型PSW会控制一大片逻辑单元的power电源关断,而Fine grain型PSW一般用于standard cell内部,面积开销较大,所以只在macro cell中有少量应用。实际设计中,Coarse grain的PSW更为常见。
Header类型的Power Switch cell根据其结构和enable pin的数量可以再次细分为几种类型:无enable pin、1个enable in & 1个enable out、2个enable in & 2个enable out。如下图所示。其中 1个enable in & 1个enable out 和 2个enable in & 2个enable out类型的Header PSW较为常见。
4.2、Power Switch编码规则
Power Switch常用的option如下:
create_power_switch rule_name
-domain //指定PD,PSW位于可关断的 power domain
-input_supply_port {port_name [supply_net_name]} //PSW所用的always on PD置于port_name处,其所用的power net置于supply_net_name处;该option与设计中所用的PSW cell强相关
-output_supply_port {port_name [supply_net_name]} //PSW所用的可关断的 PD 置于port_name处,其所用的power net置于supply_net_name处
-control_port {port_name [net_name]} //指定enable pin连接的port_name与net_name
-ack_port {port_name net_name[logic_value]} //指定的信号用于表示输出电压是否稳定
-on_state {state_name input_supply_port {boolean_expression}} //指定PSW的enable pin处于什么状况时,PSW是ON状态,state_name自定义
map_power_switch rule_name
-domain
-lib_cells
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
五、State Retention
State Retention cell,即保留单元。一般用于shut off power domain中,当电源未关断时,其相当于一个DFF;当电源关断时,State Retention cell会储存PD内部的逻辑信号。这样做可以使system快速power on,避免不必要的reset操作造成的大量时间消耗。
5.1、State Retention分类
State Retention有2个power pin和1个备用的power pin(连接always on电源)来保证domain shut off之后信号不丢失。根据其structure,可分为两类:一种为Balloon Latch type的Retention, 一种为Single-Pin Live Slave type的Retention。其中Single-Pin Live Slave type的Retention由于只有Master和Slave两种Latch,更为节省面积,所以较为常用,它的Slave Latch连接在always on电源上。
5.2、State Retention编码规则
State Retention常用的option如下:
set_retention rule_name
-domain //一般指定shut off domain中
-no_retention //该选项不常用,因为不需要Retention时直接不声明即可
-elements/-exclude_elements //指定Retention添加在PD的哪些port上
-retention_supply_set //指定Retention连接的always on Supply_Set
-save_signal {logic_net <high|low|posedge|negedge>} //指定save pin连接的net,及其使能时的high|low等状态
-restore_signal {logic_net <high|low|posedge|negedge>} //指定restore pin连接的net,及其使能时的high|low等状态
-save_condition {boolean_expression} //指定save的状况
-restore_condition {boolean_expression} //指定restore的状况
-retention_condition {boolean_expression} //
-update //incremental option, 实时更新option状态
map_level_shifter_cell | use_interface_cell -strategy rule_name
-domain
-lib_cells
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
下图中,将R2的register替换为Retention。其中红色区域domain为domain_pso, 蓝色区域中的Supply_Setnet为domain_aon.primary。在set_retention中, rule_name自定义,其中save pin连接在retn net上,且当其为high状态时,save pin使能;retention pin也连接在retn net上,且当其为low状态时,retention pin使能。
六、Always on
Always on cell,也称Global cell,一般包括always on buffer 和 always on inverter。一般用于shut off power domain中。
6.1、Always on应用场景
Always on cell一般应用于以下两种场景:
- 当存在某一条或几条信号线从一个always on domain穿过shut off domain进入到另一个always on domain时,在被穿过的shut off domain中一般会插入always on buffer, 进行timing DRV修正。
- 当存在某一条或几条信号线从一个shut off domain穿过always on domain进入到另一个shut off domain时,在被穿过的always on domain中一般也会插入always on buffer, 进行timing DRV修正。在这种情况下的always on buffer是可以被关断的,