如何编写HSPICE网表
- 格式:pdf
- 大小:599.24 KB
- 文档页数:68
生产实习报告一. 目录1.实习内容记述分析1)HSPICE的基本操作过程2)网表文件结构的总结3)简单的网表文件练习4)总结书写网表文件练习过程中的注意事项5)练习电路参数的调整2.生产实习的收获与体会HSPICE学习总结操作的基本过程1.打开HSPICE操作平台:开始——程序——HSPICE——HSPUI2.打开EDIT NL项,输入网表文件并保存或者可直接在记事本中输入网表文件并保存attention:一般情况下从EDIT NL项直接保存的文件后辍为.exe,应回到保存处强行把文件后辍改为.sp,否则无法运行仿真过程3.通过OPEN项调出刚才保存的网表文件4.通过SIMULATE项可对网表文件进行仿真5.查看EDIT LL项可知仿真过程中是否出现错误,还可查管子的工作状态attention:模拟过程中经常要查看管子的工作状态以便对电路参数进行调整6.仿真所得波形可通过打开A V ANWA VES项查看网表文件结构的总结1.网表文件的基本大体结构.exe1一个简单的网表文件A SIMPLE CS AMPLIFIER *第一行为标题.OPTION POST NODE.TRAN 200P 20N *瞬态分析.PRINT TRAN V(1) V(2)M1 2 1 0 0 N L=1.6U W=50U *连接结构的描述R 3 2 5KVDD 3 0 3VVIN 1 0 0 PULSE 0.2 4.8 2N 1N 1N 5N 20N *输入的描述.MODEL N NMOS LEVEL=1 *模型的定义.ENDexe2.差分结构的网表文件DIFFERENTIAL TEST.OPTION POST NODE.TRAN 200P 20N.PRINT TRAN V(5,6) V(2)M1 2 1 0 0 N L=1.6U W=50UM2 5 3 2 2 N L=1.6U W=50UM3 6 4 2 2 N L=1.6U W=50UR1 7 5 5KR2 7 6 5KVDD 7 0 3VVB 1 0 0.9VIN1 3 0 SIN(1.7 0.1 50 0 0 0)VIN2 4 0 SIN(1.7 0.1 50 0 0 180).MODEL N NMOS LEVEL=1.END在练习过程中写网表文件应注意的问题:1.网表文件第一行为标题。
Hspice实战手册Perface最初写作本文的目的是希望提供一份中文版的Hspice手册从而方便初学者的使用,本文的缘起是几位曾经一起工作过的同事分别进入不同的新公司,而公司主要是使用Hspice,对于已经熟悉了Cadence的GUI界面的使用者转而面对Hspice的文本格式,其难度是不言而喻的,而Hspice冗长的manual(长达2000页以上)更让人在短时间内理不出头绪。
鉴于我曾经使用过相当一段时间的Hspice,于是我向他们提供了一份简单而明了的handbook来帮助他们学习,本来是准备借助一个具体运放的设计例子,逐步完善成为一份case by case的教程,但由于工作比较浩大,加之时间的关系,一直难以完成,愈拖愈久,在几个朋友的劝说下,与其等其日臻完善后再发布,不如先行发布在逐步完善,以便可以让更多的朋友及早使用收益。
本文虽通过网络发表,但作者保留全部的著作权,转载时务请通知本人。
由于水平的有限,讨论范围的局限及错误不可避免,恳请读者指正。
联系方式为e-mail: nkchenliy@。
一、HSPICE基础知识Avant! Start-Hspice(现在属于Synopsys公司)是IC设计中最常使用的电路仿真工具,是目前业界使用最为广泛的IC设计工具,甚至可以说是事实上的标准。
目前,一般书籍都采用Level 2的MOS Mo del进行计算和估算,与Foundry经常提供的Level 49和Mos 9、EKV等Library不同,而以上Mod el要比Level 2的Model复杂的多,因此Designer除利用Level 2的Model进行电路的估算以外,还一定要使用电路仿真软件Hspice、Spectre等进行仿真,以便得到精确的结果。
本文将从最基本的设计和使用开始,逐步带领读者熟悉Hspice的使用,并对仿真结果加以讨论,并以一个运算放大器为例,以便建立IC设计的基本概念。
在文章的最后还将对Hspice的收敛性做深入细致的讨论。
中括号[]表示选填,尖括号<>表示必填V? <正脚> <负脚> [dc <直流量大小>] [ac <交流量大小> <相位>]I? <电流入脚><电流出脚>M?<D> <G> <S> <B> <模型> w=?l=? m=?Q? <C><B> <E> <模型>****信号源函数**脉冲源PULS E (V1 V2 T D TRTF PW PER)其中,V1初始值,V2脉动值,TD延时,TR上升时间,TF下降时间,PW脉冲宽度,PER脉冲周期。
**分段线性源VXXXN+ N- PWL(T1 V1 <T2 V2 T3 V3?>) <R<=re peat>> <TD=dela y>$R=rep eat_f rom_w hat_t ime T D=tim e_del ay_be fore_PWL_s tart其中,Vi是Ti时刻的值,re peat是开始重复的起始点,d elay是延迟时间**正弦源VXX X N+N- SI N(V0VA FR EQ TD THET A PHA SE)其中,VO偏置,VA幅度,TD延时,THE TA阻尼因子,PHA SE相位**指数源VXX X N+N- EX P(V1V2 TD1 TAU1 TD2 TAU2)V1是初始值,V2是峰值,TD1是上升延迟时间,TAU1是上升时间常数,T D2是下降延迟时间,TAU2是下降时间常数。
HSPICE 简明教程udan专用集成电路与系统国家重点实验室RFIC宫志超 1.0 2007.4.7 本文档内容以常用HSPICE指令为主,主要目的为便于学习与查询,详细了解请参阅参考文献版权所有,不得侵犯!传播与修改请保留版权信息。
目录第一章概述 (5)§1.1 HSPICE简介 (5)§1.2 常数 (5)§1.3 输入输出文件及后缀 (5)§1.4 一个简单例子 (6)§1.5 符号说明 (7)第二章仿真输入及控制的设置 (8)§2.1 输入网表概要 (8)§2.2 网表文件中的元素 (8)第三章器件及电源 (15)§3.1 器件 (15)§3.2 独立源 (16)3.2.1 直流源 (16)3.2.2 交流源 (16)3.2.3 瞬态源 (16)3.2.4 混合源 (21)§3.3 受控源 (22)3.3.1 压控电压源 E ELEMENTS (22)3.3.2 压控电流源 G ELEMENTS (23)第四章参数、函数及仿真设置 (25)§4.1 参数 (25)4.1.1 参数定义 (25)4.1.2 .PARAM 声明 (25)4.1.3 指令行内定义 (25)4.1.4 代数表达式定义输出参数 (25)4.1.5 倍乘参数M (THE MULTIPLY PARAMETER) (25)4.1.6 参数作用范围 (26)§4.2 函数 (27)4.2.1 用户定义函数 (27)4.2.2 内置函数 (27)4.2.3 保留变量 (29)§4.3 仿真设置 (29)4.3.1 设置控制选项(CONTROL OPTIONS) (29)4.3.2 基本控制选项 (29)第五章输出设置 (31)§5.1 输出指令 (31)§5.2 输出参数 (31)5.2.1 直流和瞬态分析输出参数 (31)5.2.2 功率 (32)5.2.3 交流分析输出参数 (32)5.2.4 网路相关参数 (33)5.2.5 噪声和谐波分析输出参数 (33)5.2.6 器件参数输出 (34)第六章常用分析 (35)§6.1 直流初始化及工作点分析 (35)6.1.1 电路初始化 (35)6.1.2 工作点分析(OPERATING POINT) .OP声明 (35)§6.2 直流扫描分析 (36)6.2.1 .DC 声明 (36)6.2.2 例子 (36)6.2.3 其他直流分析声明 (37)§6.3 瞬态分析 (38)6.3.1 瞬态分析的初始化 (38)6.3.2 瞬态分析 .TRAN 声明 (38)6.3.3 例子 (38)6.3.4 傅立叶分析 (38)§6.4 交流分析 (40)6.4.1 交流分析 .AC 声明 (40)6.4.2 例子 (40)6.4.3 其他交流分析 (41)第七章统计分析及优化 (43)§7.1 用户定义的分析 (43)7.1.1 .MEASURE 声明 (43)7.1.2 上升、下降和延迟(RISE FALL AND DELAY) (43)7.1.3 FIND 和 WHEN函数 (44)7.1.4 方程计算 (45)7.1.5 平均值、均方根值、最大最小值和峰峰值测量 (45)7.1.6 积分函数 (46)7.1.7 微分函数 (46)7.1.8 误差函数 (47)§7.2 温度分析 (48)§7.3 最坏情况分析 (48)7.3.1 标准统计名词定义 (48)7.3.2 最坏情况分析介绍 (49)7.3.3 模型歪斜参数及工艺角文件 (49)§7.4 蒙特卡罗分析 (50)7.4.1 蒙特卡罗分析概要 (50)7.4.2 定义分布函数 .PARAM 声明 (51)7.4.3 蒙特卡罗分析的例子 (52)7.4.4 最差情况和蒙特卡罗分析的例子 (53)§7.5 优化 (58)7.5.1 优化概要 (58)7.5.2 优化相关声明 (59)7.5.3 优化的例子 (60)备注: (63)参考文献: (63)第一章概述§1.1Hspice简介Hspice是电路模拟仿真的工具。
仿真过程:第一步:搭建电路。
使用工具:Cadence,ECS,Workview等第二步:以可编辑方式打开需要仿真的电路(子电路,整体电路均可,整体电路需要打开顶层图)。
Tools→Analog Envirement 弹出窗口。
Setup→Simulator→Simulator一栏选择“HSPICE”(也有选择HspiceS的)→OKSimulation→Netlist→Create稍等一会儿,自动弹出生成的网标文件。
“Save”至指定目录下,建议以时间和功能命名,这样易于理解和分辨网表的新旧。
保存的文件后缀为.txt若生成网表失败,请在icfb中查找原因,找到“error”部分的描述即为失败原因。
常见原因有:电路的输入输出PIN与其Symbol的PIN对不上(这个错误在电路保存时就能发现);电路连线有问题,比如存在短路,重名等情况;电路改动过后没有保存。
第三步:创建仿真文件。
该文件以.sp为后缀进行保存。
仿真文件主要是添加激励,指定仿真类型和内容,以及仿真精度和结果等的显示。
文件第一行不能输入有效语句,一般以*号注释,正式语句从第二行以后开始。
首先调用网表文件,也就是需要将第二步生成的网标文件进行调用,用.inc语句,例如:.inc ‘/projuct/spl3501/osc/netfile/osc_0812.txt’然后开始加激励。
一般顺序是先定义电源和地,然后再定义输入信号,例如:Vvcc vcc 0 pwl 0u 0v 10u 5v 给电源vcc加一个线性增大的电压Vgnd gnd 0 0 定义地电位是0Ven en 0 pwl 0u 0 2u 0 2.01u 5 开始定义其它输入信号确定仿真显示等的设置,大多数功能设置都会在.option中进行设置,比如:.option node list post 表示打出所有节点的电压,如果你不需要打出所有的节点信息,而只要求能够打出你指定的节点电压电流等,那么可以在option后面加入“probe”即可,但这样的话就需要在接下来使用.probe来指定你要打出的电压电流信息。
1.TITLE 语句.TITLE语句在每次随后的打印,绘制,探测或图形语句中重设打印的标题。
在下面显示的第二个表格中,string是输入文件的第一行。
输入文件的第一行总是清晰的标题。
如果一个Star-Hspice语句在一个文件中作为第一行出现,它会被解释为标题并不会被执行。
标题会在仿真的输出列表文件的每个标题部分逐字地打印出来。
一个.ALTER语句并不支持.TITLE用法。
为了对一个.ALTER语句改变标题,可以把标题内容置于.ALTER语句内。
语法.TITLE <string of up to 72 characters>或<string of up to 72 characters>2.END语句Star-Hspice输入网表文件必须有一个.END语句,作为最后地语句。
END 前面的节点是语句所需要的部分。
任何紧跟.END语句以后的文本被当作一个说明,并不影响仿真。
一个包含不止一个Star-Hspice在运行的Star-Hspice输入文件必须在每个Star-Hspice的运行中有一个.END语句。
任何仿真的数目都可以串接到一个单个的文件。
语法.END <comment>例子MOS OUTPUT.OPTIONS NODE NOPAGEVDS 3 0VGS 2 0M1 1 2 0 0 MOD1 L="4U" W="6U" AD="10P" AS="10P".MODEL MOD1 NMOS VTO="-2" NSUB="1".0E15 TOX="1000" UO="550" VIDS 3 1.DC VDS 0 10 0.5 VGS 0 5 1.PRINT DC I(M1) V(2).END MOS OUTPUTMOS CAPS.OPTIONS SCALE="1U" SCALM="1U" WL ACCT.OP.TRAN .1 6V1 1 0 PWL 0 -1.5V 6 4.5VV2 2 0 1.5VOLTSMODN1 2 1 0 0 M 10 3.MODEL M NMOS VTO="1" NSUB="1E15" TOX="1000" UO="800" LEVE L="1"+ CAPOP="2".PLOT TRAN V(1) (0,5) LX18(M1) LX19(M1) LX20(M1) (0,6E-13).END MOS CAPS3.GLOBAL语句当一个网表文件包含子电路的时候,.GLOBAL语句被使用。