菜鸟科技网

HSPICE命令有哪些?如何快速掌握?

HSPICE 命令文件的基本结构

一个标准的 HSPICE 命令文件(通常以 .sp.cir 为后缀)通常包含以下几个部分:

HSPICE命令有哪些?如何快速掌握?-图1
(图片来源网络,侵删)
  1. 标题行:文件的第一行,可以是任意注释,HSPICE 会忽略。
  2. 选项行:以 开头的命令,用于设置仿真参数、分析类型、输出格式等。
  3. 电路描述:定义电路的元件(电阻、电容、晶体管、电压源等)及其连接关系。
  4. 分析指令:以 开头的命令,指定要进行何种仿真分析(如直流、交流、瞬态等)。
  5. 输出指令:以 开头的命令,定义需要输出的变量和格式。
  6. 结束行.END 命令,表示文件结束。

核心命令详解

电路描述命令

这是描述电路元件的核心,基本格式为: <元件名称> <节点1> <节点2> ... <参数>

元件类型 名称格式 描述与示例
电阻 R<name> <N1> <N2> <value> R1 in out 1k (连接 in 和 out 节点,阻值为 1kΩ)
电容 C<name> <N1> <N2> <value> C1 in 0 10p (连接 in 和地,容值为 10pF)
电感 L<name> <N1> <N2> <value> L1 in out 1n (连接 in 和 out,感值为 1nH)
独立电压源 V<name> <N+> <N-> <value> VDD out 0 3.3 (连接 out 和地,直流电压为 3.3V)
独立电流源 I<name> <N+> <N-> <value> I1 in 0 1u (连接 in 和地,直流电流为 1μA)
MOSFET M<name> <D> <G> <S> <B> <model> [L=<val>] [W=<val>] M1 out in 0 0 NMOS L=0.1u W=1u (NMOS,漏极 out,栅极 in,源/体极接地)
BJT Q<name> <C> <B> <E> <S> <model> Q1 c b e 0 NPN (NPN型三极管,集电极c,基极b,发射极e,衬底接地)
子电路调用 X<name> <N1> <N2> ... <sub_name> X1 in out vop_amp (调用名为 vop_amp 的子电路,连接 in, out)

关键点:

  • 节点名称:可以是任意字母数字组合(如 in, out, vdd, net1),0 代表接地。
  • 模型定义:元件(如 MOSFET, BJT)的物理参数需要在 .MODEL 命令中定义。
    • MOSFET 模型示例:
      .MODEL NMOS NMOS (VTO=0.5 KP=100u tox=10n)
      .MODEL PMOS PMOS (VTO=-0.5 KP=50u tox=10n)
    • BJT 模型示例:
      .MODEL NPN NPN (BF=100 IS=1f)

分析指令

这些命令告诉 HSPICE 如何运行仿真。

分析类型 命令格式 描述与示例
直流分析 .DC <sourcename> <start> <stop> <step> [<sourcename2> ...] 扫描一个或多个直流源的值。.DC VDS 0 5 0.1 VGS 0 5 1 (VDS 从 0V 扫到 5V,步长 0.1V;在每个 VDS 点,VGS 从 0V 扫到 5V,步长 1V)
交流分析 .AC <sweep_type> <points> <start_freq> <stop_freq> 进行频域分析。.AC DEC 10 1 1G (频率按 decade (10倍频) 方式扫描,每 decade 10 个点,从 1Hz 到 1GHz)
瞬态分析 .TRAN <tstep> <tstop> [<tstart> [<tmax>]] [UIC] 进行时域分析。.TRAN 1ps 1ns (从 0s 开始仿真到 1ns,计算步长为 1ps) UIC (Use Initial Conditions) 表示使用用户设定的初始值。
工作点分析 .OP 计算并输出电路的直流工作点。
蒙特卡洛/最坏情况分析 .MC <runs> <analysis> <output> <function> [OPTIONS] 进行统计仿真。.MC 100 DC V(out) MAX (运行 100 次直流分析,找出 V(out) 的最大值)
温度分析 .TEMP <temp1> <temp2> ... 在不同温度下进行仿真。.TEMP 0 25 125 (分别在 0°C, 25°C, 125°C 下仿真)

输出指令

这些命令控制仿真结果的输出。

HSPICE命令有哪些?如何快速掌握?-图2
(图片来源网络,侵删)
输出类型 命令格式 描述与示例
打印输出 .PRINT <analysis_type> <output_var1> <output_var2> ... 在仿真日志文件中打印指定变量的数值。.PRINT DC V(out) I(VDD) (在直流分析中打印 V(out) 和流过 VDD 的电流)
绘图输出 .PLOT <analysis_type> <output_var1> [<output_var2> ...] 在文本终端上绘制简单的 ASCII 图表。.PLOT TRAN V(in) V(out) (在瞬态分析中绘制 V(in) 和 V(out) 的波形图)
Probe 输出 .PROBE [<analysis_type>] [<output_var1> ...] 最常用,生成二进制格式的数据文件(.mt0, .sw0 等),可以在波形查看器(如 Waveform Viewer, SimVision, Cadence Virtuoso Waveform Viewer)中打开和查看。.PROBE (输出所有节点电压和支路电流) 或 .PROBE TRAN V(out) (只输出瞬态分析的 V(out))

选项与控制命令

命令格式 描述与示例
.OPTIONS 设置仿真器选项。.OPTIONS POST=1 (生成用于后处理的文件) .OPTIONS RELTOL=1e-3 (设置相对误差)
.ALTER / .ENDALTER 定义一个备用的电路配置,用于参数扫描或比较。
.GLOBAL 声明全局节点。.GLOBAL vdd gnd (vdd 和 gnd 在整个电路中都是全局可见的)
.INCLUDE 包含另一个文件。.INCLUDE 'models.lib' (包含模型文件)
.PARAM 定义参数。.param supply=3.3 (定义 supply=3.3V),之后可以用 VDD out 0 {supply} 来引用。
.MEASURE 在仿真过程中测量某个值。.MEAS TRAN rise_time TRIG V(out) VAL=1.5 RISE=1 TARG V(out) VAL=2.5 RISE=1 (测量 V(out) 从 1.5V 上升到 2.5V 所需的时间)
.SAVE 指定保存到 .mt0 文件中的变量。.SAVE V(*) I(VDD) (保存所有节点电压和流过 VDD 的电流)
.END 必须,文件结束标志。

完整示例:一个简单的 CMOS 反相器

下面是一个完整的 HSPICE 命令文件示例,仿真一个 CMOS 反相器的直流传输特性(DC Transfer Characteristic)和瞬态响应。

* ===============================================================
* HSPICE Example: CMOS Inverter Simulation
* ===============================================================
* --- 1. Options ---
.OPTIONS POST=1         * Generate files for waveform viewing (e.g., .sw0)
.PARAM supply=1.8      * Define a parameter for supply voltage
* --- 2. Include Model File ---
* Assume you have a model file named 'cmos_models.lib'
.INCLUDE 'cmos_models.lib'
* --- 3. Circuit Description ---
* Power and Ground
VDD  out  0  DC {supply}
VSS  0    0  DC 0
* Input Pulse Source for Transient Analysis
Vin  in   0  PULSE(0 {supply} 0ns 10ps 10ps 1ns 2ns)
* CMOS Inverter
* M1: PMOS (Drain=VDD, Gate=in, Source=out, Bulk=VDD)
M1  VDD  in  out VDD  PMOS  L=0.1u  W=0.5u
* M2: NMOS (Drain=out, Gate=in, Source=VSS, Bulk=VSS)
M2  out  in  VSS VSS  NMOS  L=0.1u  W=0.25u
* Load Capacitance
C_L  out  0  10f
* --- 4. Analysis Commands ---
* DC Analysis: Sweep Vin from 0 to supply, measure V(out)
.DC  Vin  0 {supply} 0.01
* Transient Analysis: Run for 5ns
.TRAN  1ps  5ns
* --- 5. Output Commands ---
* Save all node voltages and currents for waveform viewing
.SAVE V(*) I(VDD) I(Vin)
* Measure propagation delay (optional)
.MEAS TRAN tpLH TRIG V(in) VAL={supply/2} RISE=1 TARG V(out) VAL={supply/2} FALL=1
.MEAS TRAN tpHL TRIG V(in) VAL={supply/2} FALL=1 TARG V(out) VAL={supply/2} RISE=1
.MEAS TRAN tp_avg AVG tpLH tpHL
* Print DC transfer curve to the log file
.PRINT DC V(in) V(out)
* --- 6. End of File ---
.END

如何运行和查看结果

  1. 运行 HSPICE: 在命令行中,进入 .sp 文件所在的目录,然后执行:

    hspice -i my_circuit.sp -o my_circuit.lis
    • -i my_circuit.sp: 指定输入文件。
    • -o my_circuit.lis: 指定输出日志文件名。
  2. 查看结果

    • 日志文件 (.lis):打开 .lis 文件,可以查看仿真设置、警告/错误信息、以及由 .PRINT 命令输出的数据表格。
    • 波形文件 (.sw0, .mt0 等):这是最常用的结果,使用 HSPICE 自带的 Waveform Viewer 或其他兼容的波形查看器(如 Cadence SimVision)来打开这些文件,进行交互式地观察和分析波形、测量参数等。

掌握 HSPICE 命令的关键在于:

HSPICE命令有哪些?如何快速掌握?-图3
(图片来源网络,侵删)
  • 理解基本结构:知道命令文件的组织方式。
  • 熟悉核心命令:特别是元件描述、分析指令(.DC, .TRAN, .AC)和输出指令(.PROBE 是最重要的)。
  • 善用模型和参数.MODEL.PARAM 命令让仿真更灵活、更易于维护。
  • 实践:从简单的电路开始,逐步尝试更复杂的分析和测量命令。

希望这份详细的指南对您有所帮助!

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