在 multi-voltage design 中,常常用到isolation cell; 本文简单介绍什么是 iso cell, 如何使用 iso cell, 何时需要加 iso cell, iso cell的插入位置。
isolation cell(隔离单元),通常用于电源关断技术(PSO)和多电源多电压技术(MSMV)。起到不同电压域之间的电压钳制和隔离作用。
isolation cell是shutdown模块和always on模块之间的接口,用于隔离两个不同的 power domain。
isolation cell示意图如下:
iso cell 有一个控制端 EN, 当 EN 无效时, A 端信号直接送到 Y 端,此时 iso cell 等效于一个buffer; 当 EN 有效时,buffer 断开,Y 端保持固定的高电平或者低电平;
为了保证isolation cell能够在power down的时候仍然能够正常工作,一般来说isolation cell都会有一个primary power和一个secondary power,后者能够保证前者power down时器件仍然能够工作。
即如上图所示: iso cell 的两组 power:primary power VDD 和 backup power VDDB,当 左边domain 关掉时, VDD off,此时就由 VDDB 供电,维持 Y 端的固定电平。
通常isolation cell和Level Shifter一起连用,AND和OR门都可以组成一个isolation cell;
1. AND类型:输出iso成0;
2. OR类型:输出iso成1;
当信号从一个module传入另一个module,如果shutdown模块的电源关闭,则输出信号可能出现不可预测的数值,若此数值传递给always on模块,可能会导致功能出现问题。因此需要将电源关闭module的输出信号和其他module隔离开来,给所有的边界信号加入isolation cell(ISO)。
isolation cell的作用在于在电源关掉之后,将某个信号电位固定到高电位或低电位,保证输出的信号是一个确定值(1或0)。如下图所示:
当信号从一个 off domain 穿到 另一个 domain (on 或者 off)时,如果 domain A 关掉,而 domain B 还在运行,就会出现 B 的input floating,此时 B 就可能会因为输入不定态而出现错误;所以当信号从 A 到 B 时,需要加 iso cell,保证在 A 关掉时,A 的输出信号维持在稳定的电平;
关于isolation cell的插入位置,我们需要决定是放在power gated module (source module)内还是always-on module (destination module)内。
不管放在那里,其power的连接都需要注意: isolation放置的地方都需要gated power和always-on power同时存在并且物理和逻辑连接都正确,因此经常会把isolation cell指定一个固定的区域放置,可以选择在此区域中打上两种不同的power stripe和power rail来连接它们,或者选择让工具以自动routing的方式将secondary power连接起来,后者主要出现在非先进工艺中。
isolation_cell可以放在哪个domain,或者独立呢?可以从几个角度思考:
1)isolation_cell电源问题。
isolation_cell工作的意义就在于power_gated_domian关闭不影响always_on_domain,所以其本身要工作至少不能使用power_gated_domian的电源。
所以isolation_cell放在always_on_domain或者独立更好。
2)isolation_cell数量问题。 对于power_gated_domian:always_on_domain=1:n时,要实现一个isolation_cell可以控制所有输出,有两个选择power_gated_domian和独立,而always_on_domain肯定不能实现。
3)isolation_cell所占的面积问题。 如果isolation_cell独立,单个isolation_cell所占的面积可以稍微大一些。因此,可以看出isolation_cell的位置是与具体的场景有关,并不是唯一的。
如果power_gated_domian:always_on_domain=1:1, 那放在always_on_domain中应该是最优解,因为可以直接使用电源,数量为1,面积最小。
注:
1)power_gated_domian:电源可关闭域,即低功耗下,为关闭状态。
2)always_on_domain:电源常开域,即器件主要处理域,电源工作状态不可关闭。
cell(Isolation_Cell) {
is_isolation_cell : true;
dont_touch : true;
dont_use : true;
pg_pin(VDD) {
voltage_name : VDD;
pg_type : primary_power;
}
pg_pin(VSS) {
voltage_name : VSS;
pg_type : primary_ground;
}
...
pin(A) {
direction : input;
related_power_pin : VDD;
related_ground_pin : VSS;
isolation_cell_data_pin : true;
}
pin(EN) {
direction : input;
related_power_pin : VDD;
related_ground_pin : VSS;
isolation_cell_enable_pin : true;
}
pin(Y) {
direction : output;
related_power_pin : VDD;
related_ground_pin : VSS;
function : "A * EN";
power_down_function : "!VDD + VSS";
timing() {
related_pin : "A EN";
cell_rise(template) {
...
}
...
}
...