为了使用时钟门控,多电压域,多阈值库或者电源开关等低功耗策略,工艺库必须包含支持这些策略的逻辑单元。 支持低功耗设计的一些单元包含以下部分:
Lib库电源引脚连接定义
在之前的CMOS工艺中,芯片上所有的单元都连接到同一个电源。 工艺库中不包含单元的电源连接关系,因为所有单元共享相同类型的电源(VDD、VSS)。
然而,当芯片上使用多个电源,就必须指定每一个单元的特定电源连接关系。 对于某些类型的单元,例如level shifter,需要指定同一个单元,不同电源引脚的连接关系。
为了描述此类信息,lib库语法已扩展为可以支持电源的连接关系。 这个电源连接关系可以用于综合、物理实现和验证工具优化电源设计,合适地连接layout上的电源引脚,并分析使用多个电源电压的设计行为。
对于没有电源引脚的旧lib库,可以在Design Compiler或IC Compiler中通过add_pg_pin_to_lib或add_pg_pin_to_db 命令快速添加电源引脚,从而使库与UPF电源规范兼容。
时钟门控单元
Power Compiler等综合工具可以确定时钟门控的位置,提供最大的功耗降低效益,并可在设计中自动插入时钟门控电路。
将时钟门控电路插入现有的时钟网络可能会引入skew,对时序产生不利影响。 为了让综合工具在综合时考虑这些影响,你可以让工具使用integrated clock-gating cells。integrated clock-gating cells集成了时钟门控电路中的组合和时序电路。 图1显示了integrated clock-gating cells的一种实现方式。
时钟门控单元可以包含任何类型的逻辑,例如多个使能输入,异步复位或反向门控时钟输出。 Power Compiler可以通过将周围的逻辑吸收到门控时钟单元内部来优化使能逻辑。
Level Shifters
在多电压设计中,信号从一个电压域穿过另一个电压域时需要Level Shifter。 Level Shifter作为缓冲器工作,输入端和输出端在不同的电压域。 因此,Level Shifter将信号从一个电压摆幅转换到另一个电压摆幅,同时希望从输入到输出具有尽可能小的延迟。 见图2
Level Shifter单元的库描述必须包含有关转换类型的信息(从高到低,从低到高或两者都可以),以及所支持的电压电平,和相应的电源引脚。
Power Compiler和IC Compiler等综合和物理实现工具可以识别设计中需要进行电平调整的网络,找到库中可用的合适的Level Shifter单元,将Level Shifter插入网表,放置Level Shifter,并走线信号和电源。
以下图3显示了从低到高电平转换的Level Shifter的lib语法.
可以同时实现level-shifting和isolation功能的单元称为enable levelshifter cell。 这种类型的单元用于信号从一个电源域穿过的地方另一个电源域,两个电源域电平不同,并且第一个电源域域可以被断电。 见图5
以下示例显示典型enable levelshifter cell的lib库语法!
Always-On Cells
在电源域被关闭时,可能存在某些特定单元需要持续保持活动状态的情况,例如retention registers,isolation cells,retention控制路径和isolation使能路径。与普通单元相比,功能相同的always on单元具有备用电源,即使在模块断电期间也能连续工作。 见图7:
以下示例显示了always-on单元的lib语法
Retention Register Cells
在具有电源开关的设计中,有几种不同的方法在掉电之前来保存寄存器状态,在上电时恢复它们。 一种方法是使用retention registers,这些寄存器可以在其断电期间通过低泄漏寄存器网络和always-on电源供电保持其状态
以下示例显示典型retention register的lib库语法
本文转载自公众号:芯片数字实验室
原文链接:https://mp.weixin.qq.com/s/b5yuWFsJxdYlUtT3e4ZCeA
未经作者同意,请勿转载!