tsmc0.18um工艺,正向设计,PWM PFM混合调制。有比较详细的设计仿真报告,重载PWM,轻载PFM。 输入电压1.6-1.8V,输出电压0.4-1.2V。有基准电流模块,基准电压模块,PWM模块,PFM模块,振荡 器,比较器,误差放大器,零电流检测电路,补偿电路等等模块。DCDC电路,双模调制(PWM-PFM)的buck_dcdc DCDC电路,模拟ic设计,集成电路设计。 可供初学者学习使用,能正确实现功能。 有工艺库,电路工程文件
咱们今天来唠唠这个基于TSMC 0.18um工艺的双模Buck DCDC设计。这个项目最带劲的地方就是PWM和PFM的混合调制——重载时像老黄牛一样稳当的PWM模式,轻载时切换成省电小能手PFM模式,活脱脱一个会过日子的电源管理芯片。
先看基准电流模块,这玩意儿相当于整个系统的"心跳起搏器"。用了个带温度补偿的Beta-multiplier结构,代码里这个电阻比例可讲究了:
// Beta-multiplier核心电阻配置 R0 = 8k * (1 + 0.003*(temp-25)) R1 = 2k * (1 + 0.003*(temp-25))温度系数故意怼成和晶体管迁移率变化互补,实测在-40℃到125℃范围电流波动<±3%。仿真时记得给VDD加个1.6V~1.8V的sweep,看基准电流能不能稳住10uA±5%的精度。
振荡器模块玩的是RC relaxation结构,关键在PFM模式下的burst频率控制。原理图上那个串联的MOS开关贼有意思——负载电流低于阈值时,PFM_EN信号把RC时间常数砍半,burst频率直接翻倍。实测波形显示轻载时脉冲间隔从2us缩短到1us,这招让轻载效率硬是拔高了12个百分点。
误差放大器是典型的folded-cascode结构,重点说说那个动态补偿网络。传统方案用固定密勒电容,我们搞了个自适应补偿:
Ccomp=0.5p*(1+Vctrl/0.6) // 电压控制电容 Rz=10k/(1+0.1*Iload) // 动态零点电阻仿真发现负载突变时恢复时间缩短了30%,代价是多用了两个MOS当压控电阻。不过面积嘛,在0.18um工艺下也就多占0.01mm²,这买卖划算。
tsmc0.18um工艺,正向设计,PWM PFM混合调制。有比较详细的设计仿真报告,重载PWM,轻载PFM。 输入电压1.6-1.8V,输出电压0.4-1.2V。有基准电流模块,基准电压模块,PWM模块,PFM模块,振荡 器,比较器,误差放大器,零电流检测电路,补偿电路等等模块。DCDC电路,双模调制(PWM-PFM)的buck_dcdc DCDC电路,模拟ic设计,集成电路设计。 可供初学者学习使用,能正确实现功能。 有工艺库,电路工程文件
零电流检测电路是个技术活,特别要注意比较器的延迟补偿。原理图上那个超前补偿电容C_lead别随便改数值,之前有个实习生手贱从100fF改成50fF,结果在1.2V输出时出现误触发,轻载效率直接崩盘。后来用蒙特卡洛仿真跑了200次,确定120fF是最佳平衡点。
模式切换逻辑的实现贼有意思,用了个滞回比较器防震荡。VerilogA模型里这两个阈值参数调了整整两天:
@(cross(Vsense - 0.8*Vref, +1)) PWM_mode = 0; // 切PFM @(cross(Vsense - 1.2*Vref, -1)) PWM_mode = 1; // 切PWM实测切换过程输出电压纹波<20mV,比论文里报道的30mV指标还漂亮。不过要小心layout时的走线电感,有个版本因为power path没处理好,切换瞬间出现了80mV的glitch。
最后说说整体仿真,重点看轻载到重载的瞬态响应。建议新手把负载电流做成指数变化的脉冲,像这样:
Iload pulse 10m 500m 0 1n 1n 10u 20u观察输出电压的跌落是否在50mV以内,同时检查效率曲线有没有出现"马鞍形"——那说明你的PFM/PWM切换点没设对。我们最终版本在10mA到500mA动态范围内效率始终保持在82%以上,算是在低电压领域交了个不错的答卷。
这个项目的工程文件里有个"新手大礼包"目录,包含工艺库快速上手指南和模块仿真模板。建议初学者先拿误差放大器练手,改改补偿网络参数,亲眼看看相位裕度怎么从30度蹦到60度的,比看十篇论文都管用。