第一章第一章第一章第一章 概概概概 论论论论
§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
图 1.2.1HSPICE 的电路分析类型
图 1.2.2 HSPICE 的内部建模技术
集成电路设计中的分析和验证是一种典型的围绕一系列结构的试验和数据
管理。在电路性能分析中,一般都要在不同应用条件下,根据需要加入各种容差
和限制后进行直流分析(.DC)、交流分析(.AC)和瞬态分析(.TRAN)。HSPICE
模拟时的程序结构如图 1.2.3 所示
2
图 1.2.3 HSPICE 模拟时的程序结构
HSPICE 能够通过不同的源文件去访问各种输入和模拟控制信息,并绘制和
输出有关节点的分析曲线和结果。图 1.2.4 表示了 HSPICE 模拟过程中各数据的
状态。
图 1.2.4 HSPICE 模拟过程各数据状态
3
§1.3 HSPICE 的输入与输出文件
HSPICE 根据输入网表(netlist)文件运算并产生仿真结果,仿真结果存储
在输出列表文件或图形数据文件之中。
HSPICE 读或写的文件都与当前的电路设计有关,而且都采用电路设计名作
为前缀。一般情况下,与一个设计有关的所有文件都存放在同一目录下面。
一.文件名的后缀
1.HSPICE 输入文件
meta.cfg
配制文件
初始化文件
hspice.ini
.ic
直流工作点初始化文件
.sp
输入网表文件
库输入文件
模拟转移数据文件
.d2a
2.HSPICE 输出文件
.lis 或由用户自己定义
输出列表
.tr#+
瞬态分析结果
.mt#
瞬态分析测量结果
.sw#+
直流分析结果
.ms#
直流分析测量结果
.ac#+
交流分析结果
.ma#
交流分析测量结果
.gr#++
硬拷贝图形数据
.a2d
数字输出
.ft#++
FFT 分析图形数据
.pa#
子电路交叉列表
输出状态
.st#
工作点节点电压(初始条件) .ic
# :代表扫描分析序号或者硬拷贝文件序号,一般从 0 开始。
+:表示在用.POST 语句产生图形数据后该文件才被确立。
++:表示该文件需要一个.GRAPH 语句或有一个针对 meta.cfg 文件中存在的
文件的地址计数器。该文件在 HSPICE 的 PC 版中不产生。
+++:表示只有当应用了.FFT 语句后该文件才被确立。
二. 输入网表文件
4
输入网表文件和库输入文件能够由一个线路网表转换器或用一个文本编
辑器产生。
1.写输入网表文件的规则
输入网表文件的第一个语句必须是标题行,最后一个语句必须是.END 语
句,它们之间的语句次序是随意的,除非是续行(行首有“+”的行)必须
接在要接下去的行后面,最后值得注意的是.ALTER 子模块必须紧跟文件的
结尾并出现在.END 语句前。注释行可加在文件中的任何地方。
2. 输入文件的编辑
(a)HSPICE 采用自由格式输入。语句中的域由一个或多个空格,一个
Tab,一个逗号, 一个等号或一个左/右圆括号分开。
(b)除 UNIX 系统中的文件名外,不予区分大写或小写字母。
(c)每行语句长度限于 80 个字符以下。
(d)一个语句如在一行写不下,可以用续号继续下去。续行以“+”作为
第一个非数值、非空格字符。
(e)输入网表文件不能被“打包”,也不能被压缩。
(f)输入网表文件中不要采用特殊的控制字符。
三. 输出列表文件
电路模拟运行的结果和输入网表都被放入输出列表文件。输出列表文件被
自动地取与指定的输入列表文件相同的前缀,不同的仅是带有“.lis”后缀。
如输入列表文件为 netlist.sp,则输出列表文件为 netlist.lis。
输出列表文件包含了由输入列表文件中的.PLOT、.PRINT 以及分析语句指定
的 模 拟 结 果 。 例 如 输 入 列 表 文 件 包 含 了 多 于 一 次 的 模 拟 运 行 ( 通 过 采
用.ALTER、.INCLUDE、.DATA 等语句),输出列表文件中也包含了每一次模拟
运行的结果。
四. 数值比例因子
HSPICE 中的数值可以是整形数、浮点数。一个整形数或浮点数后跟随一
个整形指数(如 1e-14,2.65e3,但不能是 1e-3pf)或者一个整形数或浮点数后跟
随一个以下列出的数值比例因子:
MI=25.4E-6 FT=.305 DB=20lg10 F=1e-15
P=1e-12 N=1e-9 U=1e-6 M=1e-3 T=1e12
G=1e9 MEG=X=1e6 K=1e3
5
图 1.3.1 显示了 HSPICE 的模拟流程。
图 1.3.1 HSPICE 模拟流程
第二章第二章第二章第二章 电路的描述语句
电路的描述语句
电路的描述语句
电路的描述语句
本章介绍 HSPICE 的一些主要描述电路的语句。用这些语句对电路模拟的标
题,电路的连接方式即拓扑信息,构成电路的元件、器件、电源等的属性、参数、
模型、所加的注释、电路模拟结束等进行描述。
§2.1 输入描述语句和规定
在输入的电路描述语句中输入的第一条语句是标题语句,最后一条语句必须
是结束语句。
一. 标题语句(.TITLE 语句)
6
一般形式:.TITLE
或
例:POWER AMPLIFIER CIRCUIT TEST
若用户不需要标题,则第一行必须空出,否则第一行的其它 HSPICE 语句被
作为标题行,而不被执行。
二. 结束语句(.END)
一般形式:.END
注意“.”不能少,它是结束语句整体的一部分。若一个 HSPICE 输入文件包含
有几个 HSPICE 的运行,则每一个 HSPICE 运行的最后都要加上.END 语句。
例 MOS OUTPUT
0
3
0
.OPTIONS NODE NOPAGE
VDS
VGS 2
M1 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 OUTPUT
MOS CAPS
.OPTION SCALE=1U SCALM=1U WL ACCT
.OP
.TRAN .1 6
V1 1 0 PWL 0 -1.5V 6 4.5V
V2 2 0 1.5VOLTS
MODN1 2 1 0 0 M 10 3
M2 .MODEL M NOS VTO=1 NSUB=1E15 TOX=1000
+ UO=800 LEVEL=1 CAPOP=2
.PLOT TRAN V(1) (0,5) LX18(M1) LX19(M1)
+ LX20(M1) (0,6E-13)
.END MOS CAPS
三. .GLOBAL 语句
一般形式:.GLOBAL node1 node2 node3…
node1… Global nodes, such as supply and clock names,
override local subcircuit definitions
输入文件若定义了.GLOBAL 语句,则输入文件所有子电路中与.GLOBAL 节点
名相同的节点将都被自动定义成有连接关系。一般线路的电源、地被定义
成.GLOBAL 语句。
四. 注释语句
是用户对程序运算和分析时加以说明的语句。在列出输入程序时会打印出
来,但不参与模拟分析。该语句可放在输入文件标题语句以后的任意位置加以注
7
释。
一般形式:*
或 $
§2.2 元件描述语句
元件语句一般由元件名、元件所连接的电路节点号和元件参数值组成。元件
在输入中以一行表示,该行不能以“.”开始。语句中的第一个字母是关键字,它
确定了该元件的类型。
一 般 形 式 : elname
或 elname
其中:
elname: 元件名,是一个带有一个关键字母的不超过 15 个字符的
字符串。
HSPICE 中表示元件的关键字母的含义:
K-耦合互感
C-电容
L-电感
R-电阻
U-有损耗传输线
T-无损耗传输线
node1... 节点名,用来说明元件所连接的节点,节点名的第一个
字符必须是字母,整个字符串不超过 16 个字符(连第一个
字母在内)。=()′′′′. ′[ ]等符号不能出现在节点名中。
mname: 模型参考名,对除了无源器件外所有元件都是必需的。
pname1... 元件参数名,用来标明一些元件的参数值。
val1... 赋于的参数值或模型节点,这些数值可以是数值,也可以
是代数表达式。
M=val 元件的倍增因子。
一. 电阻
一般形式:RXXX n1 n2 Rval>
+
+
或
RXXX n1 n2 R=val
+
+
或
RXXX n1 n2 R=equation
例: R1 1 2 100k
RC1 12 17 1k TC=0.001, 0 1.2
R4 5 54 RMOD 12k
上述电阻描述语句中,电阻值可以是正值或负值,但不能为零。TC1 和 TC2 是温
度系数,其缺省值是零。
8