隔离单元 Isolation Cell
隔离单元 Isolation Cell
概念解析
定义与起源
术语定义:隔离单元(Isolation Cell)是低功耗设计中的关键硬件——在电源域关断时——把从断电域输出的信号钳位到0或1——防止X(未知值)传播到带电域。隔离单元是UPF(IEEE 1801)描述的标准组件——根据UPF的电源意图——EDA工具在断电域的每个输出端口自动插入isolation cell。
没有isolation cell:断电域的寄存器全部失电→它们的输出进入高阻态→电压不确定(X)→这些X值传播到带电域→带电域的逻辑产生虚假翻转→可能进入非法状态→系统崩溃。Isolation cell是"电源关断但逻辑不受干扰"的保障。
核心要义
第一,Isolation cell=信号钳位器。 两种钳位:clamp_to_0(断电时输出0)和clamp_to_1(断电时输出1)。选择钳位值需要分析下游逻辑——大多数使能信号active high→用clamp_to_0(钳位到0=不使能)。中断信号可能active low→用clamp_to_1。
第二,Isolation cell的使能控制有讲究。 Isolation使能信号必须在断电域完全失电之前就已稳定——否则isolation cell在自己也没电时无法完成钳位。通常用always-on域的寄存器控制isolation——确保它在断电域掉电前就已经在钳位。
第三,Isolation cell的位置影响时序。 放在断电域输出端口(输出端隔离)→cell本身在断电域内——失电时它也被关断——但它有独立的供电(power gate的always-on rail)。放在带电域输入端口(输入端隔离)→cell在带电域——不受断电影响——但需要额外的走线穿过域边界。
实践应用
* UPF自动插入isolation cell:写清每个电源域的输出隔离策略→工具自动插入——不需手动指定每个cell。 * Isolation cell的类型:AND-based(clamp_to_0用AND gate实现)、OR-based(clamp_to_1用OR gate实现)。面积和延迟有微小差异。 * Isolation验证:用power-aware仿真(X传播)检查是否所有跨域信号都被隔离——漏掉的X传播在power-aware仿真中表现为X值到达了不应有X的节点。
实战案例
某手机芯片isolation漏配:CPU断电后always-on域的中断控制器收到X值→错误触发中断→唤醒后系统跳到错误向量。补isolation后错误消失。
Isolation使能时序错误:isolation使能信号在断电域已经开始掉电时才来——isolation cell没有完全钳位——X值部分传播。把isolation使能提前一个时钟周期→fix。
Clamp值选错的后果:某模块的reset信号active-low——isolation选了clamp_to_0→断电时reset信号被钳位到0(=assert reset)→重新上电后模块处于reset状态——无法恢复。改为clamp_to_1→fix。
常见误区
误区一:每个跨域信号都需要isolation。 如果两个域同时关断和开启——它们之间的信号不需要isolation(两边都断电时没有X传播问题)。UPF的电源状态表自动判断哪些信号需要isolation。
误区二:Isolation cell=0面积开销。 Isolation cell面积小(每个端口<10个等效门)——但数量多(几百到几千个端口)——总面积开销>0.5%。
误区三:Isolation只在断电时有用。 在功能模式下isolation cell是透明的——isolation使能无效——信号正常通过。Isolation cell在功能模式下只贡献一个AND/OR门的延迟(~10-50ps)。