CMOS实验课1HSPICE介绍
- 格式:doc
- 大小:261.00 KB
- 文档页数:12
《集成电路设计》课程设计报告基于HSPICE的晶体管级电路设计与仿真题目:CMOS2-4译码器设计与HSPICE仿真学院专业班级学生姓名指导教师提交日期目录一、设计目的 (1)二、设计要求和设计指标 (1)三、设计内容 (1)CMOS2-4译码器原理及电路设计 (1)门级设计 (1)门的CMOS实现 (2)仿真结果与分析 (5)四、总结 (7)五、主要参考文献 (10)一、设计目的熟悉《数字集成电路设计》课程,学习Hspice软件的使用,以及.sp文件的编写,进一步理解掌握CMOS设计组合逻辑电路与时序逻辑电路的基本知识,继而熟练地运用半导体集成电路知识。
二、设计要求和设计指标(1)了解C2MOS 主从正沿触发寄存器的电路结构、电路原理;(2)了解电路具体参数,包含的晶体管数目、晶体管尺寸、连线情况等;(3)利用HSPICE软件,编写.sp 文件;(4)仿真该sp 文件,得出描述电路性能的函数图线、波形等参数;(5)在具体的软硬件实验环境中,进行设计模拟、仿真和调试,解决设计调试中的具体问题;得出结论,并完成设计。
三、设计内容CMOS2-4译码器原理及电路设计门级设计译码器是组合逻辑电路的一个重要器件,把代码状态的特定含义“翻译”出来的过程叫做译码,实现译码操作的电路称为译码器。
译码器是可以将输入二进制代码的状态翻译成输出信号,以表示其原来含义的电路。
而CMOS2-4译码,是将其输入的两位二进制代码“00”“01”“10”“11”进行翻译,从而控制电路的输出线路,实现四路译码的过程。
其真值表如图表1所示:A B Y0Y1Y2Y3000111011011101101111110图表1由图表1可以得到CMOS2-4译码器的布尔表达式为:Y0=Y1=Y2=Y3=从而可以得到CMOS2-4译码器门级设计的电路图,如图表2:123U1A 12U5A123U6A123U2A 12U4A123图表2这样,通过两个非门和四个与非门就可以实现如图表1中的真值表所示的逻辑功能。
HSPICE介绍1、为什么要使用Hspice进行电路仿真Avant! Star_Hspice(Synopsys公司)是IC设计中最长用的仿真工具,是目前业界使用最为广泛的IC设计工具,甚至可以说是事实上的标准。
目前,一般的书籍中都采用比较简单的MODEL对MOS电路进行计算和估算。
而工艺厂商提供的MODEL往往要高级的多、复杂的多。
因此设计者除了利用书本上的公式对电路进行估算外,还需要使用更高级的MODEL对电路进行精确的仿真,这就有赖于仿真工具的使用,如Hspice,Spectre。
2、Hspice仿真的流程v1.0 可编辑可修改3、Hspice所使用的单位(不区分大小写)4、输入文件格式( /.sp)5、电路元器件在Hspice文件中的表示方法在器件名字前面加上前缀字符,即可被Hspice程序识别,如:MOS器件前缀为:MBJT器件前缀为:QDiode器件前缀为:D子电路的前缀为:X电阻、电容、电感的前缀分别为R、C、L下面表示一个器件名为M1的MOS管MM1 ND NG NS NB MNAME L=VAL W=VAL M=VAL下面表示一个器件名为C1的电容CC1 net1 net2 1pf定义字电路的语句如下:.SUBCKT SUBNAM(子电路的名字) 1 2 3 4(字电路外部节点)例子:.SUBCKT OPAMP 1 2 3 4(描述电路结构).ENDS OPAMP调用子电路时,使用X前缀加实例名,将SUBCKT实例化,如:.XOPAMP1 1 2 3 4 OPAMP6、信号源描述(激励描述):电压源-V,电流源-IVxxx/Ixxx n+ n- <<DC=> dcval> <AC=acmag, <acphase>>+ <M=val>直流:V1 1 0 DC=5V 或 V1 1 0 5VI1 1 0 DC=5mA 或I1 1 0 5mA交流模式:V1 1 0 AC=10V,90 幅度为10v,相位为90度交直流模式:V1 1 0 AC=10V,90 直流分量是Vxxx/ Iyyy n+ n- <tranfun>+ <M=val>tranfun:EXP, PULSE, PWL…。
第一章概论§1.1 HSPICE简介随着微电子技术的迅速发展以及集成电路规模不断提高,对电路性能的设计要求越来越严格,这势必对用于大规模集成电路设计的EDA工具提出越来越高的要求。
自1972年美国加利福尼亚大学柏克莱分校电机工程和计算机科学系开发的用于集成电路性能分析的电路模拟程序SPICE(Simulation Program with IC Emphasis)诞生以来,为适应现代微电子工业的发展,各种用于集成电路设计的电路模拟分析工具不断涌现。
HSPICE是Meta-Software公司为集成电路设计中的稳态分析,瞬态分析和频域分析等电路性能的模拟分析而开发的一个商业化通用电路模拟程序,它在柏克莱的SPICE(1972年推出),MicroSim公司的PSPICE (1984年推出)以及其它电路分析软件的基础上,又加入了一些新的功能,经过不断的改进,目前已被许多公司、大学和研究开发机构广泛应用。
HSPICE可与许多主要的EDA设计工具,诸如Candence,Workview等兼容,能提供许多重要的针对集成电路性能的电路仿真和设计结果。
采用HSPICE软件可以在直流到高于100MHz的微波频率范围内对电路作精确的仿真、分析和优化。
在实际应用中,HSPICE能提供关键性的电路模拟和设计方案,并且应用HSPICE进行电路模拟时,其电路规模仅取决于用户计算机的实际存储器容量。
§1.2 HSPICE的特点与结构HSPICE除了具备绝大多数SPICE特性外,还具有许多新的特点,主要有:!优越的收敛性!精确的模型参数,包括许多Foundry模型参数!层次式节点命名和参考!基于模型和库单元的电路优化,逐项或同时进行AC,DC和瞬态分析中的优化!具备蒙特卡罗(Monte Carlo)和最坏情况(worst-case)分析!对于参数化单元的输入、出和行为代数化!具备较高级逻辑模拟标准库的单元特性描述工具!对于PCB、多芯片系统、封装以及IC技术中连线间的几何损耗加以模拟在HSPICE中电路的分析类型及其内部建模情况如图1.2.1和图1.2.2所示:图1.2.1HSPICE的电路分析类型图1.2.2 HSPICE的内部建模技术集成电路设计中的分析和验证是一种典型的围绕一系列结构的试验和数据管理。
Hspice应用讲解Hspice是一种通用电路分析程序,可用来进行集成电路和电子线路的分析模拟。
它可以用来分析电路的非线性直流特性,线性交流小信号特性,非线性瞬态特性,温度特性等。
其中,直流分析(.DC)不光可进行直流转移特性分析,还可进行直流工作点(.OP),直流小信号传输特性(.TF),直流小信号灵敏度(.SENS)分析;在进行交流分析(.AC)的同时还可进行噪声特性(.NOISE)和失真特性(.DISTO)分析;在进行瞬态分析(.TRAN)的同时还可进行傅立叶(.FOUR)分析;进行温度特性分析(.TEMP)以求得电路的温度特性。
在进行交流分析和瞬态分析前先进行直流分析,以决定其非线性组件的线性化小信号模型和其初始条件。
Hspice输入描述文件格式:Hspice的输入描述文件格式是一种自由格式,其输Array入的第一条语句必须是标题语句,且不能省略;最后一条语句必须是结束语句(.END),其余语句的顺序是任意的。
在输入描述文件的任何地方都可插入注释语句(在语句前加“*”或“$”),程序只对注释语句进行原样打印而不进行任何处理。
组件语句是说明该组件的拓扑关系和组件值的。
每个组件给予一个组件名,组件名的第一个字母说明该组件的类型,Hspice并对各种类型的组件所对应的英文字母作了规定,组件名不能重复。
组件的节点号可以用一正整数表示,也可以用网点名表示。
模型语句是说明该组件的模型参数的。
在模型语句中定义一组组件模型参数并赋予一个唯一的模型名,在组件语句中即可引用此模型名,表明此组件具有该组模型参数值。
子电路是用一组组件语句来定义,程序会自动将这组组件插入到子电路被调用的地方,其大小和复杂性没有限制,并允许其包含其它子电路。
在电路中不能包括短路的电压源和电感,开路的电流源和电容,电路中的每个节点都不能悬空。
控制语句是控制程序的运行和规定分析及输出的内容。
如温度语句,工作点分析语句,交流分析语句,瞬态分析语句,打印语句,绘图语句和可选项语句等。
HSPICE介绍1、为什么要使用Hspice进行电路仿真Avant! Star_Hspice(Synopsys公司)是IC设计中最长用的仿真工具,是目前业界使用最为广泛的IC设计工具,甚至可以说是事实上的标准。
目前,一般的书籍中都采用比较简单的MODEL对MOS 电路进行计算和估算。
而工艺厂商提供的MODEL往往要高级的多、复杂的多。
因此设计者除了利用书本上的公式对电路进行估算外,还需要使用更高级的MODEL对电路进行精确的仿真,这就有赖于仿真工具的使用,如Hspice,Spectre。
2、Hspice仿真的流程3、Hspice所使用的单位(不区分大小写)4、输入文件格式(.net /.sp)5、电路元器件在Hspice文件中的表示方法在器件名字前面加上前缀字符,即可被Hspice程序识别,如:MOS器件前缀为:MBJT器件前缀为:QDiode器件前缀为:D子电路的前缀为:X电阻、电容、电感的前缀分别为R、C、L下面表示一个器件名为M1的MOS管MM1 ND NG NS NB MNAME L=VAL W=VAL M=VAL下面表示一个器件名为C1的电容CC1 net1 net2 1pf定义子电路的语句如下:.SUBCKT SUBNAM(子电路的名字) 1 2 3 4(子电路外部节点)例子:.SUBCKT 2NAND 1 2 3(描述电路结构).ENDS 2NAND调用子电路时,使用X前缀加实例名,将SUBCKT实例化,如:.XOPAMP1 4 5 6 OPAMP6、信号源描述(激励描述):电压源-V,电流源-IVxxx/Ixxx n+ n- <<DC=> dcval> <AC=acmag, <acphase>>+ <M=val>直流:V1 1 0 DC=5V 或V1 1 0 5VI1 1 0 DC=5mA 或I1 1 0 5mA交流模式:V1 1 0 AC=0.5V,90 幅度为0.5v,相位为90度交直流模式:V1 1 0 3v AC=0.5V,90 直流分量是3vVxxx/ Iyyy n+ n- <tranfun>+ <M=val>tranfun:EXP, PULSE, PWL…。
<M=val>只用来描述电流源,表示并联的电流源个数。
默认为1。
脉冲源:Vxxx n+ n- PULSE (v1 v2 td tr tf pw per)(脉冲电流源有类似的书写方法)正弦源:Vxxx n+ n- SIN ( vo va freq td Θφ) (正弦电流源可以类似的方式给出)任意方波源:Vxxx n+ n- pwl ( t1 v1 t2 v2 t3 v3……R TD )7、分析命令工作点分析.OP 会在输出文件中列出一些直流参数。
如,各结点的工作点电压、支路电流、器件工作状态等等。
如.OP 20us 30us *打印出20us,30us时电路的直流参数直流分析.DC var1 START STOP STEP/<SWEEP var2 type np start2 stop2>,Type: DEC(十进位)/OCT(倍频)/LIN(线性)/DATA=datanm/POI(列表)Np -单位范围内的点数(依type而定)。
SWEEP后的变量可是电压、电流或温度等变量。
例:.DC xval 1k 10k 0.5k SWEEP TEMP LIN 5 25 125交流分析.AC type np fstart fstop <SWEEP var start stop incr>例:.AC DEC 10 1K 100MEG*1kHz-100MHz,每10倍频程取10个点打印。
瞬态分析.TRAN var1 START=start1 STOP=stop1 STEP=incr1 或者.TRAN tincr1 tstop1 < tincr2 tstop2 ...tincrN tstopN>+ <START=val> <UIC>注意:Tran分析时起止时刻及步长指的是输出打印点的时刻,Hspice真正的计算步长是由Hspice自己决定的。
例:.TRAN 0.1NS 25NS 1NS 40NS START=10NS*0-25ns,步长0.1ns, 25ns-40ns,步长1ns; 从10ns开始输出结果。
.TRAN1NS 100NS *以1ns的步长输出到100ns8、测量命令:MEASURE命令.MEASURE <DC|AC|TRAN> result TRIG … TARG …Result是测量结果的名字,TRIG … TARG 为起始···中止(依分析内容不同可是时刻、频率···)TRIG 和TARG的格式如下:TRIG trig_var V AL=trig_val <TD=time_delay> <CROSS=c> <RISE=r> <FALL=f>TARG targ_var V AL=targ_val <TD=time_delay> <CROSS=c | LAST> <RISE=r | LAST> <FALL=f | LAST> *last表示最后一次事件。
例:.meas tran tdlay trig v(1) val=2.5 td=10n rise=2+ targ v(2) val=2.5 fall=2该例测量一个名为tdlay的时间,在节点1处的电压第二次超过2.5v,时开始测量(注意在超过2.5v以后10n秒才开始计算),到节点2处的电压第二次回落到2.5v时停止测量。
9、输出命令.PRINT<DC | TRAN> P(element_or_subcircuit_name) POWER*打印功率值.PRINT TRAN P(M1) P(VIN) P(CLOAD) POWER.PLOT DC POWER P(IIN) P(RLOAD) P(R1).PROBE antype ov1 … <ov32>*antype 可以是DC /AC/TRAN……后面的变量可以是电压或者电流及器件的参数等等。
10、例题下图反相器中的MOS 管L=0.5u ,W=1.2u 。
试建立反相器子电路,并考察子电路的VTC 特性。
建立完整电路后,分析该反相器链的直流传输特性、时序特性及带负载能力(负载为电容0.5P 1P 2P )。
第一步:设计反相器单元VoutVdd第二步:写出输入文件,执行DC 分析获得反相器的VTC 特性图.TITLE 1.2UM CMOS INVERTER.options probe.options tnom=25.options ingold=2 limpts=30000 method=gear.options lvltim=2 imax=20 gmindc=1.0e-12.protect.lib'E:\cmos25_level49.lib' TT.unprotect.global vddMn out in 0 0 NMOS W=1.2u L=0.5u *(工艺中要求尺寸最大0.5u)Mp out in vdd vdd PMOS W=1.2u L=0.5u * 此处W需做更改) CL OUT 0 0.5PFVDD VDD 0 5VVIN VIN 0 PULSE(0 5V 10NS 1N 1N 50N 100N).DC VIN 0 5V 0.1V.op.probe dc v(V out).end第三步写出SUBCKT并实例化三个,来实现反相器链对反相器链执行DC扫描。
.TITLE 1.2UM CMOS INVERTER CHAIN.options probe.options tnom=25.options ingold=2 limpts=30000 method=gear .options lvltim=2 imax=20 gmindc=1.0e-12 .protect.lib'E:\cmos25_level49.lib' TT.unprotect.global vdd.SUBCKT INV IN OUT wn=1.2u wp=1.2u Mn out in 0 0 NMOS W=wn L=1.2uMp out in vdd vdd PMOS W=wp L=1.2u.ENDSX1 IN 1 INV WN=1.2U WP=3UX2 1 2 INV WN=1.2U WP=3UX3 2 OUT INV WN=1.2U WP=3UCL OUT 0 1PFVDD VDD 0 5VVIN VIN 0 0.DC VIN 0 5V 0.1V.measure DC V1 when v(out)=2.5v.PROBE dc v(V out).END第四步执行measure 命令测量延迟时间。
VIN VIN 0 PULSE(0 5V 10NS 1N 1N 50N 100N).TRAN 1N 200N.measure tran tdelay trig v(in)+val=2.5 td=8ns rise=1+ targ v(out) val=2.5 td=9n fall=1.PRINT V(OUT).end第五步考察电路带容性负载的能力,同学们自己完成(提示:建立DATA包含三个容值,瞬态分析时执行SWEEP DATA=DATANM)相关命令变为.Param C1=0.CL OUT 0 C1.TRAN 1N 200N sweep data=d1.data d1 C1+ 0.5p+ 1P+ 2P.enddata。