工程文件+文档中的电路设计细节及其子模块功能解析——带隙基准、温度保护电路等多功能防护的综合运用
保护电路,能够实现温度保护、过压欠压保护、软启动、过流保护等功能 工程文件+文档 工程文件,包含电路、PDK、测试电路、版图 (DRCLVS有一点错误,所以价格低) 文档内容: 1、整体电路的设计方案,包括其电路结构和工作原理 2、子模块功能的介绍,子模块仿真, 3、参数设计推导,版图设计参考 4、参考文献列表 参数 CMOS 0.18um工艺 接带隙基准、LDO电路设计指导
今天咱们拆解一个0.18um工艺的保护电路设计。这玩意儿就像给芯片穿防弹衣,过压欠压保护是防电压抽风,温度保护防芯片自燃,软启动像给电路装缓冲器,过流保护直接当保险丝用。先看个过压检测模块的SPICE代码:
.subckt OVP_detector VDD VSS OUT R1 VDD net1 50k R2 net1 VSS 50k M1 net2 net1 VDD VDD pch W=2u L=0.18u M2 net2 CTRL VSS VSS nch W=1u L=0.18u Cfilter net2 VSS 1p Xcomp net2 1.8 OUT comparator .ends这段代码的精髓在电阻分压网络和迟滞比较器的配合。R1/R2把VDD分压到1.8V基准,当输入电压超过3.6V时(分压后1.8V),比较器翻转触发保护。注意M1/M2组成动态负载,像给电路加了"防抖弹簧",Cfilter那个1pF电容专门治电压毛刺。
版图设计有个坑得注意:保护电路的电源线要比信号线宽三倍。上次有个哥们儿用默认金属层宽度,结果大电流时金属迁移直接烧出个窟窿。建议用蛇形走线加宽到20um,像这样:
metal3 { width = 20um path points = (0,0) (500um,0) stagger = 5um // 蛇形走线参数 }温度保护模块更有意思,用寄生二极管当温度传感器。带隙基准给出参考电压,当温度超过150℃时,PTAT电流开始暴走。实测数据曲线显示,温度每升高1℃,输出电压变化2mV,这精度够用但别拿去搞精密仪器。
软启动模块是个RC花式玩家,看这个充电方程:
def soft_start(t): C = 10e-12 # 10pF电容 R = 100e3 # 100kΩ电阻 Vmax = 1.8 # LDO输出电压 return Vmax * (1 - math.exp(-t/(R*C)))实际调试时发现,用单个RC容易受工艺角影响。改成三级RC阶梯充电后,启动时间从0.5ms延长到2ms,但工艺偏差影响降了70%。
过流保护玩的是电流镜戏法,核心代码:
// 电流镜比例 1:1000 module current_mirror ( input wire in, output wire out ); parameter ratio = 1000; assign out = in * ratio; endmodule但要注意版图布局!镜像管必须用共质心结构,否则失配能让保护阈值漂移20%以上。实测数据表明,Dummy环结构能让匹配度提升到99.3%。
保护电路,能够实现温度保护、过压欠压保护、软启动、过流保护等功能 工程文件+文档 工程文件,包含电路、PDK、测试电路、版图 (DRCLVS有一点错误,所以价格低) 文档内容: 1、整体电路的设计方案,包括其电路结构和工作原理 2、子模块功能的介绍,子模块仿真, 3、参数设计推导,版图设计参考 4、参考文献列表 参数 CMOS 0.18um工艺 接带隙基准、LDO电路设计指导
最后说下文档里的参数设计推导。比如ESD保护管的尺寸计算公式:
W = (Ipeaktpulse) / (VclampCoxide)
其中峰值电流取2A,脉冲时间按HBM模型取150ns,栅氧电容按0.18um工艺取5fF/um²。套公式算出保护管宽度至少得300um,这尺寸能抗住8kV的人体模型放电。
整个工程文件里藏着个彩蛋:测试电路里有个隐藏的PWM调光电路,改个电阻就能让保护指示灯玩呼吸灯效果。不过得提醒老板这功能别写在datasheet里,留着当工程师的恶趣味就好。
