多电压域设计中的时序问题
时钟
在不同的电压域中路由时钟意味着它们必须经过电平转换器。这显然使自动化复杂化了—时钟树综合工具需要了解电平移位器,并自动将它们插入适当的位置。
随着多电压的缩放,时钟分布变得更加复杂。考虑图3-6。在多电压域中,时钟缓冲器有时在0.9V供电,有时在1.1V供电。在什么条件下,我们可以尝试得到相对于时钟在1.2V域存在最小的时钟偏差?
解决方案是,必须对两种情况同时进行优化和时序分析,以确保两种条件都能满足时间。
静态时序分析
在静态电压缩放的情况下,时序分析比单一电压设计没有复杂很多。它仅仅是在不同的电压使得工艺库都能被满足。然后实现和分析工具可以使用适当的时序信息执行。在早期的多电压设计中,这是一个问题;但现在,这个问题已经解决了,静态电压缩放对静态时序分析没有什么问题。
多级电压缩放提出了更大的挑战。再次考虑图3-6;在哪个电压下你做综合,放置和路由,以及多电压域的静态时序分析?解决方案是必须为每个工作点或供电电压指定时序约束。在我们的示例中,我们必须为多级电压块提供两组时序约束,一组用于0.9V,另一组用于1.1V。它们可能是不同的,因为可能有两种不同的操作模式,一种用于每个电压水平。它们可能有不同的性能目标或不同的时钟速度。
然后,工具必须使用这两组时序限制同时在0.9V和1.1V下执行实现。只有当同一个实现同时满足两组需求时,实现才算完整。
多电压域设计的电源规划
对于使用多电压域设计来说,仅仅是将电压输送到不同的电压域是一个挑战。每一个电压域都需要一个独立的本地供电电网,以及一个低阻抗电源连接到供电板。
对于倒装芯片设计来说,这个问题在一定程度上得到了缓解,因为电压可以通过位于电压域的一个pad本地传输。对于传统芯片,其电源必须来自芯片外围,系统设计师可能需要限制电压区域的数量,以提供显著的动态功耗节能。更多细节在后面讲述。
多电压域设计的系统设计问题
对于静态电压缩放,主要的实现问题与电平转换器有关,如上所述。
系统层面的主要问题是电压上电问题。在大多数情况下,在同一时间精确地提供所有不同的电压是不实际的。因此。规划一个明确的上电序列是有用的,这样不同的电压域就会以良好定义的顺序出现,从而确保电路功能正确。事实上,某些IP也可能需要特定的上电顺序。
特别是,我们需要确保所有电源域在发出复位之前完全通电。此外,CPU可能需要等待,直到芯片的其余部分启动后才能启动。
开机是一个特别复杂的情况,因为晶体振荡器和相位锁定环需要依赖技术的稳定和锁定时间。这些稳定时间只在IO和SoC电源供应稳定后开始。
上电复位施密特电路是保证SoC初始上电完成的一种方法。然后,可以使用某种形式的定时器来确定何时锁相环和时钟是稳定的。最后,可以启用显式握手协议来管理更复杂的DVFS电源管理。
多级电压缩放设计有额外的限制,跳变时间必须仔细控制,以避免电压过冲或欠冲。由于电压在系统运行时经常发生变化,如果电压高于目标电压或明显低于目标电压,系统可能会发生故障或锁住。这种跳变时间控制最好是通过使用信号接口对电压调节器的初始启动和后续跳变进行排序来实现。
最后,电源控制器通常由CPU控制,这意味着电源控制软件必须与运行在CPU上的其他系统软件集成。