仿真输出
在完成仿真之后,通过输出描述语句可以格式化输出仿真相关的各项内容,如上升时间、下降时间、slew rate、放大倍数、电流密度等。
1. 概述
输入网表文件中的输出描述语句包括:.PRINT, .PROBE, .MEASURE, .DOUT,
和 .STIM
。使用这些命令之后,会对相应的参数做一个输出(display)。
在使用option post
选项之后,HSPICE会把.PRINT, .PROBE, .MEASURE, .DOUT,
和 .STIM
涉及的所有的输出变量放到HSPICE输出文件中。
基本输出指令如下:
1.1 输出变量
输出格式语句需要特殊的输出变量,以打印或绘制节点电压和支路电流的分析结果。HSPICE使用的输出变量类型可以分为以下几种:
对于直流和瞬态分析,HSPICE可以输出:
交流分析显示节点电压或支路电流的虚分量和实分量,以及节点电压或支路电流的幅值和相位。交流分析结果还打印阻抗参数,以及输入和输出噪声。
对于 Element template 分析,可以输出元件特定节点的电压、分支电流、元件参数等。
.measure
语句变量定义了在.measure
语句分析中要测量的电气特性。
参数分析变量是数学表达式,它对节点电压、支路电流、元件模板变量(仅限HSPICE)或您指定的其他参数进行操作。在执行仿真结果的行为分析时使用这些变量。
1.2 输出语句对应的分析类型
输出语句与它前面的网表中的最后一个分析命令匹配。
如果在没有包含分析类型的输出语句之前没有分析语句,HSPICE仿真器会自动为输出语句分配.TRAN
分析类型。它还会在输出列表文件中添加一条消息,告诉你已将.TRAN
类型分配给没有分析类型的.meas/.probe/.print/.plot
语句,而且这些语句前面也没有分析语句。
如下示例:
.meas
会和第二个 .tran
语句匹配,并且只生成一个measure
输出文件。
如下示例二:
输出语句之前没有分析语句,并且输出语句本身也没有指定分析类型。此时,HSPICE仿真器会把.tran
分析类型给到输出语句.meas
和.print
。因为该文件中的分析类型只有.dc
,所以在交流分析中不会从输出语句得到任何输出结果。
2. 显示仿真结果
显示仿真结果的语句如下:
2.1 .print语句
.PRINT
语句指定HSPICE打印值的输出变量,相关结果会保存在输出列表文件中。
为了简化对输出列表文件的解析,HSPICE工具会打印一个x
表示.print
输出语句的开始,打印一个y
表示该输出语句的结束。
基本语法
① 该命令中可以包含通配符(wildcards)
② 默认情况下,.print
命令按照.tran
中定义的时间步长来作为打印仿真输出数据的时间间隔。
③ .print
语句中使用iall
关键字,可以输出设计中的二极管、BJT、JFET或者MOSFET的全部分支电流。如下,
如果电路中包含四个MOSFET(分别为 m1, m2, m3, m4),那么.PRINT iall (m*)
等同于 .PRINT i(m1) i(m2) i(m3) i(m4)
,会打印输出四个MOSFET的电流。
示例
使用参数
2.2 .probe 语句
.probe
语句是把输出变量以图形的形式保存,不会出现在输出列表文件中。
HSPICE通常会保存所有的电压、电流和输出变量(就是把所有这些数据都保存到输出列表文件中)。使用option probe
命令可以只保存.probe
中指定的变量。(使用了命令后,只有.probe
中指定的变量会被保存到输出列表文件中)
(probe在英文中有取样的意思)
基本语法
① .probe
命令在保存波形文件的时候,不受option probe
和 option putmeas
的影响
② 使用.probe
的时候,如果该语句前面没有分析语句,那么该语句中必须指定分析类型
示例
2.3 子电路的输出
如果子电路的端口名称与实例节点名称不同,则可以直接使用.print
命令打印子电路的电压值。
但是对于如下示例,
默认情况下,HSPICE只会打印输出顶层instance的节点名称,而不会输出子电路端口。
如果想要输出子电路的in和out端口,就需要option probe
和.probe
的配合使用,如下所示:
2.4 打印控制选项
.option probe
该选项的作用是将分析后的输出变量限定为 .probe
和 .print
中指定的变量。
.option post
保存的仿真结果可以使用波形查看器打开查看。
.option list
.option ingold
指定输出列表文件中数据的格式。(不影响.measure
的输出数据格式)
2.5 .model_info打印模型参数
输出文件的内容主要包实例信息和模型信息两部分,实例信息包含实例名称和使用的模型,模型信息包含所有模型参数。
对于重复使用的模型,只会保存一次参数。
3. 仿真输出参数的选择
前面介绍了可以使用.print,.probe
命令进行仿真输出,但是没有说可以输出哪些内容,这里就来介绍这些命令可以输出哪些内容。
仿真输出参数主要包括如下四部分:
3.1 直流和瞬态输出变量
更加具体的包括如下内容:
节点电压
MOS端口电压
元件分支电流
(关于电流方向问题,后续如果需要可以查手册)
子电路引脚电流
3.2 元件参数
3.3 使用 .option list 输出MOSFET信息
如果网表文件中包含了 .option list
语句,工具会打印输出MOSFET缩放后的有效长度和宽度,如下所示:
每个MOS实例,都可以看到有效宽度和长度w eff
和 l eff
(scaled)。
1:mn1
中的 1
表示的是子电路实例标号,如下所示:
还可以给输出列表中数据进行命名,如下所示: