HSPICE与CADENCE仿真规范与实例(3)

更新时间:2023-12-07 07:07:01 阅读量: 教育文库 文档下载

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

电路模拟实验专题

实验文档

一、简介

本实验专题基于SPICE(Simulation Program With Integrated Circuit)仿真模拟,讲授电路模拟的方法和spice仿真工具的使用。

SPICE仿真器有很多版本,比如商用的PSPICE、HSPICE、SPECTRE、ELDO,免费版本的WinSPICE,Spice OPUS等等,其中HSPICE和SPECTRE功能更为强大,在集成电路设计中使用得更为广泛。因此本实验专题以HSPICE和SPECTRE作为主要的仿真工具,进行电路模拟方法和技巧的训练。

参加本实验专题的人员应具备集成电路设计基础、器件模型等相关知识。

二、Spice基本知识 (2)

无论哪种spice仿真器,使用的spice语法或语句是一致的或相似的,差别只是在于形式上的不同而已,基本的原理和框架是一致的。因此这里简单介绍一下spice的基本框架,详细的spice语法可参照相关的spice教材或相应仿真器的说明文档。

首先看一个简单的例子,采用spice模拟MOS管的输出特性,对一个NMOS管进行输入输出特性直流扫描。VGS从1V变化到3V,步长为0.5V;VDS从0V变化到5V,步长为0.2V;输出以VGS为参量、ID与VDS之间关系波形图。

*Output Characteristics for NMOS M1 2 1 0 0 MNMOS w=5u l=1.0u

VGS 1 0 1.0 VDS 2 0 5 .op

.dc vds 0 5 .2 Vgs 1 3 0.5 .plot dc -I(vds) .probe

*model

.MODEL MNMOS NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7 .end

描述的仿真电路如下图,

图2-1 MOS管输入输入特性仿真电路图

得到的仿真波形图如下图。

从这个简单的spice程序中可以知道spice电路描述的主要组成部分。 (1) 标题和电路结束语句

在输入的电路描述语句中输入的第一条语句必须是标题语句,最后一条必须是结束语句。在本例中,

*Output Characteristics for NMOS … … …. … .end

(2) 电路描述语句

电路描述语句描述电路的组成和连接关系,包括元器件、激励源、器件模型等描述,另外,如果电路是层次化的,即包含子电路,电路描述部分还包括子电路描述(.subckt)。

在描述元器件时,要根据类型,采用不同的关键字作为元件名的第一个字母,元器件关键字见下表。如本例中,NMOS管的描述为:

M1 2 1 0 0 MNMOS w=5u l=1.0u

←标题

←结束语句

表示的意思为:

元器件关键字x D G S B 模型名 宽=xx 长=xx

其中D:漏结点;G:栅结点;S:源结点;B:衬底结点。

器件模型描述电路中所使用的器件的spice模型参数,语句为.model。如在本例中,

.MODEL MNMOS NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7

其中MNMOS为模型名,以便在元器件调用时使用,NMOS为模型的关键字。

元器件类型 电阻 电容 电感 二极管 NPN或PNP双极型晶体管 N沟或P沟结型场效应晶体管 N型或P型MOS场效应晶体管 GaAs场效应晶体管 电压控制开关 电流控制开关 互感 元器件关键字 R C L D Q J M B S W K 激励源说明供激励用的独立源和受控源,比如:V: 独立电压源; I: 独立电流源;E: 电压控制电压源; F: 电流控制电流源;G: 电压控制电流源; H: 电流控制电压源,等等。

(3) 分析类型描述语句

分析类型描述语句说明对电路进行何种分析。比如,直流工作点(.op),直流扫描分析(.dc),交流分析(.ac),噪声分析(.noise),瞬态分析(.tran)等等。 (4) 控制选项描述语句

控制选项用于描述spice仿真时的相关控制选项,一般在.option内进行设置,另外还有打印及输出控制选项(.print、.plot、.probe)等等

现将整个spice程序例子标注如下:

*Output Characteristics for NMOS M1 2 1 0 0 MNMOS w=5u l=1.0u VGS 1 0 1.0 VDS 2 0 5 .op

←标题 ←元器件描述

(模型名为MNMOS的场效应MOS管M1, 漏结点2、栅结点1、源结点0、衬底结点0, 栅宽5um,栅长1um) ←激励源描述

(连接在1和0结点之间的1V独立电压源) ←激励源描述

(连接在2和0结点之间的5V独立电压源)

←分析类型描述,直流工作点分析

.dc vds 0 5 .2 Vgs 1 3 0.5

.plot dc -I(vds) .probe

*model

←分析类型描述,直流扫描分析 (VGS从1V变化到3V,步长为0.5V; VDS从0V变化到5V,步长为0.2V) ←控制选项描述,打印声明 ←控制选项描述,打印输出

.MODEL MNMOS NMOS VTO=0.7 KP=110U

+LAMBDA=0.04 GAMMA=0.4 PHI=0.7 .end

←器件模型描述,定义模型名为MNMOS

的NMOS类型的模型 ←结束语句

三、Hspice电路仿真 (1+3)

HSPICE的输入网表文件通常为.sp文件,输出文件有运行状态文件.st0、输出列表文件.lis、瞬态分析文件.tr、直流分析文件.sw、交流分析文件.ac等,输出文件有运行状态文件.st0和输出列表文件.lis在每次hspice运行后均有出现,其他的输出文件视spice程序中选择的分析类型而出现,并且可以在波形显示工具中显示,如Avanwaves、cosmos scope等。

输入spice网表(程序)文件和库输入文件能够由一个线路网表转换器或用一个文本编辑器产生。

1.写输入网表文件的规则

输入网表文件的第一个语句必须是标题行,最后一个语句必须是.END语 句,它们之间的语句次序是随意的,除非是续行(行首有“+”的行)必须接在要接下去的行后面。注释行以*打头,可加在文件中的任何地方。 2. 输入文件的编辑

(a)HSPICE 采用自由格式输入。语句中的域由一个或多个空格,一个Tab,一个逗号, 一个等号或一个左/右圆括号分开。

(b)除UNIX 系统中的文件名外,不予区分大写或小写字母。 (c)每行语句长度限于80 个字符以下。

(d)一个语句如在一行写不下,可以用续号继续下去。续行以“+”作为第一个非数值、非空格字符。

(e)输入网表文件不能被“打包”,也不能被压缩。 (f)输入网表文件中不要采用特殊的控制字符。

图3-1 Hspice的模拟流程

1、工具的使用

Hspice可以采用命令行或图形界面的方式执行,命令行的方式如下,

hspice <输入文件>

不生成lis文件,lis文件的内容打印到屏幕上。 hspice –i <输入文件> -o <输出文件名> 生成以输出文件名命名的lis文件。

相对方便的方式是采用图形界面的方式,如下

图3-2 hspice仿真图形界面

按Simulate执行仿真,之后,采用Avanwaves或Cscope来显示波形,分别如下,

图3-3 Avanwaves波形查看软件界面

图3-4 Cosmos Scope波形查看软件界面

2、基本电路分析

下面以下图所示的电路为例子,说明hspice的基本仿真方法。

图3-5 一个基本的共源级放大器的例子

此电路为共源级放大器,负载为电流源,电流源采用电流镜实现,偏置为电阻与电流镜实现的简单偏置。各结点号已标注在图中,其中GND的默认结点号为0结点。

2.1直流仿真

图中电路的直流仿真spice程序如下,

* DC analysis for AMP

M1 2 1 0 0 MOSN w=5u l=1.0u M2 2 3 4 4 MOSP w=5u l=1.0u M3 3 3 4 4 MOSP w=5u l=1.0u R1 3 0 100K CL 2 0 5p

Vdd 4 0 DC 5.0 Vin 1 0 DC 5.0 .op

.dc Vin 0 5 0.1 .plot dc V(2) .probe

.option list node post

*model

.MODEL MOSN NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7

.MODEL MOSP PMOS VTO=-0.7 KP=50U +LAMBDA=0.05 GAMMA=0.57 PHI=0.8 .end

.op是分析直流工作点的语句。此语句在进行电路直流工作点计算时,电路中所有电感短路,电容开路。值得注意的是,在一个HSPICE 模拟中只能出现一个.OP 语句。

.dc 是直流扫描分析。该语句规定了直流传输特性分析时所用的电源类型和扫描极限。

在直流分析中,.DC 语句可进行 a. 直流参数值扫描 b. 电源值扫描 c. 温度范围扫描

d. 执行直流蒙特卡罗分析(随机扫描) e. 完成直流电路优化 f. 完成直流模型特性化

.DC 语句具体格式取决于实际应用需要,下面给出了最常用的应用格式: .DC var1 START=start1 STOP=stop1 STEP=incr1 在本例中, .dc Vin 0 5 0.1,

输入端的电压源Vin从0V变化到5V,步长为0.1V。

.DC语句可以采用嵌套的形式,比如,

.DC var1 START=start1 STOP=stop1 STEP=incr1 var2 START=start2 STOP=stop2 STEP=incr2

下面是做温度扫描的例子, .DC TEMP -55 125 10

下图是此电路的直流扫描结果。可见在1~1.12V区域内是此放大器的高增益区。

2.2交流仿真

图中电路的交流仿真spice程序如下,

* AC analysis for AMP

M1 2 1 0 0 MOSN w=5u l=1.0u M2 2 3 4 4 MOSP w=5u l=1.0u M3 3 3 4 4 MOSP w=5u l=1.0u R1 3 0 100K CL 2 0 5p

Vdd 4 0 DC 5.0

Vin 1 0 DC 1.07 AC 1.0 .op

.ac DEC 20 100 100MEG *.plot ac VDB(2) VP(2) .probe

.option list node post

*model

.MODEL MOSN NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7

.MODEL MOSP PMOS VTO=-0.7 KP=50U +LAMBDA=0.05 GAMMA=0.57 PHI=0.8 .end

交流仿真结果

2.3瞬态仿真

图中电路的瞬态仿真spice程序如下 * TRAN analysis for AMP

M1 2 1 0 0 MOSN w=5u l=1.0u M2 2 3 4 4 MOSP w=5u l=1.0u M3 3 3 4 4 MOSP w=5u l=1.0u R1 3 0 100K *CL 2 0 5p

Vdd 4 0 DC 5.0

Vin 1 0 DC 1.07 sin(2 2 100KHz) .op

.tran .1u 10u

*.plot tran V(2) V(1) .probe

.option list node post

*model

.MODEL MOSN NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7

.MODEL MOSP PMOS VTO=-0.7 KP=50U +LAMBDA=0.05 GAMMA=0.57 PHI=0.8 .end

大信号瞬态仿真结果:

改为小信号时,注意偏置值的选取。 Vin 1 0 DC 1.07 sin(1.07 0.0001 100KHz)

通过瞬态仿真,可见小信号增益为50倍,约为34dB,和AC仿真结果进行对照,看以发现结果是一致的。同样,相位的结果也是一致的。

2.4 练习

采用本实验提供的某工艺的BSIM模型文献(mix025_1.l)对上述电路的上述分析分别

重新进行仿真,并总结出仿真结果。

提示:模型文件可以采用.lib 在仿真文件里进行引用。

注意:由于更换的模型参数,即更换了工艺,因此电路的性能参数发生了变化,特别要注意的是输入偏置的设置。

四、Spectre电路仿真 (1+3)

Cadence公司的Spectre仿真器的实质和HSPICE等spice仿真软件是一样的,但由于集成了cadence的ADE仿真集成环境,可以在图形界面下操作,使用更为方便和直观一些,比如,不用写spice的网表程序,可以在schematic view中绘制电路图。

这里仍以图3-5的电路作为例子,讲解工具的使用和基本电路分析的方法。

1、工具的使用

1.1 编辑电路图(schematic)

启动cadence的设计环境平台,在命令行提示符($)下执行, $ icfb &

首先建立一个设计库,tools -> library manager, File -> New -> Library,

在Name内添上lab1,ok后,选择Don’t need a techfile,然后ok。

这样就建立了一个设计库。这里之所以不选择编译techfile,是因为我们只进行电路的设计和仿真,如果还有设计电路的版图,则根据选择的工艺厂家的techfile来进行编译。

然后,在设计库里建立一个schemtic view,在Library Manager菜单 New-> cell view,

填入amp1,view name选schematic,然后ok,则会出现电路图的编辑界面。

插入元器件,选择analogLib中的nmos4 、pmos4、res、cap等器件。

形成如下电路图,然后check and save,如下图。

下面做这个放大器的symbol,Design->Create Cellview -> From Cellview,在弹出的界面,按ok后出现symbol Generation options,选择端口排放顺序和外观,然后按ok出现symbol编辑界面。按照需要编辑成想要的符号外观,如下图。保存退出。

下面建立仿真的电路图cut_amp1。方法和前面的“建立schemtic view”的方法一样,但在调用单元时除了调用analogLib库中的电压源、(正弦)信号源等之外,将此放大器(lab1中的amp1)调用到电路图中,如下图。

下图是添加输入激励源的设置。

在schematic编辑界面,选择Tools-> Analog Environment,出现Virtuoso Analog Design Environment (ADE),如下图

在ADE中,设置仿真器、仿真数据存放路径和工艺库,具体地,

setup->Simulator/Directory/Host… 中选择simulator为spectre,project Directory改为./simulation。 Setup->Model Libraries中Model Library File 找到sm046005-1j.scs文件填入,section部分填typical,如下图,按add,然后ok。

Variables->copy from cellview, 则电路中的变量出现在ADE中Design Variable一栏中,如下图,

至此工具的初步使用已经进行了简单的介绍,下面结合具体的基本电路仿真进行介绍。

2、基本电路分析

2.1直流仿真

结合上面例子,首先设计仿真电路中的变量,vpower=3,vbias=1,va=2,f0=100K。然后选择Analyses->choose,在analysis一栏中选dc,在DC Analysis中选中Save DC operating Point;在sweep Variable中选中Design Variable,variable Name填vbias,在sweep Range, start选0, stop选3,然后ok。

然后,simulation->Netlist and Run,运行仿真。

再后观察仿真波形,这里有两种波形查看工具,一种是WaveScan,一种是AWD。在session->options中进行设置。这里选择AWD。在tools中选择calculator。如下图,

店主vs按钮,在schematic 中选择需要输出波形的节点,如out,然后按plot,得到如下波形,

可见输入偏置在772.5mv~903.7mv的范围内存在一个高增益区,因此输入偏置应设置在这个区域内,改vias从1v到0.86v。

由于在做直流仿真时也选择了Save DC operating Point,因此可以查看电路的工作点,在calculator中按vdc,同时选中Evaluate buffer,比如查看out的电压工作点。也可以查看器件的工作状态,按op,然后在电路中选择需要查看的器件,如I0/M1的vth。

2.2交流仿真

后选择Analyses->choose,在analysis一栏中选ac,注意此时vbias已经选择到了0.82v。 Sweep Variable选Frequency,Sweep Range 选1~100M,按ok。

然后,simulation->Netlist and Run,运行仿真。仿真运行结束后,仍可以采用calculator打印结果。这里采用另外一种方法,在Results-> Direct Plot选中AC Magnitude & Phase,然后在schematic view中点中out,则AC的结果打印如下图。

2.3瞬态仿真

后选择Analyses->choose,在analysis一栏中选tran,

大信号1V时,

小信号0.1mV时,

2.4 练习

修改偏置电流,即修改R0,对上述电路的上述分析分别重新进行仿真,并总结出仿真结果。

注意:由于改变了偏置条件,因此电路的性能参数发生了变化,特别要注意的是输入偏置的设置。

五、实例:放大器的仿真及分析 (2+6)

下面以一个放大器作为实例讨论一些电路设计分析方法。

图4比较器电路

比较器采用单级运放后加一反相器构成,如图4所示。其中Ibias为自偏置电路如图5A所示(注:自偏置电路原理见Razavi书310页,实际工作时要加上启动电路,解释启动电路的原理。),comp_amp为一级运放如图5B所示,inv为反向器。

图5A自偏置电路 图5B运算放大器电路

运算放大器为双端输入单端输出的结构,可以在满足输入和输出摆幅的情况下实现一定的电压增益(考虑其值是多少时满足性能要求)。首先确定所采用管子的宽度(所有晶体管的沟道长度不必为同一值),手工设计:根据拟定的设计指标,确定满足指标的运算放大器各元件的尺寸和所需要的偏置电流的大小(可能需要迭代);

设计偏置电路:采用自偏置电流源技术 a) 选定电路结构;

b) 手工设计:确定各元件的尺寸; c) Spectre仿真(采用TT Corner模型),验证电流源的性能;

将偏置电路和运算放大器电路合在一起仿真(采用TT Corner模型,27o),确定运放的最终性能参数:

a) 开环增益的幅频和相频响应; b) CMRR的频率响应; c) PSRR的频率响应; d) 共模输入范围; e) 输出电压摆幅; f) 压摆率; g) 建立时间; h) 噪声; i) 功耗;

采用SS Corner模型,0o仿真温度,重新仿真以上参数。 采用FF Corner模型,80o仿真温度,重新仿真以上参数。

图6所示的仿真电路可仿真放大器的交流特性和瞬态特性。采用闭环电路仿开环的方法,通过R0形成负反馈通路从而确定输出共模电平(此时的共模电平实际是V1的直流值),并稳定直流偏置。在这个电路中选择RC时间常数的倒数与Av的乘积小于运放预期的主极点是必须的,即选择大电阻和大电容值(本实验选择1G欧姆电阻和1mf电容,具体见allen的运算放大器仿真)。由于反馈电阻的大阻值,输入的共模会自动调整到和输入V1相等。

图6 AC特性仿真

图中输入为正弦波形对其进行相应设置来满足功能,主要包括直流电压值提供输入端的直流偏置、交流AC幅值和相位(通常为1V,相位默认为0)、瞬态电压幅值频率和相位值。具体设置如下图所示:

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

Top