4、CMOS反相器设计与仿真:原理图绘制、DC传输特性仿真、瞬态响应分析、功耗与延迟测量
各位同学,今天我们来啃一块硬骨头——CMOS反相器。别看它结构简单,就一个PMOS加一个NMOS,但它是所有数字集成电路的基石。我做了十几年模拟IC设计,每次回头看反相器,都能发现新的门道。说白了,你把这个单元吃透了,后面学触发器、运算放大器、甚至PLL都会轻松很多。
4.1 原理图绘制:从零搭一个反相器
打开Cadence Virtuoso,咱们先建个新cell view。我个人习惯用Schematic Editor,快捷键按一下“E”就进去了。
画反相器需要四个基本元件:
- PMOS管:我一般选pch_25,栅长设0.18μm,栅宽设2μm。为什么宽?PMOS空穴迁移率低,得宽一点才能跟NMOS匹配。
- NMOS管:选nch_25,栅长同样0.18μm,栅宽设1μm。这样PMOS:NMOS的宽长比就是2:1,传输特性会比较对称。
- 电源VDD:1.8V,别搞错了。
- 地GND:0V。
连线的时候注意:PMOS的源端接VDD,漏端接输出;NMOS的源端接GND,漏端也接输出。两个栅极连在一起,就是输入。嗯,这里要注意,连线一定要用金属层,别用poly,否则寄生电阻大得吓人。
4.2 DC传输特性仿真:看反相器怎么翻转
原理图画好了,咱们来跑DC仿真。打开ADE L,设置一下:
- 选择dc分析
- 输入电压从0扫到1.8V
- 保存所有节点电压
跑完之后,用Calculator画出Vout vs Vin的曲线。你会看到一条漂亮的“S”形曲线。这就是反相器的传输特性。
我重点看三个点:
- VIL(输入低电平最大值):当输出开始下降时的输入电压
- VIH(输入高电平最小值):当输出基本到地时的输入电压
- VM(翻转阈值):Vout = Vin的那个点,理想情况是0.9V
为什么VM要接近VDD/2?你想想看,如果VM偏了,比如偏到1.2V,那输入0.8V时反相器还没翻转,噪声容限就小了。我在一个项目中遇到过VM偏了0.3V,结果芯片在高温下逻辑混乱,后来调整了PMOS和NMOS的尺寸才搞定。
4.3 瞬态响应分析:看信号怎么跑
DC看的是静态特性,瞬态看的是动态行为。咱们给输入加一个脉冲信号:
- 从0V跳到1.8V,再跳回来
- 上升时间、下降时间设50ps
- 周期设10ns
跑tran分析,时间设20ns。你会看到输出波形跟输入反相,但边缘变缓了。这就是延迟的来源。
我习惯测量两个延迟:
- tPLH:输入从50%到输出从50%的延迟(输出从低到高)
- tPHL:输入从50%到输出从50%的延迟(输出从高到低)
用Calculator的cross函数,设阈值50%。你会发现tPHL通常比tPLH小一点,因为NMOS比PMOS快。嗯,这里要注意,如果负载电容很大,两个延迟都会增加。
4.4 功耗与延迟测量:算算你的反相器有多“费电”
功耗分两部分:静态功耗和动态功耗。
静态功耗:输入稳定时,PMOS和NMOS只有一个导通,理论上没电流。但实际上有漏电流,尤其是深亚微米工艺。我一般用DC仿真看静态电流,好的设计应该在pA级别。
动态功耗:翻转时的功耗,公式是P = CL × VDD² × f。其中CL是负载电容,f是翻转频率。说白了,频率越高、电压越高、负载越大,功耗就越大。
测量方法:在ADE L里用average函数,对电源电流求平均,再乘以VDD。我习惯跑一个完整周期,取平均值。
延迟测量刚才说了,用cross函数。把tPLH和tPHL加起来除以2,就是平均延迟。好的反相器在0.18μm工艺下,平均延迟应该在50-100ps左右。
| 参数 | 理想值 | 我的实测值 |
|---|---|---|
| VM | 0.9V | 0.88V |
| tPLH | 60ps | 58ps |
| tPHL | 50ps | 52ps |
| 动态功耗 | 10μW @ 100MHz | 9.8μW |
你看,实测跟理想值很接近,说明尺寸选对了。如果偏差大,别急着改尺寸,先检查一下仿真设置。我遇到过好几次,都是因为激励信号的上升时间设得太慢,导致延迟测量不准。
好了,这一章的内容就到这儿。下一章咱们讲与非门和或非门,原理跟反相器类似,但多了一个输入,逻辑更丰富。记得把今天的仿真跑一遍,亲手看看波形,比光看书强多了。