hspice的使用_中文手册

更新时间:2023-06-05 15:59:01 阅读量: 实用文档 文档下载

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

第一章Star-Hspice介绍

Star-Hspice优化仿真电路仿真器试Anvant!公司的工业级的电路分析软件,用以电子电路的稳态、瞬态及频域的仿真和分析。该软件可以精确的仿真、分析、优化从直流到高于100GHz频率的微波的电路。

Star-Hspice是理想的电路单元设计和模型处理的工具,也是信号完整性和传输线分析的选择工具。

本章包括下列内容: ◆ Star-Hspice应用 ◆ Star-Hspice 特点

Star-Hspice应用

Star-Hspice有着无与伦比的优势用于快速精确的电路和行为仿真。它使电路级性能分析变得容易,并且生成可利用的Monte Carlo、最坏情况、参数扫描(sweep),数据表扫描分析,而且还使用了最可靠的自动收敛特性。Star-Hspice是组成全套Avant!工具的基础,并且为那些需要精确的逻辑校验和电路模型库的实际晶体管特性服务。

被Star-Hspice仿真的电路的大小局限于计算机所使用的虚拟内存。Star-Hspice软件对接口可用于各式各样设计框架的各种计算机平台作了优化。

Star-Hspice的特征

图1-1:Star-Hspice Design Feature

Star-Hspice 与绝大多数SPICE的变种相兼容,并有如下附加的特征: ◆ 优秀的收敛性

◆ 精确的模型,包括许多加工模型 ◆ 层次节点命名参考

◆ 对模型和电路单元的最优化,在AC,DC和瞬态仿真中,带有递增和同步的多参数

优化。

◆ 带解释的Monte Carlo和极坏设计支持

◆ 可参数化单元的输入输出及行为算术描述(algebraics) ◆ 有对高级逻辑仿真器校验库模型的单元特征化工具

◆ 对PCB板,多芯片,包装,IC技术的几何损耗耦合传输线 ◆ 离散部件,针脚,包装和销售商IC库

◆ 来自于多重仿真的AvanWaves 交互式波形图和分析

图1-2:Star-Hspice电路分析类型

图1-3:Star-Hspice 模型技术

集成电路级和系统级的仿真需要组织结构的计划和晶体管模型与子电路(Subcircuit)间的交互作用。工作于小型电路的方法或许有太多的局限性,当它被应用于高级仿真。 你可以构建仿真电路和模型去使用如下的Star-Hspice特征。

◆ 清楚的包含文件——.INC语句。

◆ 清楚的包含文件——.OPTION SEARCH=’lib_directory’ ◆ 对器件和模型的算术和参数——.PARAM语句 ◆ 参数库文件——.LIB语句

◆ 自动的模型选择器——LMIN,LMAX,WMIN,WMAX模型参数 ◆ 参数扫描——SWEEP 分析语句

◆ 统计分析——SWEEP MONTE 分析语句

第二章开始

此章的例子向你显示如何运行Star-Hspice去执行一些简单的分析。 此章包括如下例子:

◆ 一个RC网络的AC分析 ◆ 一个RC网络的瞬态分析

◆ 一个反向器(inverter)的瞬态分析

一个RC网络的AC分析

图2-1:如图所示为一个有DC和AC源的简单的RC网络。电路包含两个电阻,R1和R2,电容C1和电源V1。节点1接在电源正端和R1之间。节点2处R1、R2和C1 连在一起。Star-Hspice 接地端总是节点0。

图2-1:RC网路电路

此RC网络电路的Star-Hspice网表是: A SIMPLE AC RUN

.OPTIONS LIST NODE POST .OP

.AC DEC 10 1K 1MEG

.PRINT AC V(1) V(2) I(R2) I(C1) V1 1 0 10 AC 1 R1 1 2 1K R2 2 0 1K C1 2 0 .001U .END

接下去的程序是执行此RC网络电路的AC分析 1.输入以上网表到一个名叫quickAC.sp的文件 2.敲入如下代码运行Star-Hspice分析:

hspice quickAC.sp > quickAC.lis 当运行完成Star-Hspice显示:

>info: ***** hspice job concluded

接下来的一行显示使用的实时时间,使用者时间和分析所需的系统时间 如下的新文件出现在你的运行目录下: quickAC.ac0 quickAC.ic quickAC.lis

quickAC.st0.

3.使用一个编辑器去看.lst和.st0文件以检查仿真的结果和状态。

4.运行AvantWaves并且打开.sp文件。从结果浏览器窗口中选择quickAC.ac0文件以观察

波形。显示节点2的电压,在x轴使用一个对数刻度。

图2-2:显示了2节点输入频率自1KHz至1MHz变化时扫描响应所产生的波形 RC网络的直流分析

图2-2 RC网络节点2的频率响应

quickAC.lis显示了输入网表,详细组成和拓扑图,工作点(operating point)信息和当输入至1KHz至1MHz变动时的请求表。quickAC.ic和quickAC.st0分别包含一些直流工作点信息和Star-Hspice的运行状态信息。工作点情况可以用作后面的使用.LOAD语句的仿真运行。

一个RC网络的瞬态分析

作为第二个例子,使用图2-1所示的同一个RC网络运行瞬态分析,但是增加了一个脉冲源到DC和AC源。

1.输入如下相当的网表到一个名叫quickTRAN.sp的文件中。 A SIMPLE TRANSIENT RUN .OPTIONS LIST NODE POST .OP

.TRAN 10N 2U

.PRINT TRAN V(1) V(2) I(R2) I(C1)

V1 1 0 10 AC 1 PULSE 0 5 10N 20N 20N 500N 2U R1 1 2 1K R2 2 0 1K C1 2 0 .001U .END

注释:V1源规范增加了一个脉冲源。脉冲源的语法和其他类型的电源在第五章,“使用电源和激励”中有说明。

2.输入如下字符去运行Star-Hspice。

hspice quickTRAN.sp > quickTRAN.lis

3.使用编辑器去看.lis文件和st0文件以检查仿真的结果和状态。

4.运行AvantWaves并且打开.sp文件。从结果浏览器窗口中选择quickTRAN.tr0文件以观察波形。在x轴显示节点1和2的电压。 波形如图2-3所示:ob.

图2-3:RC网络节点1和节点2电压

反相器的瞬态分析

作为最后一个例子,如图2-4所示分析简单的MOS反相器的行为:

图2-4:MOS反相器电路

1. 输入如下网表数据到一个名叫quickINV.sp的文件中。 Inverter Circuit

.OPTIONS LIST NODE POST .TRAN 200P 20N

.PRINT TRAN V(IN) V(OUT)

M1 OUT IN VCC VCC PCH L=1U W=20U M2 OUT IN 0 0 NCH L=1U W=20U VCC VCC 0 5

VIN IN 0 0 PULSE .2 4.8 2N 1N 1N 5N 20N CLOAD OUT 0 .75P

.MODEL PCH PMOS LEVEL=1 .MODEL NCH NMOS LEVEL=1 .END

2.输入如下命令运行StarHspice。

hspice quickINV.sp > quickINV.lis

使用AvanWaves 去检查反相器IN和OUT节点的电压波形。波形如图2-5所示:

2-5:-反相器节点

1和2的电压波形

第三章 特定的仿真输入和控制

此章说明Star-Hspice仿真中的结构和数据流,以及输入需求,输入数据的方法,和用于输入输入Star-Hspice语句。此章包含如下内容:

◆ 检查仿真结构 ◆ 理解数据流

◆ 使用Star-Hspice命令 ◆ 使用标准输入文件 ◆ 使用输入控制语句 ◆ 设置控制选项 ◆ 理解库的类型 ◆ 理解库的输入

◆ 比较控制选项缺省值

检查仿真结构

图2-1:图示为仿真试验的程序结构

图3-1:仿真编程结构

复杂设计的分析和验证通常组织一系列的实验来完成。这些试验是简单的扫描和复杂的Monte Carlo,最优化及设置和建立和保持异常情况(setup and hold violation)分析,分析DC、AC、以及瞬态情况。

对每个仿真实验,必须规定容许范围(tolerances)和极限情况以达到希望的目的,例如,最优化或中心设计(optimizing or centering a design)。

每个实验的一般考虑的因素是过程,电压,温度和寄生参数(parasitize)。 两个词用来说明使用Star-Hspice的实验方法:

◆ 单点(Single point)-一个单点实验就是能够产生一个单一结果或一组单一输出数据的简单的程序

◆ 多点(Multipoint)-一组分析(单点)扫描为每个值在一个外部环(多点)扫描处被执行。

以下是多点实验的例子:

◆ 过程变化-Monte Carlo 或最坏情况模型参数变化

◆ 元件变化(element variation)-Monte Carlo或元件的参数扫描 ◆ 电压变化-VCC,VDD和衬底电源变化 ◆ 温度变化-设计温度的灵敏度

◆ 时间(timing)分析-基本时间,抖动(jitter)和信号完整性分析

◆ 参数最优化-平衡复杂的约束关系,如对于仿真电路速度对功率或频率对转换率(slew rate)对补偿间的关系。

理解数据流

Star-Hspice从许多不同的源接收输入和仿真控制信息。Star-Hspice能够以诸多便利的表格输出结构供观察和分析。全部的Star-Hspice数据流如图3-2所示。

为了 开始设计入口和仿真过程,创建一个输入网表文件。绝大多数原理图编辑器和网表编辑器支持SPICE和Star-Hspice层次结构。在Star-Hspice运行期间执行输入文件里规定的分析。Star-Hspice将存储仿真结果,如果在输出列表文件,或如果规定了.OPTIONS POST的一个图形数据文件有请求。如果规定了POST,将存储完整的电路解决方案(在稳态,时域(time)或频域)。任何节点电压或支流的结果能被观察到,或通过高清晰度的图形输出终端或激光打印机绘出。Star-Hspice有一全套打印和绘图变量以供观察分析结果。

Star-Hspice程序有一个文本命令行接口。例如,在UNIX shell提示符下,或在DOS命令行下输入hspice命令,文件名,和希望的选项程序就执行,也可以在窗口界面环境下点击几下图标来完成。你能让Star-Hspice程序仿真输出出现在一个输出列表文件中或一个图像数据文件中。Star-Hspice创建标准的输出文件去说明初始的情况(.ic为扩展名)和输出状态(.st0为扩展名)。另外,Star-Hspice创建不同的输出文件以响应使用者自己定义的输入选项——例如,一个<design>.tr0文件以响应一个.TRAN瞬态分析状态。

AvanWaves 输出显示和分析程序有一个图形用户接口。在不同的AvanWaves窗口用鼠标选择命令和选项去执行AvanWaves操作。参考AvanWaves使用者指导,会有使用AvanWaves的介绍。

图3-2:Star-Hspice数据流一览

仿真过程纵览

图3-3是Star-Hspice仿真过程的图表。以下一节内容总结一个典型仿真过程。

图3-3:Star-Hspice仿真过程

实施这些步骤去执行一个Star-Hspice仿真。这些步骤和相关的文件再本章有更详尽的说明。 1.启动

用如下一个UNIX命令启动Star-Hspice hspice demo.sp > demo.out &

Star-Hspice外壳(shell)和一个输入网表文件demo.sp及一个输出列表文件demo.out一起被启动。命令行后面的&在后台启动Star-Hspice,以便屏幕和键盘仍然能够使用,尽管Star-Hspice在运行。

2.脚本(script)执行

Star-Hspice从合适的结构(机器类型)目录(appropriate architecture (machine type)

directory)启动Star-Hspice执行。UNIX脚本于是启动了一个Star-Hspice仿真。此程序是用来建立一个供Star-Hspice可执行的环境。脚本提示一些信息,如你所运行的平台和你所想要运行的Star-Hspice的版本。(当Star-Hspice一旦被安装可用的版本也随之确定)。

3.Star-Hspice支持FILElm执照管理系统。有了FILElm执照后,Star-Hspice为本地的license.dat文件读取环境变量LM_LICENSE_FILE。

如果授权失败,任务在此点中止,并在输出列表文件中打印出一个错误信息。 4. 仿真配置

Star-Hspice读取相应的meta.cfg文件。配置文件的搜索顺序是使用者的登陆目录然后再是安装目录。 5.设计输出

Star-Hspice打开输入网表文件。如果输入网表文件不存在,一个“no input data”的错误将出现在输出列表文件中。

三个草稿文件在/tmp目录里被打开。你可以靠重新设置Star-Hspice命令脚本里的TMPDIR环境变量改变此目录。

Star-Hspice打开输出列表文件。如果你没有当前目录的所有权,Star-Hspice将以一个文件打开错误中止操作。

一个简单的输入网表文件如下: Inverter Circuit

.OPTIONS LIST NODE POST

.TRAN 200P 20N SWEEP TEMP -55 75 10 .PRINT TRAN V(IN) V(OUT)

M1 VCC IN OUT VCC PCH L=1U W=20U M2 OUT IN 0 0 NCH L=1U W=20U VCC VCC 0 5

VIN IN 0 0 PULSE .2 4.8 2N 1N 1N 5N 20N CLOAD OUT 0 .75P .MODEL PCH PMOS .MODEL NCH NMOS .ALTER

CLOAD OUT 0 1.5P .END 6. 库输入

Star-Hspice读取.INCLUDE和.LIB语句里所规定的任何文件。 7.工作点初始化。

Star-Hspice读取.IC和.NODESET.语句中规定的任何初始条件,找到一个工作点(能被一个.SAVE语句所保存),并且写入任何你所请求的工作点的信息。 8.多点分析

Star-Hspice执行分析语句里规定的实验。在以上例子中,.TRAN语句让Star-Hspice去执行一个温度从-50°C到75°C,每 10°C变化一步的,20nS的多点瞬态分析。 9.单点分析

Star-Hspice执行一个或两个规定数量的扫描并产生一套输出文件。 10.最坏情况.ALTER

仿真条件可能变化或者规定的单点或多点分析可能被重复。在以上的例子中,CLOAD从0.75pF到1.5pF变化,并且多点瞬态分析被重复。 11.正常终止

当完成了仿真以后,Star-Hspice关闭所有它打开的文件并释放所有的执照代号(license tokens)。

使用Star-Hspice命令

你可以在命令提示符模式或非命令提示符行模式启动Star-Hspice。

提示符脚本模式

使用如下的程序在提示符模式下启动Star-Hspice。 1.cd(进入)你的Star-Hspice运行目录并敲入 hspice

2. 如下的提示符出现:

Enter input file name:

3.输入你的Star-Hspice输入网表文件的名字。如果你输入的文件不包含一个文件扩展名,那么Star-Hspice视.sp为扩展名。如果你输入的文件名不存在如下的信息将出现且Star-Hspice启动脚本终止:

**error** Cannot open input file <filename> 4.如下的提示符出现:

**error** Cannot open input file <filename> [<filename>.lis]

5.输入你要给的Star-Hspice的输出列表文件的路径和名字。缺省值是带有.lis为扩展名的输入文件。

6.一个有编号的Star-Hspice版本列表显示出来,接着是一个规定你说要运行的版本的提示符。在列表中输入你想要运行的Star-Hspice版本的号码

7.因为Star-Hspice版在H93A.02版本之前发行,如下的提示符出现: How much memory is needed for this run?

输入你想要分配给Star-Hspice运行所需要的8位字内存的数目。 8.如下的提示符出现:

The default is to use the standard system priority. Run Star-Hspice at a lower priority? (y,n) [n]

9.使用缺省的优先级,输入n,或直接敲回车。要规定优先级,输入y。如下的提示符出现:

HINT: The larger the number the lower the priority.

Enter the priority scheduling factor: (5 10 15 20) [15] 缺省值是15。从列表的因子中输入你的选择,Star-Hspice开始运行

非提示符命令行模式

当运行在非提示符命令行模式,Star-Hspice接受如下参数:

hspice <-i> <path/>input_file <-v HSPICE_version> + <-n number> <-a arch> <-o path>/output_file> 此处:

input_file 规定输入的网表文件名,一个带有<.ext>的扩展名是它可选的。如果输入

文件在命令行不提供输入文件名,Star-Hspice搜索一个名叫<input_file>.sp的文件。-i能放在输入文件之前,输入文件用来作为输出文件的根文件名。Star-Hspice也查看是否有一个初始条件文件(.ic)和输入的文件根名字在一起。

以下是一个输入文件名的例子: /usr/sim/work/rb_design.sp

此处

/usr/sim/work/ 是设计的目录路径, rb_design 是设计的根名 .sp是文件名的后缀

-v 规定使用的Star-Hspice版本。

-n 规定序号,此序号启动编了号的输出数据文件修订版本(output_file.tr#,

output_file.ac#, output_file.sw#,#是修订版本的序号)。

-a<arch> 是一个删除缺省结构的参数。

表3-1:Star-Hspice命令选项

你不需要在在输出文件规范里包含一个扩展文件名。Star-Hspice将其命名为

output_file.lis。在输出文件名中,Star-Hspice把所有到点号的字符都当文件名,把点号以后的所有的字符当作扩展名。

如果你输入一个文件名不带参数-o,输入的根文件名当作输出的根文件名使用。如果你-a作为参数在输入的文件名中包含扩展名.lis,Star-Hspice并不追加另外的扩展名.lis到输出文件的根目录中。

如果没有规定输出文件,输出直接送到终端。使用如下的参数重定向输出到一个文件而不是到终端:

hspice input_file <-v HSPICE_version> <-n number> <-a arch> > output_file 例如,下列请求命令

hspice demo.sp -v /usr/meta/96 -n 7 -a sun4 > demo.out 此处:

demo.sp 是输入列表文件;输入文件名的.sp的扩展名是可选的。 -v/usr/neta/96 规定使用的Star-Hspice的版本。

-n 7 在7处启动输出数据文件修订编号:demo.tr7,deno.ac7,和demo.sw7. -a sun4 覆盖缺省的平台

> 重定向程序输出列表到demo.out中。

简单Star-Hspice命令

一些附加的Star-Hspice命令的例子解释如下: ◆hspice -i demo.sp

“demo”是根文件名。输出文件被命名为demo.lis,demo.tr0,demo.st0和demo.ic。

◆hspice -i demo.sp -o demo

“demo”是输出文件根名(被-o选项所指定)。输出文件被命名为demo.lis,demo.tr0,demo.st0和demo.ic。 ◆ hspice -i rbdir/demo.sp

“demo”是根文件名,输出文件名files demo.lis, demo.tr0, and demo.st0被写入Star-Hspice命令所执行的目录,输出文件demo.ic写入与输入源相同的目录,也就是 rbdir。 ◆ hspice -i a.b.sp

“a.b”是文件的根名。输出文件是./a.b.lis, ./a.b.tr0, ./a.b.st0, 和 ./a.b.ic. ◆ hspice -i a.b -o d.e

“a.b”是输入文件的根名。“d.e”是除.ic文件以外的输出文件的根名。.ic被命名为输入文件根名“a.b”。输出文件是d.e.lis, d.e.tr0, d.e.st0,和a.b.ic。 ◆hspice -i a.b.sp -o outdir/d.e

“a.b”是.ic文件的根名。.ic文件被写入一个叫a.b.ic的文件中。“d.e”是其他输出文件的根名。输出文件是outdir/d.e.lis, outdir,/ d.e.tr0,和 outdir/d.e.st0. ◆ hspice -i indir/a.b.sp -o outdir/d.e.lis

“a.b” I是 .ic文件的根名, .ic文件 被写入一个叫indir/a.b.ic.的文件中。“d.e”是输出文件的根名。

使用标准输入文件

此节说明如何使用标准输入文件。

设计和文件命名惯例

设计名称识别电子线路和任何相关的文件,包括原理图和网表文件,仿真输入和输出文件设计配置文件和核心文件。Star-Hspice和AvanWaves都从它们的输入文件中提取设计名并执行基于这些名字的后续(subsequent)操作行为。例如,AvanWaves 读取<design>.cfg配置文件以恢复以前AbanWaves运行的节点设置。

Star-Hspice和AvanWaves都读取和写入与当前电路设计相关的文件。与设计相关的所有文件大都位于一个目录,尽管输出文件在UNIX平台是标准输出且能被重定向。

Star-Hspice输入文件类型和它们的标准名称列于表2-2。这些文件将在下章中进行说明。

表3-2:Star-Hspice输入文件

配置文件(meta.cfg)

此文件设置打印机,绘图仪,和终端。文件包括一行 default_include = file name,用于设置缺省的.ini文件的路径(例如hspice.ini)。

default_include文件对大小写敏感(PC和Windows版本的Star_Hspice除外)。

初始化文件(hspice.ini)

使用者的缺省值在hspice.ini初始化文件里被规定。如果hspice.ini文件存在于运行目录下,Star-Hspice将在Star-Hspice的输出文件的顶部包含其内容。

其他包含初始化文件的方法将 “DEFAULT_INCLUDE=filename>”定义在系统文件或一个meta.cfg文件中。

通常使用一个初始化文件去设置选项(有.OPTIONS语句)和用以库的访问,并且在Avant!安装程序下完成。

DC 工作点初始条件文件(<design>.ic)

<design>.ic 文件是一个可选的输入文件,它为特别的节点包含初始的DC条件,你可以使用它加上一个.NODESET或.IC语句去初始化DC条件。

.SAVE语句创建一个<design>.ic的文件。接下去的.LOAD语句在<design>.ic文件里初始化电路到到DC工作点的值。

输入网表文件(<desugb>.sp)

Star-Hspice靠输入网表文件工作并存储输出结果到输出列表文件或者图形数据文件中。名叫<design>.sp的输入文件包含如下内容:

◆设计网表(有子电路subcircuits和macros,电源等等) ◆语句命名将要使用的库(可选) ◆将要运行的规范的分析(可选) ◆希望的输出的规范(可选)

输入网表和库输入文件由原理图编辑器或用一个文本编辑器产生。

输入网表文件里面的语句可以是任意顺序,除了把第一行当作标题行,并且最后的.ALTER子模块(submodule)必须出现在.END之前以外。

注意:如果在输出网表文件的最后没有.END语句,将会出现有错误的消息。

输入行格式

◆输入的网表文件不能是打包或压缩格式。

◆Star-Hspice输入阅读器能接受输入代号,如语句名,节点名或参数的名或值。两个代码之间的分隔符合法的字符串被认为是一个代号。参看以下的分隔符。 ◆ 输入的文件名的长度,语句的长度和等式的长度限制在256个字符之内。

◆大小写的情况忽略不计,除非它在应用的文件名中。

◆所有的语句,包括引用的字符串如路径和算术运算,用一个“\”表示继续,或用“\\”在行的末尾表示继续。“\”保留空白空间,而“\\”紧跟着连续的行之间的任何空白空间。“\\”保证路径名连接在一起而没有间隔。输入行可以长到1024个字符,因此重叠或继续一行一般可改善它的可读性。

◆说明可以加到一个文件的任何地方。以星号开始的内容是说明。输入一个$可以将一个说明与输入文本放同在一行。在输出文本之后当作一个或多个空白处理。

◆当在输入网表文件中碰到一个特别的控制字符,将显示错误。由于大多数系统不能显 示控制字符,错误的信息不很明确,因为错误字符不能在错误信息中显示出来。

将.OPTIONS BADCHAR 语句定位到这些错误的地方。BADCHAR的缺省值是“off”。

名字

◆名字必须以字符开始,但能包含数值和如下字符: ! # $ % * + - / < > [ ] _

◆名字是输入的代号并必需被处理并遵从如下代号分隔符。参看以下的“分隔 符”(Delimiters).

◆名字可以长至1024个字符。 ◆名字不区分大小写。

分隔符

◆在一个输入文件中一个输入的代号是任何被Star-Hspice所识别的项目。输入代号的分隔符号是:tab, blank, comma, equal sign (=), 和 parentheses “( )”。 ◆单或多引号区分表达式和文件名。

◆元件的属性由冒号区分(如(“M1:beta”))

◆结点表明层次。例如,“X1.A1.V” 是 V 节点在电路X1处的子电路。

节点

◆节点标识符能长至1024个字符,包括节点和扩展名。 ◆节点号前面的0被忽略。

◆节点号后面的字符也被忽略。例如,节点1A与节点1相同。 ◆节点名能以如下的任何字符开始:# _ ! %

◆节点若作了.GLOBAL语句,那么在所有的子电路中可以作为全局节点使用。 ◆节点0,GND,GND!和GROUND都指全局的Star-Hspice接地端。

名字举例

◆名字的基础样式都以基础关键字母开始(例如,M是MOSFET的基础,D是diode的基础,R是resistor的基础等等),子电路例外。

◆子电路的命名样式都以“X”开始。子电路有时也被称为宏或模块(macros or modules)

◆名字的实例限制在1024个字符之内。

◆.OPTIONS LENNAM 控制Star-Hspice中文件名长度的打印输出(缺省值为8)。

层次结构

◆路径层次以结点表示出来。 ◆路径可以长至1024个字符。

◆路径号压缩层次,为了后续的处理和列出文件。

◆整个参考的路径号可以在列表和<design>.pa0文件中找到。

◆.OPTIONS PATHNUM控制是否整个路径名或路径编号在列表文件中显示出来。 数字

◆数字以整数或实数输入

◆数字可以用指数格式或工程上的关键字符格式,但两种格式不能都用(1e-12 或 1p, 但不是1e-6u)。

◆指数被D或E指定。

◆指数大小被.OPTIONS EXPMAX.所限制。

◆结尾的字母顺序的字符被当作单位说明解释。 ◆单位说明不被检查。

◆.OPTIONS INGOLD 控制数字的格式的打印输出。 ◆.OPTIONS NUMDGT=x 控制列表打印输出的准确度。

◆.OPTIONS MEASDGT=x控制测量文件的打印输出准确度。

◆.OPTIONS VFLOOR=x 规定所能打印输出的最小电压值。小于此电压值被打印为0。

参数和表达式

◆参数命名遵从Star-Hspice命名语法规则。

◆参数层次覆盖或缺省被.OPTIONS PARHIER=global | local.所定义。

◆如果多重定义存在那么要使用最后的参数定义或.OPTIONS语句。这尤其正确,当最后的定义或.OPTIONS语句是后来的输入,而不是参数或选项的参考时。当重新定义以后不会出现警告

◆如果一个参数使用另外的参数定义,那么第一个参数必须在第二个参数定义以前先定义。

◆在你的设计中参数名选择要小心,以免与参数库(parameterized libraries)冲突。 ◆表达式被单或双引号所引,且被限制在256个字符之内。

◆为改善可读性一行只要在行的结尾使用双斜杠(\\),就可以接着另外一行。 ◆函数嵌套限制在三级。

◆使用者自己定义的函数不可超过两个参数。

◆使用PAR(表达式或参数)函数去计算输出语句里的表达式。

输入网表文件结构

一个Star-Hspice输入网表文件包含一个一个主要的程序和一个或多个可选的子模块。使用子模块(在.ALTER语句之前)去自动地改变输入网表文件,并返回带有不同选项,网表,分析语句和测试向量地仿真。

你可以使用几个高级的调用语句去重新构建网表文件模块。这里有.INCLUDE, .LIB和 .DEL LIB 语句。这些语句可以从库文件或其它文件调用网表、模型参数、测试向量、分析和选项宏到一个文件。输入网表文件也可以为元件的电源和模型调用一个包含参数化的外部的数据文件。

表3-3:输入网表文件语句和元件

图3-4:输入网表文件结构

.TITLE 语句

.TITLE语句在每次随后的打印,绘制,探测或图形语句中重设打印的标题。

在下面显示的第二个表格中,string是输入文件的第一行。输入文件的第一行总是清晰的标题。如果一个Star-Hspice语句在一个文件中作为第一行出现,它会被解释为标题并不会被执行。标题会在仿真的输出列表文件的每个标题部分逐字地打印出来。

一个.ALTER语句并不支持.TITLE用法。为了对一个.ALTER语句改变标题,可以把标题内容置于.ALTER语句内。 语法

.TITLE <string of up to 72 characters> 或

<string of up to 72 characters> .END语句

Star-Hspice输入网表文件必须有一个.END语句,作为最后地语句。END前面的节点是语句所需要的部分。

任何紧跟.END语句以后的文本被当作一个说明,并不影响仿真。

一个包含不止一个Star-Hspice在运行的Star-Hspice输入文件必须在每个Star-Hspice的运行中有一个.END语句。任何仿真的数目都可以串接到一个单个的文件。 语法

.END <comment>

例子

MOS OUTPUT

.OPTIONS NODE NOPAGE VDS 3 0 VGS 2 0

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

.OPTIONS 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

.MODEL M NMOS 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语句被使用。语句赋给子电路节点一个普通的节点名。连接所有的子电路的电源经常靠使用.GLOBAL语句被赋值。例如,.GLOBAL VCC靠使用内部的名叫VCC的节点与所有的子电路相连接。一般地,在一个子电路中结点名常被赋以串接到结点名的电路号。当使用到.GLOBAL语句,节点名不与电路号串连,仅仅被赋给一个全局名。这容许在子电路或宏调用中排除功率节点名。

语法

.GLOBAL node1 node2 node3 ... 此处:

nodel… 规定全局节点,例如电源和时钟名,覆盖本地的子电路定义。

元件语句

元件语句说明器件和电源的网表。元件被一个另一个节点连接,这些节点既可以是号码,也可以名字。元件语句规定

◆ 器件的类型

◆ 器件连接到其上的节点

◆ 说明器件工作的电气特征的参数值。

元件语句也可以参考定义元件电气参数的模型语句。为Star-Hspice不同类型的元件所作的元件语句在本章本类型元件中有说明。

语法

elname <node1 node2 ... nodeN> <mname> + <pname1=val1> <pname2=val2> <M=val> or

elname <node1 node2 ... nodeN> <mname> + <val1 val2 ... valn> 此处:

elname 元件名,不能超过15个字符。每种类型的元件必须以一个规定的字母

开始。

C 电容 D 二极管

E,F,G,H 独立电流或电压控制原 I 电流源

J JFET或MESFET K 互感器 L 电感 M MOSFET Q BJT R 电阻 T,U,W 传输线 V 电压源 X 子电路调用

Node1… 结点名是元件连接到其上的节点标识符。结点名必须以一个字母开始,并且紧

跟着的是最长至15个包含数字和字母的混合的字符。仅仅节点名的头16个字符是重要的。这后面的字符将被忽略掉。如下的字符不允许用作节点名:=(),.[]

Mname 所有的元件都需要模型参考名,无源器件除外。 Pnamel… 元件的参数名,用于识别紧跟此名之后的参数值。

Vall… 赋给参数Pnamel或相应的模型节点的值。这个值可以是一个数字或一个算术表

达式。

例子

Q1234567 4000 5000 6000 SUBSTRATE BJTMODEL AREA=1.0

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

Top