4、多电压域设计:电压域划分原则、电平转换器、电压调节器、动态电压频率调整

多电压域设计,说白了就是让芯片的不同部分“各吃各的饭”。

有些模块跑得快,需要高电压。有些模块不着急,低电压就能干活。我刚开始接触这个领域时,觉得这玩意儿不就是多接几个电源嘛。后来踩了坑才明白,这里面的门道深着呢。

4.1 电压域划分原则

电压域怎么切?我个人习惯先看三点:

  • 性能需求:CPU、GPU这种“吃电大户”,通常需要独立的高压域。
  • 功耗目标:Always-on模块、低速外设,扔到低压域里最划算。
  • 物理布局:离得太远的模块硬凑一个电压域,走线损耗会让你哭。

我在项目中遇到过一件事:有个团队把USB PHY和CPU放在同一个电压域里。结果CPU降频省电时,USB也跟着掉电压,直接导致连接不稳定。嗯,这就是典型的“一刀切”思维。

核心原则:电压域划分不是越细越好。每多一个域,就要多一组电源网络和电平转换器。面积和功耗之间,你得学会做“选择题”。

我建议你记住这个口诀:高频高压、低频低压、常开独立、布局就近

4.2 电平转换器

不同电压域之间怎么通信?电平转换器(Level Shifter)就是干这个的。

你想想看,一个1.8V的模块想跟0.9V的模块说话。直接连过去,要么信号识别不了,要么烧管子。电平转换器就是中间的“翻译官”。

常见的结构有两种:

  • 单级转换:适用于电压差较小的场景,比如1.2V转1.0V。
  • 双级转换:电压差大时用,比如3.3V转0.9V。中间会经过一个中间电压。

我曾经在低功耗IoT芯片上吃过亏。当时为了省面积,用了最小尺寸的电平转换器。结果信号上升时间太长,时序直接崩了。后来换成大驱动能力的版本,问题才解决。

避坑指南:电平转换器不是“万能胶”。它本身会引入延迟和功耗。我曾经见过一个设计,电平转换器占了总功耗的15%。所以,能用同一个电压域解决的问题,就别硬切。

选型时,我一般会关注三个参数:

参数 说明 我的建议
延迟 信号从输入到输出的时间 高速路径选<100ps
功耗 静态+动态功耗 低压域选漏电小的
面积 占用的芯片面积 别为了省面积牺牲性能

4.3 电压调节器

电压调节器(Voltage Regulator)是给各个电压域“做饭”的。它把外部输入的固定电压,转换成内部需要的各种电压。

主流方案有两种:

  • LDO(低压差线性稳压器):结构简单、噪声低。但效率也低,尤其压差大时。
  • DC-DC转换器:效率高,但噪声大、面积大。

我个人习惯这样选:

  • 模拟电路、RF电路:用LDO。它们对噪声敏感,效率低点也能忍。
  • 数字核心、大电流模块:用DC-DC。效率是第一位的。

我记得有个项目,客户要求待机功耗低于1μA。我们用了LDO给Always-on域供电,结果LDO自身的静态电流就占了0.8μA。后来换成超低静态电流的DC-DC,才勉强达标。

小技巧:如果面积允许,可以考虑“混合方案”。DC-DC先把电压降到中间值,再用LDO做精细调节。这样既保证了效率,又控制了噪声。

4.4 动态电压频率调整

动态电压频率调整(DVFS),是低功耗设计的“王牌技能”。

它的逻辑很简单:需要性能时,提高电压和频率。不需要时,降低它们

为什么电压和频率要一起调?因为频率越高,需要的电压也越高。你想想看,如果只降频率不降电压,功耗降得有限。反过来,只降电压不降频率,电路可能直接罢工。

我在一个手机SoC项目中,用过这样的DVFS策略:

// 伪代码示例:DVFS状态机
switch (workload) {
    case IDLE:
        set_voltage(0.7V);
        set_frequency(200MHz);
        break;
    case LIGHT:
        set_voltage(0.9V);
        set_frequency(800MHz);
        break;
    case HEAVY:
        set_voltage(1.2V);
        set_frequency(2.0GHz);
        break;
    default:
        // 安全模式
        set_voltage(1.0V);
        set_frequency(1.0GHz);
}

嗯,这里要注意:DVFS不是“想调就调”的。每次切换都需要时间。电压上升需要微秒级,频率锁定也需要时间。如果切换太频繁,反而会浪费功耗。

关键点:DVFS的收益取决于“粒度”。我建议你根据实际负载,设置3-5个档位。档位太多,管理复杂。档位太少,省电效果有限。

我曾经见过一个团队,把DVFS档位设了20个。结果大部分时间都在切换,真正干活的时间反而少了。后来精简到4个档位,效果反而更好。

最后说一句:多电压域设计,本质上是在“性能”和“功耗”之间找平衡。没有完美的方案,只有最适合的方案。你设计时,多想想“这个电压域真的需要独立吗?”、“这个电平转换器真的有必要吗?”。想清楚了,再动手。