芯片设计—低功耗isolation cell的实战选型与UPF实现
1. 低功耗isolation cell的核心作用想象一下你家有两个房间一个常年亮着灯常开域另一个可以随时关灯电源关断域。当关灯的房间有人要出来时如果门没锁好可能会把黑暗带进亮着的房间这就是芯片设计中需要isolation cell解决的问题。在实际芯片设计中特别是采用SMIC 40nm工艺的低功耗ISP图像处理SoC电源管理尤为关键。我做过的一个项目中PD_SHUT电源关断域和PD_ON常开域之间的信号隔离就遇到过典型问题。当PD_SHUT断电后其输出信号会变成不确定的X态就像关灯房间的门没锁好一样危险。这种X态信号会造成两个严重后果首先是静态功耗问题。比如一个1.2V系统X态可能停留在0.6V这会让接收端的CMOS反相器同时导通PMOS和NMOS形成从电源到地的直流通路。实测数据显示单个信号出现这种情况就会产生约50μA的漏电流对于有上百个接口信号的模块漏电可能高达数mA。更严重的是功能错误风险。X态信号在温度变化或噪声干扰下可能发生震荡导致接收端逻辑误判。我在一次汽车电子项目中就遇到过PD_SHUT域的温度传感器关闭后其输出信号震荡导致主控逻辑误触发高温警报差点造成系统宕机。isolation cell就像智能门锁它能在PD_SHUT断电时将输出信号钳位到确定的0或1。具体实现上我们通常用AND门实现clamp_0钳位到0用OR门实现clamp_1钳位到1。以AND型为例当isolation使能信号ISO_EN为0时无论输入是什么输出都会被强制为0完美避免了X态传播。2. 两种isolation cell的选型实战在SMIC 40nm工艺的低功耗ISP芯片设计中isolation cell的选型需要综合考虑布局、电源网络和时序等因素。经过多个项目验证我发现sink side和source side两种类型各有适用场景。sink side isolation的最大优势是电源设计简单。它位于常开域PD_ON内只需要连接常开电源VDD。我在一个图像处理模块中采用这种方案节省了15%的电源布线面积。但要注意这种类型会使隔离信号在PD_SHUT域内传输较远距离可能影响时序。实测显示对于时钟频率超过200MHz的信号路径采用sink side会使建立时间恶化约50ps。source side isolation则更适合高速信号。它位于PD_SHUT域内但需要额外连接常开电源VDDG。这种双电源设计虽然增加了复杂度但能显著改善信号质量。在一个MIPI接口设计中采用source side使眼图质量提升了30%。关键是要确保VDDG的供电可靠性——我有次项目就因VDDG走线过长导致电压跌落isolation cell失效造成系统崩溃。选型时我通常遵循这个流程先标记所有需要隔离的信号路径对时钟和高速数据信号优先考虑source side对低频控制信号可采用sink side节省面积最后检查电源网络能否支持所选方案下表是两种类型的对比特性sink sidesource side电源需求单电源(VDD)双电源(VDDVDDG)布局复杂度低中等时序性能适合200MHz适合200MHz面积开销小中等可靠性高需保证VDDG3. isolation cell的电路实现细节实际使用中isolation cell常与level shifter集成。在SMIC 40nm工艺库中我发现有几种现成cell可供选择但理解其内部结构很重要。AND型isolation cell的内部结构很有意思。当ISO_EN为0时上拉PMOS导通将输出强制拉高到VDD同时底部的NMOS堆叠结构确保无论输入如何都不会形成到地的通路。这种设计实测静态电流仅0.1nA非常省电。但要注意ISO_EN信号的驱动强度——我有次因驱动不足导致开关延迟过大使isolation生效太慢。OR型isolation cell则采用互补结构。ISO_EN为1时下拉NMOS强制导通同时上部PMOS堆叠阻断任何上拉路径。这种结构对电源噪声更敏感需要在布局时加装去耦电容。实测数据显示添加0.1pF的MOM电容就能使抗噪能力提升3倍。在低功耗ISP芯片中我推荐将这些isolation cell放在接收端输入端。这样有三大好处减少always-on电源的布线集中放置利于电源管理方便统一控制isolation使能信号一个实用技巧是将isolation cell与level shifter合并使用。SMIC 40nm库中的LVLISO20单元就很好用它既能处理电压域转换又能提供隔离节省了20%的面积。4. UPF实现的工程经验UPFUnified Power Format是实现低功耗设计的关键。在最近的一个项目中我使用以下UPF代码实现isolation控制set_isolation ISO_ISP_TOP -domain PD_ISP_SHUT -applies_to input -diff_supply_only true -location parent -isolation_signal PMU/iso_en[3:0] -clamp_value 0 -isolation_sense low -no_shift这段代码有几个工程细节值得注意-location parent确保isolation cell靠近驱动端这在MIPI接口布局中特别重要-isolation_signal使用总线信号可实现分模块控制节省功耗-no_shift避免工具自动添加不必要的level shifter在实现过程中我踩过几个坑忘记设置-diff_supply_only导致工具尝试用普通cell实现隔离-clamp_value设置错误使复位信号被反向未指定-isolation_sense造成使能逻辑混乱电源网络定义也很关键。对于source side isolation必须明确定义备份电源create_power_domain PD_ISP_SHUT -include_elements {ISP_TOP} -supply {primary VDD} -supply {backup VDDG}后端实现时要注意isolation cell的电源连接。我有次项目因VDDG走线被误优化掉导致芯片测试时出现随机故障。现在我的checklist中一定会包含验证isolation cell的电源连接检查isolation使能信号的时序确认clamp值符合接收端要求跑CLPCrossing Low Power验证最后分享一个实用技巧在UPF中使用set_isolation_control可以精细控制isolation的生效时机这对实现渐进式电源管理特别有用。比如可以让isolation在时钟停止后再生效避免信号冲突。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2549098.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!