热度 3| |
低功耗是目前SOC芯片的一个很重要的设计指标,受限于电池容量,一个系统的续航时间则取决于其整体功耗。为了达到更低的功耗,通常会将一颗芯片的所有逻辑电路分割成多个不同的电源域,每一个电源域独立开关。因此,当某个电源域不需要工作的时候,可以被关掉,从而降低功耗。另外不同的电源域可以使用不同的供电电压,从而更低的电压会带来更低的功耗。
单独电源域的供电电路由一个LDO(low dropout regulator)加一个控制其输出的数字逻辑开关组成,数字逻辑负责使能LDO的输出,这样就可以控制某一个电源域的供电状态,从而在空闲的时候将其关闭。
当一颗芯片有多个电源域存在的时候,则需要注意信号传输的问题。
电源域A和B的供电电压可能是不同的,这样从A域输出的信号是不能直接进入B域的,因为信号的电压可能是无法兼容的。为了保证信号的正确传输,则应该在A域和B域之间的信号插入level shifter。所以,作为设计者必须明确知道哪些信号是要穿越电源域的,必须为后端提供足够的信息,以保证设计的正确。
可能存在A域关掉了,然而B域仍在工作的情况,但是B域是需要A域的输出信号作为输入的。这是必须在给所有的边界输出信号加入 isolation cell (ISO)。ISO的作用就是在电源关掉之后,可以保证输出的信号在一个确定值(1或0),这样下一级B就不会因为输入了不定态而出现错误。作为设计者也必须在一开始就明确哪些信号要传输到另一个电源域,并且知道对于接收信号的模块,应该是用1还是0作为安全的输入,从而在综合时加入合适的ISO单元。
为了保证控制,用于开关两个电源域的控制电路则必须是始终保持有电状态(掉电了还怎么控制),这样就引入了另一个问题,随着电源域数量增加,开关的模式更多,控制电路就会更复杂,也更大,一则会增加系统的复杂性,另一则因为这些控制电路会失踪保持有电,也会增加功耗。所以对于多电源域的设计要谨慎选择,并非越多越好。