CMOS实验课1HSPICE介绍
CMOS译码器设计与HSPICE仿真

《集成电路设计》课程设计报告基于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中的真值表所示的逻辑功能。
电子科技大学CMOS模拟集成设计Hspice仿真

饱和区 0 < VGS – VTHn < VDS
I DSn =
且 [1-1]
1 W K n ( ) n (VGS − VT ) 2 (1 + λ nV DS ) 2 L
其中 Kn
是跨导参数,VT 是NMOS阀值电压,W和L是NMOS的宽
和长度,λn是沟道长度调制系数。
3.2.3 模拟电路中 CMOS 工作在饱和状态区 CMOS 工艺中 NMOS 和 PMOS 用于模拟电路设计时必须工作在饱和区。这一现象 由 MOSFET 的小信号模型的线性特征所决定。 gm = ∆ids W ≅ K n ( ) n (VGS − VT ) ∆v gs L
Hspice 的输入电路程序典型格式如下: *标题描述 电 路 主 体 电路描述 (资料叙述) 资料叙述) 分析形态 (控制叙述) 控制叙述) (输出叙述) 输出叙述) .END (结束叙述) (*引导的注解叙述可安插入其内任一行) 引导的注解叙述可安插入其内任一行)
Байду номын сангаас
---------------------------------------------------------------------------------------------------------------------
9
图 1-13 Hspice Installing
6.
Click “OK”以忽略安装中的 Warnings 如图 1-14。
图 1-14 安装中 Warnings
7. 如图 1-15,Click “OK”以确论 license 文件的路径变量设置的要求信 息。HSPICE2008 安装完成后,再设置系统环境变量。
3
从而和源(S) 、漏(D)两端 p 形成 p 沟道。当 D 和 S 之间有压差,PMOS 就会 导通,形成源漏电流 ISDp。
01-SPICE基础分析

.end
结束语句
四、SPICE的基础分析
直流与灵敏度分析 暂态分析与时域响应 交流与频率响应分析
1.直流分析
首先求出电路直流工作点,此时电路内的 电感视为短路,电容视为开路。直流分析 会计算出电路的某个输入电源在某一个范 围变化时,则电路内某个元件或节点的输 出变化,我们可以用DC分析的功能来求出 放大器或电路的转移函数,以及寻找Logic 的高低电位切入点。
输出结果绘图
性能满足要求? 最终电路设计方案
(3)电路/系统设计
(4)什么是仿真?
仿真:预测生产出来的电路/或系统的性能 Fra bibliotek
功能仿真 逻辑/门级仿真 开关/晶体管级仿真 电路仿真 器件仿真
(5)电路仿真背景
(6)SPICE仿真算法-DC
(7)SPICE仿真算法-Transient
.DC:直流参数扫描,电源值扫描、温度扫描等 .dc:
扫描:.DC 变量1扫描 <变量2扫描>··· 扫描:.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 .5k SWEEP TEMP LIN 5 25 125 ... VIN IN 0 .DC VIN 0 5V 0.1V(从0v到5v,步长0.1v)
暂态分析又称为时域分析,也就是计算电 路在某一个输出变数的响应。
2.暂态分析
.TRAN:在指定时间范围中计算电路的解, 即所谓的时间扫描。 .FOUR:执行傅立叶分析
HSPICE介绍

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…。
HSPICE_简介

Hspice和Pspice的区别
缺点就是,对内存敏感,内部是frotran写的 采用类似c指针的方式对内存地址进行操作, 大概只可以做5000个晶体管,速度很慢 其实在有效的2000个晶体管以上的电路就应 该考虑用cadence,主要比起Hspice来说, cadence在电路收敛性问题比较少。(后面 会讲到收敛性问题)
Vin node1 node2 dc h1 .alter change VIN=5 .PARAM h1=5V .ALTER FF .DEL LIB 'D:\TEST\PROCESS\0.6U BCD V0.1PHASE1.lib' TT .LIB 'D:\TEST\PROCESS\0.6U BCD V0.1PHASE1.lib' FF SS TT FF SF FS
简单电路正向设计的典型流程
1. 功能定义 2. 行为设计 3. 逻辑级电路设计——得到由基本逻辑单元组成的电路
(数字电路) 4. 逻辑级仿真(迭代) 5. 选择合适的工艺库。把各基本功能单元映射至其上;或 设计各单元晶体管级电路——得到电路级网表
6. 电路级仿真:验证各单元电路是否具有期望的
功能,性能估计。(迭代) 7. 版图设计、DRC, LVS 8. 提取版图网表,进行后仿真:验证功能,估计 性能。(迭代) Hspice主要应用于电路级仿真、分析。可以辅助调 整电路参数。得到功耗、延时等性能估计。
预编译” 三. “预编译”指令
1. .INCLUDE Statement .
.INCUDE语句:引用一个文件,被引用的文 件置于引用文件前。 例: LNA .include “me98xxxx/model.sp“ ···
2. .PARAM statement
HSPICE_简介

第一章概论§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的内部建模技术集成电路设计中的分析和验证是一种典型的围绕一系列结构的试验和数据管理。
CMOS模拟集成电路实训H SPICE辅助设计教学PPT讲解学习

内容
•
•
•
•
•
•
•
H-SPICE概述
H-SPICE网表
Model & Sub circuits
Component
Source
Control
实训
(1)常用控制语句
• 直流工作点
• 直流扫描和直流小信号分析
• 交流扫描和小信号分析
• 瞬态分析
(2).OP直流工作点分析
• 语法格式
– .OP
• 瞬态分析结果
.lis
.tr#+
• 瞬态分析测量结果
• 直流分析结果
.mt#
.sw#+
• 直流分析测ห้องสมุดไป่ตู้结果
• 交流分析结果
.ms#
.ac#+
• 交流分析测量结果
• 输出状态
.ma#
.st#
• 工作点节点电压(初始条件) .ic
# :代表扫描分析序号或者硬拷贝文件序号,一般从0 开始。
+:表示在用.POST语句产生图形数据后该文件才被确立。
• 网表文件第一行为标题行
• H-SPICE并不是所见即所得模式,但可以借助Cadence实现
内容
•
•
•
•
•
•
•
H-SPICE概述
H-SPICE网表
Model & Sub circuits
Component
Source
Control
实训
(1)SPICE背景
• SPICE:Simulation Program with Integrated Circuit Emphasis
Hspice软件使用简介

Hspui使用
• 双击Hspui图标进入,从Open中调出你的.sp文件
单击Edit Nl,改后保存
单击Simulate,运行完后从EditLL 查看有无error,若无则完成
Cosmos-Scope使用
• 双击Cosmos-Scope进入,从中调出你的模拟结果文件
可以从坐标标示的图表中得到具体的点的值,也可以用 单击剪刀状的图标得出,从measurement中的得出诸如带 宽之类的信息
弹出Project对话框
这样我们就建立了一个Project
这样我们就建立了一个Project
• 相关模拟时的命令可查阅Pspice 或其他 的相关书籍,指令格式都是相同的
画好图后单击Page1,再单击Netlist
选择PSpice ,将net改为 sp,单击 确定,生成网表文件
hspice软件hspuicapturepspice系统标签
Hspice软件使用简介
哈工、 Hspui、 CosmosScope
• Capture画电路原理图
• Hspui模拟
• Cosmos-Scope看输出结果
Capture使用
• 双击图标进入Capture
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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。