CMOS模拟集成电路设计与仿真(基本版)

更新时间:2023-04-13 04:37:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

CMOS模拟集成电路 设计与仿真

罗广孝 编

华北电力大学

二○○七年九月

前 言

随着信息技术及其产业的迅速发展,当今社会进入到了一个崭新的信息化时代,微电子技术正是信息技术的核心技术。自从TI公司的科学家基尔比(Clair Kilby) 在1958年发明了第一块集成电路以来,集成电路技术已经逐渐成为整个信息社会必不可少的支柱。

1956年北京大学、南京大学、复旦大学、吉林大学、厦门大学等五校在北大联合创建半导体专业,为我国培养第一批半导体人才,经过几代人的默默耕耘、韬光养晦,终于在自主创新之路上有所成就。目前,国内整个集成电路产业链逐渐完善,但是设计能力仍然相对滞后,希望本讲义的编写能为我校集成电路设计方向学科的建设、集成电路设计人才的培养尽绵薄之力。

内容概要

本书所涉及的实践内容,旨在培养学生对相关课程中所学到的有关知识和技能的综合运用能力以及集成电路设计软件工具的使用,掌握微电子技术人员所需的基本理论和技能,为学生进一步学习后续有关专业课程和日后从事集成电路设计工作打下基础。

基本微电子电路设计与仿真部分:首先简单介绍了电路仿真工具HSPICE的使用,通过典型的微电子电路的分析和设计,并用HSPICE软件完成了电路的仿真,目的是让学生掌握集成电路性能与电路结构和器件尺寸之间的关系,能够正确分析和设计电路,并学会电路仿真软件(Hspice)的基本使用。

电路的频率响应和稳定性部分:介绍了电路频率响应的零极点分析方法,并对基本的子电路完成了频率响应分析,最后深入细致的讨论了反馈放大器的频率响应和稳定性。

运算放大器设计部分:首先对运算放大器基本参数进行了分析阐述,并对基本的两级运算放大器和折叠共源共栅运算放大器的分析和设计方法进行了讨论,并用简单的模型参数完成了给定指标电路的手动计算设计,并用HSPICE进行了仿真验证。最后,针对具体的工程应用,讲述了一个带缓冲级的运算放大器的设计方法。

版图部分:掌握集成电路版图设计规则的含义以及消除或减小寄生效应的措施,能够正确设计集成电路版图,学会版图录入和版图设计规则检查(DRC)软件的使用;学会电路与版图一致性检查(LVS)、版图参数提取(LPE)及版图后仿真软件的使用。

适用范围

本书涉及各种CMOS集成电路的分析和设计,并用高精度的电路仿真工具HSPICE完成了仿真,具有较强的工程参考价值。本书可作为《集成电路设计基础》、《CMOS模拟集成电路设计》、《微电子电路与仿真》课程的参考书和培训实验手册。

致谢

作者要首先感谢电气与电子工程学院领导,给了我到东南大学射频与光电集成电路研究所访问学习的机会,感受了射光所文化的熏陶,让我始终执着于集成电路设计的殿堂。同时感谢电子系和电子学教研室领导的呵护,当然还要感谢我深爱的妻子,是她无私的爱激励了我对工作的追求!谨以此书献给所有关心我的人和我的所有学生,祝你们健康快乐!

罗广孝

2007年8月于河北保定 主要参考书:

1.集成电路设计[M],王志功 朱恩 陈莹梅 编著,电子工业出版社,2006.11。

2.集成电路设计技术与工具[M],王志功 景为平 孙玲 编著,东南大学出版社,2007.7。

3.CMOS模拟电路设计(第二版)[M],[美] Phillip E. Allen, Douglas R. Holberg 著,冯军 李智群译,王志功审校,电子工业出版社,2005。

其它参考书:

4.模拟集成电路设计[M],[加]David A.Johns Ken Martin著,曾朝阳等译.机械工业出版社,2005。

5.CMOS电路设计、布局与仿真[M],[美]R.Jacob Baker Harry W.Li David E.Boyce 著,陈中建主译.机械工业出版社,2006。

6.模拟CMOS集成电路设计[M],[美]毕查德.拉扎维 著,陈贵灿 程军 张瑞智 等译,西安交通大学出版社,2003。

7.模拟集成电路的分析与设计[M],[美]Paul R. Gray, Paul J. Hurst,Stephen H. Lewis,Robert G. Meyer著,张晓林等译,高等教育出版社,2005。

8.模拟电路版图的艺术(第二版)(英文版)[M],[美]Alan Hastings 著,电子工业出版社,2006.8。

9.半导体器件基础[M],[美]Robert F. Pierret 著,黄如 等译,韩汝琦审校,电子工业出版社,2007.8。

10.Zeni User Guide,huada, China。

11.Synopsys,HSPICE TM Simulation and Analysis User Guide。

目 录

第一部分基本微电子电路设计与仿真 (1)

第1章 HSPICE仿真环境简介 (1)

1.1 HSPICE基础知识 (1)

1.2 输入网表文件 (1)

1.3 电路元器件及模型描述 (2)

1.4 电路的分析类型描述语句 (4)

1.5 输出格式描述语句 (5)

1.6 控制语句和option语句 (6)

1.7 仿真控制和收敛 (7)

1.8 输入语句 (8)

1.9 统计分析仿真 (8)

1.10 HSPICE仿真示例 (9)

1.11 SPICE做电路仿真时容易出现的错误 (13)

第2章 CMOS工艺SPICE模型测试 (15)

1.1 SPICE模型简介 (15)

2.2 CMOS工艺MOS管模型参数 (21)

2.3 用HSPICE仿真MOS输出特性 (22)

2.4 练习 (23)

第3章恒流源电路分析与设计 (25)

3.1 恒流源电路 (25)

3.2 高输出阻抗的恒流源电路 (26)

3.3 HSPICE仿真分析基本恒流源电路 (28)

3.4 HSPICE仿真分析高输出阻抗恒流源电路(MOS管参数同上) (29)

3.5 基本恒流源电路的敏感度分析 (29)

3.6 基本恒流源电路的温度特性 (29)

3.7 其它类型的电流源/沉 (30)

第4章共源放大电路分析与设计 (31)

4.1 有源负载共源放大器 (31)

4.2 电流源负载共源放大器 (32)

4.3 推挽共源放大器 (33)

4.4 HSPICE仿真分析电流源负载共源放大电路 (34)

第5章共源共栅放大电路分析与设计 (37)

5.1 共源共栅放大器原理及分析 (37)

5.2 共源共栅放大器的设计流程 (39)

5.3 设计实例及HSPICE仿真分析 (40)

第6章源级跟随电路分析与设计 (43)

6.1 源极跟随缓冲级 (43)

6.2 小信号分析 (45)

6.3 HSPICE仿真实例 (47)

第7章电流镜负载差分放大电路分析与设计 (49)

7.1 基本结构及分析 (49)

7.2 电流镜负载的CMOS差分放大器设计 (51)

7.3 设计实例和HSPICE仿真 (54)

第二部分电路的频率响应和稳定性 (57)

第8章电路零极点分析方法 (57)

8.1 单极点传输函数——RC低通电路 (57)

8.2 单极点单零点系统——CR高通电路 (58)

8.3 两阶RC系统 (59)

第9章基本微电子电路频率响应分析 (62)

9.1 考虑电容的MOS管小信号模型 (62)

9.2 共源放大器 (69)

9.3 源极跟随器放大器 (73)

9.4 共栅放大器 (83)

9.5 高输出阻抗镜像电路 (83)

9.6 共源共栅增益级 (83)

第10章反馈放大器的频率响应和稳定性 (91)

10.1反馈放大器的稳定 (91)

10.2 两级电流源负载共源放大器及其补偿 (100)

第三部分运算放大器设计 (107)

第11章 CMOS运算放大器简介 (107)

11.1 指标参数 (107)

11.2 CMOS运算放大器的设计 (111)

第12章基本两级运算放大器分析与设计 (115)

12.1 电路的设计目标和结构 (115)

12.2 具体的设计过程 (117)

12.3 电路的性能仿真 (123)

第13章共源共栅运算放大器分析与设计 (129)

II

13.1 折叠共源共栅运放的电路结构 (129)

13.2 折叠共源共栅运算放大器的小信号模型 (130)

13.3 折叠共源共栅运算放大器的设计方法 (131)

13.4 折叠共源共栅运算放大器的仿真 (135)

第14章运算放大器工程设计 (140)

14.1 设计指标 (140)

14.2 放大器结构的确定 (140)

14.3 选择工艺参数 (141)

14.4 各级放大器参数的初步考虑 (141)

14.5 实例:一个带缓冲级运算放大器 (142)

第四部分集成电路版图设计 (146)

第15章九天版图设计工具简介 (146)

15.1 引言 (146)

15.2 版图设计的基本步骤 (147)

15.3 版图设计的注意事项 (147)

15.4 九天版图设计工具简介 (148)

15.5 频繁使用的UNIX命令 (152)

第16章反相器电路原理图设计与仿真 (154)

16.1 启动实验环境 (154)

16.2 开始一个新的设计 (154)

16.3 设计反相器的电路原理图 (155)

16.4 在电路原理图编辑器(Zeni Schematic Editor)中完成仿真 (163)

第17章反相器版图编辑 (171)

17.1 运行软件环境 (171)

17.2 设计反相器版图 (171)

第18章反相器版图验证与参数提取 (195)

18.1 Layout DRC版图设计规则检查 (195)

18.2 Layout LVS版图原理图对照 (201)

附录 (209)

III

第一部分 基本微电子电路设计与仿真

第1章 HSPICE仿真环境简介

1.1 HSPICE基础知识

Hspice(现在属于Synopsys公司)是IC设计中最常使用的工业级电路仿真工具,用以对电子电路的稳态、瞬态及频域的仿真和分析,可以精确的仿真、分析、优化从直流到高于100GHz频率的微波电路。目前,一般书籍都采用Level 2的MOS Model进行计算和估算,与Foundry经常提供的Level 49和Mos 9、EKV等Library不同,而以上Model要比Level 2的Model复杂的多,因此Designer除利用Level 2的Model进行电路的估算以外,还一定要使用电路仿真软件Hspice、Spectre等进行仿真,以便得到精确的结果。

本节将从最基本的设计和使用开始,逐步带领读者熟悉Hspice的使用,并对仿真结果加以讨论,配与实例,以便建立IC设计的基本概念。在最后还将对Hspice的收敛性做深入细致的讨论。

Hspice输入网表文件为.sp文件,模型和库文件为.inc和.lib,Hspice输出文件有运行状态文件.st0、输出列表文件.lis、瞬态分析文件.tr#、直流分析文件.sw#、交流分析文件.ac#、测量输出文件.m*#等。其中,所有的分析数据文件均可作为AvanWaves的输入文件用来显示波形。

表1.1 Hspice所使用的单位

单位缩写含义

F(f)1e-15

P(p)1e-12

N(n)1e-09

U(u)1e-06

M(m)1e-03

K(k)1e+03

Meg(meg)1e+06

G(g)1e+09

T(t)1e+12

DB(db)20log10

注:Hspice单位不区分大小写

1.2 输入网表文件

输入网表(Netlist)文件主要由以下几部分组成:

1

2 1.

3 电路元器件及模型描述 (1)电路元器件 Hspice 要求电路元器件名称必须以规定的字母开头,其后可以是任意数字或字母。除了名称之外,还应指定该元器件所接节点编号和元件值。有源器件包括二极管(D)、MOS管(M)、BJT管(Q)、JFET和MESFET(J)、子电路(X)和宏、Behavioral 器件(E,G)、传输线(T,U,W)等。这里值得注意的是MOS、JFET和MESFET的L和W的scale是m,而不是um。 ①电阻,电容,电感等无源元件描述方式如下:

R1 1 2 10k (表示节点1 与2 间有电阻R1,阻

值为10k 欧)

C1 1 2 1pf (表示节点1 与2 间有电容C1,电容值为1pf)

L1 1 2 1mh (表示节点1 与2 间有电感L1,电感值为1mh)

半导体器件包括二极管、双极性晶体管、结形场效应晶体管、MOS 场效应晶体管等,这些半导体器件的特性方程通常是非线性的,故也成为非线性有源元件。在电路CAD工具进行电路仿真时,需要用等效的数学模型来描述这些器件。

②二极管描述语句如下:

DXXXX N+ N- MNAME

D 为元件名称,N+和N-分别为二极管的正负节点,MNAM

E 是模型名,后面为可选项: AREA 是面积因子,OFF是直流分析所加的初始条件,IC=VD 是瞬态分析的初始条件。 ③双极型晶体管

QXXXX NC NB NE MNAME

Q 为元件名称,NC NB NE 分别是集电极、基极、发射极和衬底的节点。缺省时,NS 结地。后面可选项与二极管的意义相同。

④结型场效应晶体管

JXXXX ND NG NS MNAME

J为元件名称,ND NG NS为漏、栅、源的节点,MNAME 是模型名 ,后面为可选项与二极管的意义相同。

⑤MOS 场效应晶体管

MXXXX ND NG NS NB MNAME

M为元件名称,ND,NG,NS,NB 分别是漏、栅、源和衬底节点。MNAME 是模型名,L 沟道长,M为沟道宽。

(2)元器件模型

许多元器件都需用模型语句来定义其参数值。模型语句不同于元器件描述语句,它是以“.”开头的点语句,由关键字.MODEL模型名称,模型类型和一组参数组成。电阻、

电容、

二极管、MOS 管、双极管都可设置模型语句。这里我们仅介绍MOS 管的模型语句,其他的可参考Hspice帮助手册。

MOS 场效应晶体管是集成电路中常用的器件,在Hspice 有20 余种模型,模型参数有40――60 个,大多是工艺参数。例如一种MOS 模型如下:

.MODEL NSS NMOS LEVEL=3 RSH=0 TOX=275E-10 LD=.1E-6 XJ=.14E-6

+ CJ=1.6E-4 CJSW=1.8E-10 UO=550 VTO=1.022 CGSO=1.3E-10

+ CGDO=1.3E-10 NSUB=4E15 NFS=1E10

+ VMAX=12E4 PB=.7 MJ=.5 MJSW=.3 THETA=.06 KAPPA=.4 ETA=.14

.MODEL PSS PMOS LEVEL=3 RSH=0 TOX=275E-10 LD=.3E-6 XJ=.42E-6

+ CJ=7.7E-4 CJSW=5.4E-10 UO=180 VTO=-1.046 CGSO=4E-10

+ CGDO=4E-10 TPG=-1 NSUB=7E15 NFS=1E10

+ VMAX=12E4 PB=.7 MJ=.5 MJSW=.3 ETA=.06 THETA=.03 KAPPA=.4

上面:.MODEL为模型定义关键字.NSS 为模型名,NMOS为模型类型,LEVEL=3 表示半经验短沟道模型,后面RSH=0等等为工艺参数。

(3)电路的输入激励和源

Hspice中的激励源分为独立源和受控源两种,这里我们仅简单介绍独立源。独立源有独立电压源和独立电流源两种,分别用V 和I 表示。他们又分为直流源,交流小信号源和瞬态源,可以组合在一起使用。

①直流源

VXXXX N+ N- DC VALUE

IXXXX N+ N- DC VALUE

例如:VCC 1 0 DC 5v (表示节点1,0 间加电压5v)

②交流小信号源

VXXXX N+ N- AC >

IXXXX N+ N- AC >

其中,ACMAG 和ACPHASE 分别表示交流小信号源的幅度和相位。

例如:V1 1 0 AC 1v (表示节点1,0 间加交流电压幅值1v,相位0)

③ 瞬态源

瞬态源有几种,以下我们均只以电压源为例,电流源类似:

* 脉冲源(又叫周期源)

VXXXX N+ N- PULSE(V1 V2 TD TR TF PW PER)

V1 初始值,V2 脉动值,TD 延时,TR 上升时间,TF下降时间,PW脉冲宽度,PER 周期

例如:V1 5 0 PULSE(0 1 2NS 4Ns 4Ns 20NS 50NS)

* 正弦源

VXXXX N+ N- SIN(V0 VA FREQ TD THETA PHASE)

V0:偏置,VA:幅度,FREQ: 频率 ,TD :延迟,THETA: 阻尼因子,PHASE:相位

* 指数源

3

VXXXX N+ N- EXP(V1 V2 TD1 TAU1 TD2 TAU2)

V1初始值,V2中止值,TD1上升延时,TAU1上升时间常数,TD2下降延时,TAU2下降时间常数

例如:V1 3 0 EXP(0 2 2ns 30ns 60ns 40ns)

* 分段线性源

VXXXX N+ N- PWL(T1 V1 )

其中每对值(T1,V1)确定了时间t=T1是分段线性源的值V1。

例如:Vpwl 3 0 PWL(0 1,10ns 1.5)

(4)子电路

①. 采用.GLOBAL设置全局节点:

.GLOBAL node1 node2 node3…

②.* 子电路语句

.SUBCKT SUBNAM N1< N2 。。。>

子电路的定义由.SUBCKT 语句开始。SUBNAM是子电路名,N1< N2 。。。>是外部节点号 * 终止语句

.ENDS (表示结束子电路定义)

* 子电路调用语句

XYYYY N1< N2 。。。> SUBNAM

在Spice中调用子电路的方法是设定以字母X 开头的伪元件名,其后是用来连接到子电路上的节点号,在后面是子电路名。

例如:.SUBCKT OPAMP 1 2 3 4

具体运放电路描述

.ENDS

Xop 1 2 3 4 OPAMP (调用该运放子电路)

1.4 电路的分析类型描述语句

分析类型描述语句由定义电路分析类型的描述语句和一些控制语句组成,如直流分析(.OP),瞬态分析(.TRAN)等分析语句,以及初始状态设置(.IC),选择项设置(.OPTIONS)等控制语句。它的位置可在标题语句和结束语句之间的任何地方。

(1)直流分析:

对DC、AC和TRAN分析将自动进行直流操作点(DC OP)的计算,但.TRAN UIC将直接设置初始条件,不进行DC OP的计算。

直流分析包含以下五种语句:

.DC:直流扫描分析;

.OP:直流操作点分析;

.PZ:Pole/Zero分析;

.SENS:直流小信号敏感度分析;

.TF:直流小信号传输函数分析。

4

.DC(直流扫描语句):在指定的范围内,某一个独立源或其他电路元器件参数步进变化时,计算电路滞留输出变量的相应变化曲线。

.DC var1 start1 stop1 inc1 sweep var2 type np start2 stop2

例如:.DC VIN 0.25 5.0 0.25 (表示电压源VIN 的值从0.25V扫描到5V,每次增量0.25V)

(2)交流分析:

交流分析是指输出变量作为频率的函数。 交流分析包括以下四种语句:

.NOISE:噪声分析;

.DISTO:失真分析;

.NET:网络分析;

.SAMPLE:采样噪声分析。

.AC(交流分析语句):在规定的频率范围内完成电路的交流小信号分析

.AC DEC ND FSTART FSTOP (数量级变化)

其中,DEC 为10 倍频,ND 为该范围内点的数目,FSTART初始频率,FSTOP 中止频率。

例如: .AC DEC 10 1 10K (指从1 到10KHZ范围,每个数量级取10 点,交流小信号分析)

(3)瞬态分析:

瞬态分析是指计算的电路结果作为时间的函数。

一般形式: .TRAN TSTEP TSTOP >

TSETP 为时间增量,TSTOP 为终止时间,TSTART 为初始时间(若不设定,则隐含值为0)

例如:.TRAN 1NS 10000NS 500NS (瞬态分析500—10000NS,步长为1NS)具体电路的分析类型描述语句可查阅Hspice在线帮助。

1.5 输出格式描述语句

(1)输出命令包括:

.PRINT、.PLOT、GRAPH、.PROBE和.MEASURE。

.PLOT antype ov1 ov2… plo1,phhi1…plo32,phi32

.PROBE ov1 ov2… ov32

.PRINT antype ov1 ov2… ov32

有五种输出变量形式:

①直流和瞬态分析:

用于显示单个节点电压,支路电流和器件功耗。

.print TYPE V(node) 或 .plot I(node),也可用.graph、.probe。

TYPE 为指定的输出分析类型,如(DC);V(node)表示节点电压,I(node)表示节点电流,p(rload)表示在负载rload上的分析点的功耗。

②交流分析:

用于显示节点电压和支路电流的实部、虚部和相位。

5

vi(node)表示节点电压的虚部,ip(node)表示节点电流的相位,vp(4,6)表示节点4、6间的相位角。

③器件模版:

用于显示制定的器件节点的电压、支路电流和器件参数。

lv16(m3)表示MOS管m3的漏电流,其他表示方式见手册。

④MEASURE语句:

用于显示用户自定义的变量。

可以采用的句法包括:raise,fall,delay,average,RMS,min,max,p-p等。

⑤参数语句:

用于显示用户自定义的节点电压等表达式。

语法格式:.print tran out_var_name=PAR(‘expression’)

(2)还可以采用AvanWave进行波形输出

电路的波形可以在AvanWave中TOP层下双击添加子电路层后选择显示。

1.6 控制语句和option语句

(1).OPTION(可选项语句):

.options语句格式:.options opt1 opt2 opt3… opt=x

ACCT(打印出计算和运行时间统计)

LIST(打印出输入数据总清单)

NODE(打印出结点表)

NOMOD(抑制模型参数的打印输出)

一般在每个仿真文件中设置options为.options acct list post,也可以设置为.options node opts,其中.option list表示将器件网表、节点连接方式等输入到列表文件,用于debug与电路拓扑结构有关的问题,.option node表示将输出节点连接表到列表文件,用于debug与由于电路拓扑结构引起的不收敛问题,.option acct表示在列表文件中输出运行时间统计和仿真效率,.option opts在列表文件中报告所有的.option设置,.option nomod表示不输出MODEL参数,以便减小列表文件的大小,.option brief=1表示不输出网表信息,直到设置.option brief=0,.protect/.unprotect用于屏蔽网表文件中要保护的信息,.option bypass=1不计算latent器件,.option autostop表示当所有.measure语句完成时,终止仿真,.option accurate=1表示设置为最精确的仿真算法和容差,tstep表示仿真步长值,delmax表示最大允许时间步长,其中delmax=tstep*max, .option dvdt=4用于数字CMOS电路仿真(默认设置),.option dcca=1在直流扫描时强行计算随电压变化的电容,.option captab对二极管、BJT管、MOS、JFET、无源电容器,打印出信号的节点电容值,.option dcstep=val将直流模型和器件转换为电导,主要应用于“No DC Path to Ground”或有直流通路,但不符合Hspice定义的情况。

(2)MODEL OPTION语句:

SCALE影响器件参数,如:L、W、area,SCALM影响model参数,如:tox、vto、tnom。(3)注释语句

6

注释语句以”*”为首字符,位置是任意的,它为非执行语句。

1.7 仿真控制和收敛

Hspice仿真过程采用Newton-Raphson算法通过迭代解矩阵方程,使节点电压和支路电流满足Kirchoff定律。迭代算法计算不成功的节点,主要是因为计算时超过了Hspice限制的每种仿真迭代的总次数从而超过了迭代的限制,或是时间步长值小于Hspice允许的最小值。

(1)造成Hspice仿真不收敛主要有“No Convergence in DC Solution”和“Timestep too Small”,其可能的原因是:

①电路的拓扑结构:

电路拓扑结构造成仿真不收敛主要有:电路连线错误,scale、scalm和param语句错误,其他错误可以通过查找列表文件中的warning和errors发现。

解决的方法是:将电路分成不同的小模块,分别进行仿真;简化输入源;调整二极管的寄生电阻;调整错误容差,重新设置RELV,ABSV,RELI,ABSI,RELMOS,ABSMOS等。

②仿真模型:

由于所有的半导体器件模型都可能包含电感为零的区域,因此可能引起迭代的不收敛。

解决的方法是:在PN结或MOS的漏与源之间跨接一个小电阻;将.option中默认的GMINDC、GMIN增大。

③仿真器的options设置:

仿真错误容差决定了仿真的精度和速度,要了解你所能接受的容差是多少。

解决的方法是:调整错误容差,重新设置RELV,ABSV,RELI,ABSI,RELMOS,ABSMOS 等。

(2)针对仿真分析中可能出现的不收敛情况进行分析:

①直流工作点分析:

每种分析方式都以直流操作点分析开始,由于Hspice有很少的关于偏置点的信息,所以进行DC OP分析是很困难的,分析结果将输出到.ic文件中。

对DC OP分析不收敛的情况,解决方法是:删除.option语句中除acct,list,node,post之外的所有设置,采用默认设置,查找.lis文件中关于不收敛的原因;使用.nodeset 和.ic语句自行设置部分工作点的偏置;DC OP不收敛还有可能是由于model引起的,如在亚阈值区模型出现电导为负的情况。

②直流扫描分析:

在开始直流扫描分析之前,Hspice先做DC OP计算,引起直流扫描分析不收敛的原因可能是快速的电压或电流变化,模型的不连续。

解决的方法是:对于电压或电流变化太快,通过增加ITL2来保证收敛,.option ITL2是在直流扫描分析中在每一步允许迭代的次数,通过增加迭代次数,可以在电压或电流变化很快的点收敛。对于模型的不收敛,主要是由于MOS管线性区和饱和区之间的不连续,Newton-Raphson算法再不连续点处进行迭点计算产生震荡,可以通过增减仿真步长值或改变仿真初始值来保证收敛,如:.dc vin 0v 5v 0.1v的直流分析不收敛,可以改为.dc vin

7

0v 5v 0.2v增大步长值,.dc vin 0.01v 5.01v 0.1v改变仿真的范围。

③AC频率分析:

由于AC扫描是进行频率分析,一旦有了DC OP,AC分析一般都会收敛,造成不收敛的原因主要是DC OP分析不收敛,解决的方法可以参看前面关于DC OP的分析。

④瞬态分析:

瞬态分析先进行直流工作点的计算,将计算结果作为瞬态分析在T0时刻的初始值,再通过Newton-Raphson算法进行迭代计算,在迭代计算过程中时间步长值是动态变化的,.tran tstep中的步长值并不是仿真的步长值,只是打印输出仿真结果的时间间隔的值,可以通过调整.options lvltim imax imin来调整步长值。

瞬态分析不收敛主要是由于快速的电压变化和模型的不连续,对于快速的电压变化可以通过改变分析的步长值来保证收敛。对模型的不连续,可以通过设置CAPOP和ACM电容,对于给定的直流模型一般选择CAPOP=4,ACM=3,对于level 49,ACM=0。对瞬态分析,默认采用Trapezoidal算法,精度比较高,但容易产生寄生振荡,采用GEAR算法作为滤波器可以滤去由于算法产生的振荡,具有更高的稳定性。

1.8 输入语句

对于.param语句,.param PARHIER=GLOBAL是默认的,使得参数可以按照Top-Down变化.param PARHIER=LOCAL,可以是参数只在局部有效。

对于.measure语句,可以采用的模式有rise,fall,delay,average,rms,min,peak-to-peak,Find-When,微分和积分等。对Find-When语句,.measure result find val when out_val=val ,对微分和积分语句,.measure result val

对于.ALTER语句,可以通过改变.ALTER来改变使用不同的库,其中.ALTER语句可以包含element语句、.data、.lib、.dellib、.include、.model、.nodeset、.ic、.op、 .options、.param、.temp、.tf、.dc、.ac语句,不能包含.print、.plot、.graph 或其他I/O语句,同时应该避免在.ALTER中增加分析语句。

1.9 统计分析仿真

主要是对器件和模型进行Monte Carlo分析,随机数的产生主要依赖Gaussian、Uniform、Limit分析,通过.param设置分布类型,将dc、ac、tran设置为Monte Carlo分析,用.measure输出分析结果,如:

.param tox=agauss(200,10,1)

.tran 20p 1n sweep MONTE=20

.model … tox=tox …

其中,对Gaussian分析.param ver=gauss(nom_val,rel_variation,sigma,mult),.param ver=agauss(nom_val,abs_variation,sigma,mult),

对Uniform分析,.param ver=unif(nom_val,rel_variation,mult),

.param ver=aunif(nom_val,abs_variation,mult),

8

9 对Limit分析,.param ver=limit(nom_val,abs_variation),如果你拼错Gauss或Uniform、Limit,不会产生警告,但不将产生分布。

1.10 HSPICE 仿真示例

Hspice 可以执行各种模拟电路仿真,它的精度很高。通过点击桌面快捷方式Hspice,启动Hspice。

Hspice模拟步骤如下:

①由电路图提取网表或手工编写网表,注意网表文件以.sp结尾。例如,电路网表文件为eyediag.sp;标题为:*Eye Diagrams;输出报告文件:eyediag.lis。

②运行模拟,完成后检查输出报告文件后缀.lis文件察看模拟结果。

③ 运行AvanWave查看输出波形。

以下我们通过几个例子了解Hspice的网表文件格式,以及如何进行仿真。

(1)简单RC 网络电路AC 分析

如图所示为一个有DC和AC源的简单的RC网络。电路包含两个电阻,R1和R2,电容C1和电源V1。节点1接在电源正端和R1之间。节点2处R1、R2和C1连在一起。Hspice 接地端总是节点0。

它的网表文件如下,文件名为quickAC.sp

A SIMPLE AC RUN

.OPTIONS LIST NODE POST

.OP

.AC DEC 10 1K 1MEG

.PRINT AC V(1) V(2) I(R2) I(C1)

V1 1 0 10 AC 1

R1 1 2 1K

R2 2 0 1K

C1 2 0 .001U

.END

注释:

第一行A SIMPLE AC RUN 为标题行;

第二行.OPTIONS LIST NODE POST 为可选项设置,LIST 打印出元件总结列表;NODE 打印出元件节点表(element node table);POST 表示用何种格式储存模拟后的数据,以便与其它工具接口。

第三行.OP 计算直流工作点。

第四行.AC DEC 10 1K 1MEG (指从1K到1MEGHZ范围,每个数量级取10点,交流小信号分析)

第五行.PRINT AC V(1) V(2) I(R2) I(C1) 打印交流分析类型的节点1,2 的电压,以及R2,C1 的电流

第六行V1 1 0 10 AC 1 表示节点1 与0 间,加直流电压10v 和幅值为

1v 的交流电

压。

第七至九行为电路描述语句。

第十行为结束语句。

接下去的程序是执行此RC网络电路的AC分析,如下的新文件出现在你的运行目录下: quickAC.ac0

quickAC.ic

quickAC.lis

quickAC.st0.

使用一个编辑器去看.lis和.st0文件以检查仿真的结果和状态。

运行AvantWaves并且打开.sp文件。从结果浏览器窗口中选择quickAC.ac0文件以观察波形。显示节点2的电压,在x轴使用一个对数刻度。图1-3:显示了2节点输入频率自1KHz至1MHz变化时扫描响应所产生的波形。

图1-3 RC网络节点2的频率响应

quickAC.lis显示了输入网表,详细组成和拓扑图,工作点(operating point)信息和当输入至1KHz至1MHz变动时的请求表。quickAC.ic和quickAC.st0分别包含一些直流工作点信息和Star-Hspice的运行状态信息。工作点情况可以用作后面的使用.LOAD语句的仿真运行。

RC网络的瞬态分析

使用同一个RC网络运行瞬态分析,但是增加了一个脉冲源到DC和AC源。

①输入如下相当的网表到一个名叫quickTRAN.sp的文件中。

A SIMPLE TRANSIENT RUN

.OPTIONS LIST NODE POST

.OP

.TRAN 10N 2U

.PRINT TRAN V(1) V(2) I(R2) I(C1)

V1 1 0 10 AC 1 PULSE 0 5 10N 20N 20N 500N 2U

R1 1 2 1K

R2 2 0 1K

10

11 C1 2 0 .001U

.END

注释:

V1源规范增加了一个脉冲源。

②运行Star-Hspice。

③使用编辑器去看.lis文件和st0文件以检查仿真的结果和状态。

④运行AvantWaves并且打开.sp文件。从结果浏览器窗口中选择quickTRAN.tr0文件以观察波形。在x轴显示节点1和2的电压。

图1-4:RC 网络节点1和节点2电压

(2)反相器电路

它的网表文件如下,文件名为inv.sp

Inverter Circuit

.OPTIONS LIST NODE POST

.TRAN 200P 20N

.PRINT TRAN V(IN) V(OUT)

M1 OUT IN VCC VCC PCH L=1U W=20U

M2 OUT IN 0 0 NCH L=1U W=20U

VCC VCC 0 5

VIN IN 0 0 PULSE .2 4.8 2N 1N 1N 5N

20N CLOAD OUT 0 .75P

.MODEL PCH PMOS LEVEL=1

.MODEL NCH NMOS LEVEL=1

.END

注释:第三行.TRAN 200P 20N 表示瞬态分析步长为200ps,时间为20ns

第四行.PRINT TRAN V(IN) V(OUT)表示打印节点in,out 电压瞬态分析值 第五,六,九行为电路连接关系描述语句。

第七行VCC VCC 0 5表示在节点VCC,0之间加5v直流电压。

第八行VIN IN 0 0 PULSE .2 4.8 2N 1N 1N 5N 20N表示在节点IN,0之间加一个脉冲源,低电平0.2v,高电平4.8v,延时2ns,上升沿1ns,下降沿1ns,脉冲宽度5ns,周期20ns

第九,十行为模型语句,表示模型名PCH,管子类型为PMOS,使用的是一级模型。

对倒相器电路仿真的步骤类似于前面,这里仅列出输出波形供参考:

(3)D 触发器电路

网表文件如下,文件名为dff.sp(无模型支持,仅做参考):

* Project DFF

.OPTIONS LIST NODE POST

.include "e:\model\35model.txt"

* Definition for project INVERTER

.SUBCKT INVERTER IN OUT

M2 OUT IN 0 0 NSS L=0.35U W=1.2U

M1 VDD IN OUT VDD PSS L=0.35U W=2.4U

* CROSS-REFERENCE 1

* GND = 0

.ENDS

* Definition for project TRANSFER

.SUBCKT TRANSFER IN OUT CLKF CLK

M1 OUT CLKF IN VDD PSS L=0.35U W=1.2U

M2 IN CLK OUT 0 NSS L=0.35U W=1.2U

* CROSS-REFERENCE 1

* GND = 0

.ENDS

X1I1 N1N19 N1N21 INVERTER

X1I2 N1N21 N1N16 CLK N1N10 TRANSFER

X1I3 N1N16 N1N19 INVERTER

12

X1I4 CLK N1N10 INVERTER

X1I5 Q N1N29 INVERTER

X1I6 QF Q INVERTER

X1I7 N1N29 QF N1N10 CLK TRANSFER

X1I8 D N1N16 N1N10 CLK TRANSFER

X1I9 N1N19 QF CLK N1N10 TRANSFER

* DICTIONARY 1

* GND = 0

.GLOBAL VDD

vin D 0 PULSE .2 2.8v 2N 1N 1N 20N 50N

vdd VDD 0 3v

Vclk clk 0 0 PULSE .2 2.8v 2N 1N 1N 5N 20N

.tran 1ns 200n

.END

注释:

①.OPTIONS LIST NODE POST 为可选项设置

②.include "e:\model\35model.txt"表示加入0.35um工艺库文件,注意一定要指定工艺库文件,否则Hspice无法仿真。另外,库路径一定要指定正确,否则会找不到库文件。

③ vin D 0 PULSE .2 2.8v 2N 1N 1N 20N 50N

vdd VDD 0 3v

Vclk clk 0 0 PULSE .2 2.8v 2N 1N 1N 5N 20N

上述为加入的输入激励和电压源语句。

④ .tran 1ns 200n

指定瞬态分析200ns,分析步长1ns

运行Hspice仿真。

1.11 SPICE做电路仿真时容易出现的错误

①SPICE网表中第一行必须是注释行,在网表文件中的第一行会被SPICE忽略。

②1兆欧一定要写成1MEG,而不是1M、1m或者是1 MEG (数字和MEG之间不要有空格)。

③1法拉应写成1,而不是1f或者1F。1F表示10-15法拉。

④MOSFET源区和漏区的面积在大多数情况下写成pm2的形式。宽长分别为6um和8um的区域的面积应写为48 pm2或者4E-12。

⑤电压源的名字以字母V打头,电流源的名字以字母I打头。

⑥瞬态分析结果是以时间为轴,即X轴为时间。如果本来是正弦波,看着却像三角波,或者曲线看着不平滑。这是因为没有设置好打印数据点的数目,或者给出的打印步长太大了。例如:想在SPICE中得到一个1khZ的正弦波形,最大打印步长应该设为10u(10微秒)

⑦当显示AC仿真结果时,X轴是频率,指针显示的是电压(或电流)的幅值或相位。例如:指针显示“voltage drop at a node”时,它会把此节点电压的实部和虚部加起来,

13

显示一个毫无意义的结果。不同仿真软件的指针的作用也不同。有些仿真软件的功能很强大,可以在完成AC仿真后进入幅度模式。

⑧MOSFET的长和宽应使用字母“u”来代表微米。常见的错误是忘记写这个字母。例如:一种工艺允许的MOSFET最小尺寸为L=2u,W=3u,而不是L=2,W=3。或者意味着一个2米长、3米宽的MOSFET。

⑨通常PMOS管的“体”接到VDD,NMOS管的“体”接到VSS。例如:N阱工艺,所有的NMOS 管的“体”必须接到VSS。这个错误在SPICE网表中很容易查出。

⑩DC扫描中的收敛问题可以通过改变电压的边界值来解决。比如:电路从0到5V进行扫描可能不收敛,但是从0.1V到4.9V进行扫描就可能会收敛。

14

15 第2章 CMOS 工艺SPICE 模型测试

1.1 SPICE 模型简介

图2-1传统NMOS 剖面图 图2-2 NMOS 管的I-V 曲线

(1)CMOS 管的强反型区

当MOS器件的栅-源电压大于阈值电压时,称之为强反型状态。当DS GS T V V V >?时,器

件进入饱和区,这里DS V 和T V 分别指MOS管漏源电压和阈值电压,

GS V 指MOS管的栅-源电压。事实上,在MOS运算放大器设计中,大部分的MOS器件都是工作在饱和状态,因为对于给定的漏级电流和器件尺寸来说,工作在饱和区可以提供稳定的电流和比较大的电压增益。在饱和区,MOS器件的漏级电流D I 和栅-源电压GS V 的关系由下式决定: 2()2n ox GS TH DS C W V V I L μ?= (2-1) 式中n μ为NMOS沟道中电子迁移率,ox C 为栅极氧化层单位面积电容量,W为沟道宽度,L为沟道长度。

在模拟电路中,MOSFET的跨导m g 是一个非常重要的参数。根据上式可求得MOSFET

在饱和区静态工作点处的小信号跨导:

本文来源:https://www.bwwdw.com/article/ge3l.html

Top