在对Corner尤其是trim table进行仿真时,需要有大量的trim组合,虽然.Alter也是个很好的选择,但是每一种alter就会对应一个仿真结果,导致仿真文件很多。可以使用Data-Driven Sweep进行参数扫描,Data-Driven Sweep会将所有仿真结果写入同一个文件中。
在HSpice中 Data-Driven Sweep既可以对非均匀数值进行扫描也可以同时进行多参数扫描,使用Data-Driven Sweep时只需要在仿真分析语句后面加上 sweep data=mydata即可,其中sweep为扫描命令,data=mydata意思是使用"mydata"数据表进行参数扫描(mydata可以任意命名,但要与后面数据表名称一致),数据表格式如下:
.DATA mydata
+ param1 param2 param3 ……
val1a vla2a val3a
val1b vla2b val3b
…… …… ……
.ENDDATA
第一行对mydata数据表进行定义,第二行为该数据表中参数,多个参数用空格或者TAB隔开,参数定义完成后就可以填写每个参数对应的值了,在所有参数值给定后要在最后一行加入.ENDDATA表示完成数据定义,HSpice手册中给出的例子如下:
.tran 1n 100n sweep data=mydata
.data mydata param1 param2 ...
val1 vala ...
val2 valb ...
....
.enddata
Data-Driven Sweep另外一个用处是可以对仿真步长进行定义,例子如下:
Ipwl nd1 0 PWL (step_val ival)
.tran DATA = tstep_val
.DATA tstep_val step_val ival
+ 10p 1m
+ 30p 10m
+ 70P 10m
+ 100p 100m
.ENDDATA