菜鸟科技网

Hspice命令有哪些?基本语法怎么用?

下面我将系统地介绍 HSPICE 命令,从基本结构到常用命令,并提供一个完整的示例。

Hspice命令有哪些?基本语法怎么用?-图1
(图片来源网络,侵删)

HSPICE 的基本结构

一个标准的 HSPICE 网表(Netlist)通常包含以下几个部分:

  1. 标题行:网表的第一行,可以是任意文本,用于描述电路。
  2. 电路元件定义:定义电路中的所有元器件(如电阻、电容、晶体管、电压源等)。
  3. 分析命令:定义要进行何种仿真分析(如直流扫描、交流分析、瞬态分析等)。
  4. 输出/绘图命令:指定需要输出的变量和绘图命令。
  5. 结束命令.END,标志着网表的结束。

常用 HSPICE 命令详解

分析命令

这是仿真的核心,告诉 HSPICE 如何运行仿真。

命令 全称 功能 示例
.OP Operating Point 直流工作点分析,计算电路在直流电源下的静态工作点,所有电容开路,电感短路。 .OP
.DC DC Sweep 直流扫描分析,让一个或多个电源的电压或电流在一定范围内变化,观察电路的响应。 .DC VDS 0 5 0.1 VGS 0 5 1
(VDS 从 0V 扫描到 5V,步长 0.1V;在每个 VGS 值下重复,VGS 从 0V 到 5V,步长 1V)
.AC AC Analysis 交流小信号分析,在某个直流工作点附近,分析电路对不同频率正弦信号的响应(通常用于滤波器、放大器等频率特性分析)。 .AC DEC 10 1 1G
(频率按 decade (10倍) 变化,每 decade 取 10 个点,从 1Hz 到 1GHz)
.TRAN Transient 瞬态分析,在一段时间内,分析电路对时域信号(如脉冲、正弦波)的响应。 .TRAN 1ns 1us
(从 0 开始仿真,总时长 1us,计算步长 1ns)
.TF Transfer Function 传输函数分析,计算电路的直流小信号增益、输入阻抗和输出阻抗。 .TF V(5) VIN
(计算节点 5 相对于输入源 VIN 的增益、输入阻抗和输出阻抗)
.SENS Sensitivity 灵敏度分析,计算输出变量对电路元器件参数的直流灵敏度。 .SENS V(OUT)
(计算输出电压 V(OUT) 对所有元器件参数的灵敏度)
.PZ Pole-Zero 极零点分析,计算线性电路的传递函数的极点和零点。 .PZ V(OUT) VIN
(计算从 VIN 到 V(OUT) 的传递函数的极零点)
.NOISE Noise Analysis 噪声分析,计算电路中各个元器件产生的噪声在输出端的总和,以及等效输入噪声。 .NOISE V(OUT) VIN 10
(计算输出噪声,以 VIN 为参考源,频率间隔为 10Hz)

输出与绘图命令

这些命令用于定义仿真结果的输出格式和可视化。

命令 全称 功能 示例
.PRINT Print 打印数据,将指定的变量以文本格式输出到 .lis 文件中。 .PRINT DC V(2) I(VDS)
(在直流分析中,打印节点 2 的电压和 VDS 电流源的电流)
.PLOT Plot 绘图打印,在 .lis 文件中以 ASCII 字符形式绘制简单的波形图。 .PLOT AC VDB(5)
(在交流分析中,打印节点 5 电压的分贝值图)
.PROBE Probe 波形输出(最常用),将指定的变量输出到一个二进制文件(.raw 文件),可以使用波形查看器(如 HSPICE Waveform Viewer, Synopsys VCS, Cadence Virtuoso 等)进行可视化。 .PROBE V(*) I(R1)
(输出所有节点的电压和电阻 R1 的电流到 .raw 文件)
.MEASURE Measure 测量,在仿真波形上自动进行测量,如找到最大值、最小值、上升时间、延迟时间等,并将结果输出到 .lis 文件。 .MEAS TRAN trise TRIG V(OUT) VAL=0.5 RISE=1 TARG V(OUT) VAL=4.5 RISE=1
(测量输出电压从 0.5V 上升到 4.5V 的时间,即上升时间 trise)
.OPTION Options 选项设置,用于设置 HSPICE 的各种参数,如仿真精度、输出级别、温度、工艺角等。 .OPTION POST=2
(设置输出级别为 2,生成最详细的 .raw 文件)
.OPTION TNOM=25
(设置标称温度为 25°C)

模型与库命令

呩令 全称 功能 示例
.LIB Library 调用模型库,从指定的库文件中调用器件模型。 .LIB 'cmos018.ltt'
(调用名为 'cmos018.ltt' 的工艺库文件)
.LIB 'cmos018.ltt' TT
(调用库文件中的典型工艺角模型)
.INCLUDE Include 包含文件,将另一个网表文件包含进来,常用于包含子电路或模型定义。 .INCLUDE 'my_subckt.sp'
.PARAM Parameter 参数定义,定义一个全局参数,可以在整个网表中使用。 .PARAM VDD=1.8 W=0.18u
(定义 VDD=1.8V, W=0.18um)
.ALTER Alter 条件分析,定义一个或多个备用的分析或参数设置,与 .END 配合使用。 .ALTER
VDD = 1.2
.ENDALTER
(在 .ALTER.ENDALTER 之间的设置会覆盖主网表中的设置)

元件语法

虽然不是以 开头的命令,但定义元件是网表的基础。

Hspice命令有哪些?基本语法怎么用?-图2
(图片来源网络,侵删)

通用格式:<节点1> <节点2> <元件名称> <值>

  • 电阻: R1 in out 1k (连接 in 和 out 节点,阻值为 1kΩ)
  • 电容: C1 in out 10p (连接 in 和 out 节点,容值为 10pF)
  • 电感: L1 in out 10n (连接 in 和 out 节点,感值为 10nH)
  • 独立电压源: VIN in 0 DC 1.5 AC 1 SIN(0 1.5 1G) (in 节点到 0 节点,直流 1.5V,交流幅值 1V,正弦波,频率 1GHz)
  • 独立电流源: I1 in 0 DC 1mA (in 节点到 0 节点,直流电流 1mA)
  • MOSFET: M1 out in bulk gate NMOS W=0.18u L=0.18u (漏极 out, 栅极 in, 体端 bulk, 栅极 gate, 模型名 NMOS, 宽长比 W/L)
  • 子电路调用: X1 in out vdd gnd my_inv (调用名为 my_inv 的子电路,连接 in, out, vdd, gnd 四个端口)

完整示例:CMOS 反相器瞬态分析

下面是一个完整的 CMOS 反相器 HSPICE 网表示例,包含了标题、元件、分析、输出和结束命令。

* CMOS Inverter Transient Analysis Example
* This is a title line
* --- Global Power and Ground ---
* VDD is connected to node 'vdd', GND to '0'
VDD vdd 0 DC 1.8
* --- Input Pulse Source ---
* VIN: Pulse from 0 to 1.8V, delay=0ns, rise/fall=10ps, pulse width=50ns, period=100ns
VIN in 0 PULSE(0 1.8 0 10p 10p 50n 100n)
* --- MOSFET Instantiations ---
* M1 (NMOS): Drain=in, Source=out, Body=0, Gate=out, Model=NMOS, W/L=0.18u/0.1u
M1 out in 0 0 NMOS W=0.18u L=0.1u
* M2 (PMOS): Drain=in, Source=vdd, Body=vdd, Gate=out, Model=PMOS, W/L=0.36u/0.1u
M2 out in vdd vdd PMOS W=0.36u L=0.1u
* --- Model Definitions ---
* Include the model library for 0.18um process
.LIB 'cmos018.ltt' TT
* --- Analysis Commands ---
* Perform a transient analysis from 0 to 200ns with a step of 1ps
.TRAN 1ps 200ns
* --- Output and Plotting Commands ---
* Probe all node voltages and currents of the MOSFETs to the .raw file
.PROBE V(*) I(M1) I(M2)
* Measure the propagation delay (tpHL and tpLH)
.MEAS tpHL TRIG V(in) VAL=0.9 FALL=1 TARG V(out) VAL=0.9 FALL=1
.MEAS tpLH TRIG V(in) VAL=0.9 RISE=1 TARG V(out) VAL=0.9 RISE=1
* --- End of Netlist ---
.END

运行与查看结果

  1. 保存:将上述代码保存为 .sp 文件,inverter.sp
  2. 运行:在命令行中执行 HSPICE:
    hspice inverter.sp
  3. 查看输出
    • inverter.lis:文本输出文件,包含仿真日志、.PRINT 的结果和 .MEASURE 的测量值。
    • inverter.raw:二进制波形文件,使用 HSPICE 自带的波形查看器或第三方工具(如 Synopsys Discovery)打开,可以查看 V(in)V(out) 的波形。

常用技巧与注意事项

  • 注释:使用 或 来注释一行。
  • 单位:HSPICE 支持自动单位缩写。1k=1000, 1M=1e6 (注意:M 是兆,不是毫,毫是小写的 m),1u=1e-6, 1n=1e-9, 1p=1e-12。
  • 节点命名:节点名可以是数字或字母(不能以数字开头),0 通常被默认为地。
  • 检查 .lis 文件:如果仿真出错,第一反应是查看 .lis 文件末尾的错误信息,它会告诉你问题所在(如模型找不到、节点悬空、收敛问题等)。
  • 收敛问题:对于复杂电路或强非线性电路,仿真可能不收敛,可以通过调整 .OPTION 中的参数(如 RELTOL, ABSTOL, VNTOL, ITL1, ITL2 等)来尝试解决。

希望这份详细的 HSPICE 命令指南对您有帮助!

分享:
扫描分享到社交APP
上一篇
下一篇