.measure语句的基本用法
.measure
处理对仿真输出的数据进行处理,对于成功完成的HSPICE仿真,可以使用.measure
进行用户自定义分析,即输出一些自定义的电路电学特性。
可以输出的电学特性包括以下内容:
此外,.measure
语句在电路的优化、模型参数拟合等方面也有特别的应用。
1. 语句顺序
measure
语句会匹配该语句之前的最后一个分析命令,如下所示:
在上述实例中,meas
会匹配第二个tran
语句,并且只生成一个输出文件。
如果measure
语句执行失败,HSPICE会在.mt#
文件中写入0.0e0
,在输出列表文件中写入 FAILED
。可以使用.option measfail
来对失败提示语句做一些控制。
2. 测量参数类型
.measure
不能调用子电路中的参数。.measure
中的参数不能和标准参数重名。如果.measure
中定义的参数与.param
中的重名会报错。另外不同类型的参数重名不会引起错误。
(sa手册 P253 ,后面看完补充一下。)
3. Rise, Fall, Delay, and Power Measurements
measure
语句的上升、下降和延迟测试模式可以独立变量(时间、温度或其他任意参数)在指定的起点和终点之间的差值,例如上升时间、下降时间,转换速率(slew rate)等。
基本语法:
部分参数信息:
在瞬态分析中,你指定了起点和终点之后,就会测量者两个点之间的时间间隔。
对于延时、上升时间、下降时间的测量,还可以使用如下语法:
varname
是用户自定义的变量名称,用于保存测量结果(TRIG
和TARG
所描述事件之间的时间间隔。)
TRIG_SPEC
和 TARG_SPEC
的语法如下:
TRIG
是测量起始点的关键字,TARG
是测量终止点的关键字。
var
和 VAL=val
指的是,当参数var
(电压、电流等)达到val
的时候,开始或结束测量。
RISE=r,FALL=f
指的是第r个上升沿,第f个下降沿的时候开始或结束测量。
这个几个语句和起来就是,仿真开始后,当var
第r
次发生上升变化(或第f
次发生下降变化)时,在其值达到val
的时候,开始测量(或结束测量)。
而cross=c
就是当var
第c
次达到val
这个值的时候,开始或结束测量,这个就是就部分上升变化和下降变化了。
这里就涉及到从何时开始统计发生变化的次数,TD=time_delay
的作用就是来定义次数统计的开始时间。默认情况下,从仿真的0时刻开始统计,如果指定了该该参数,就是从仿真开始的time_delay
是开始定义。比如,如果是想要在仿真开始后的10ns才开始统计var
的达到某一个val
出现的次数,那么就可以将TD设为10ns。
AT=time
则是直接测量开始的时间,比如,在瞬态分析中,就是指定了测量开始时间,而不是次数统计的开始时间,在DC分析中,可以指定某个参数达到某个值的时候就开始测量。
示例1:
.MEASURE TRAN tdlay TRIG V(1) VAL=2.5 TD=10n RISE=2
+ TARG V(2) VAL=2.5 FALL=2
上例用节点 1 和 2 的电压对瞬态分析的结果进行测量。
测量起始值是这样设置的,TD=10n 指延迟 10ns 开始计数,当到 V(1)到第二个上升变化,且电压值达到 2.5V 的时候开始测量。
测量目标值是这样设置的,当 V(2)到达第二个下降沿,且电压值达到 2.5V 的时候测量结束。输出结果是 tdlay=value。
示例2:
.MEASURE TRAN riset TRIG I(Q1) VAL=0.5m RISE=3
+ TARG I(Q1) VAL=4.5m RISE=3
示例3:
4. FIND 和 WHEN 函数
FIND
和 WHEN
函数允许当某些事件发生的时候,测量任何独立变量(时间、频率、参数),非独立变量(电压、电流等)或者是非独立变量的微分值。对于测量单位增益带宽、相位等是有用的。
瞬态分析中测量特定时间的电压
这里有这样一个用法:
对AT
选项的说明:
所以,通过下面的语句,就可以实现在瞬态分析中,在特定时间测量某一个位置电压:
.meas tran V1_R0 FIND V(ZN) at 2.5n
.meas tran V2_R0 FIND V(ZN) at 7.5n
5. Equation Evaluation/Arithmetic Expression
对其它measure
命令的测量结果做进一步的计算,方程的变量是measure
声明所得的结果,一定不能是节点电压或者支路电流。
算术表达式的输入也需要是之前measure
语句计算所得的结果。
基本语法:
示例:
6. AVG, EM_AVG, INTEG, MIN, MAX, PP, and RMS
这几种测量模式给出的是输出变量(电压、电流或功耗)的统计函数,而不是分析值。
AVG
是平均值,计算的是输出变量下的面积除以指定的周期
RMS
均方根值,计算的是输出变量下的面积的平方根除以指定的周期
MIN
和MAX
报告的分别是指定的时间间隔内输出函数的最小值和最大值
PP
(peak to peak) 报告的是指定时间范围内,最大值和最小值的差值。
EM_AVG
计算的是平均电迁移电流。
在DC数据扫描中,AVG
,RMS
,INTEG
(积分)是无意义的,如果使用了,工具会给出 warning
。
基本语法
参数说明:
FROM
和TO
就是设定func
计算的起点和终点,在瞬态分析中就是时间。
没有说明的那几个参数是和优化相关的。
示例
7. 输出文件格式
通过一些.option
选项,可以控制输出数据的格式。
MEASFORM
可以将相关数据输出为Excel工具可以打开的格式…
(之前没看到这里的时候,都是手动复制粘贴的,累死…)
这里,1 ,2,3,4都对应一些格式,具体可以参考命令手册。
MEASOUT
就是说,可以绘制测量值和扫描值之间的曲线图。
这个数据存放在mt#
文件中,使用WaveView打开该文件就可以看到响应的曲线图。
该选项默认是打开的。
MEASFILE
有多个.alter
语句存在的时候,输出是放在一个文件里面,还是多个文件里面。