#setdep @node|sdevice@
load_library extractset N @node|sdevice@
set COLORS [list green blue red orange magenta violet brown]
set color [lindex $COLORS [expr @node@%[llength $COLORS] ]]load_file IdVg_n@node|sdevice@_des.plt -name PLT($N)if {[llength [list_plots Plot_IdVg]]==0} {create_plot -ld -name Plot_IdVg}
select_plots Plot_IdVg
set_plot_prop -hide_title -show_legend
create_curve -name IdVg($N) -dataset PLT($N) -axisX "gate InnerVoltage" -axisY "drain TotalCurrent"set_curve_prop IdVg($N) -label "IdVg(@node|sdevice@)" -color $color -line_style solid -line_width 3
set_axis_prop -axis x -title {Gate Voltage [V]} -titl_font_size 24 -scale_font_size 22 -type linear
set_axis_prop -axis y -title {Drain Current [A/m m]} -titl_font_size 24 -scale_font_size 22 -type linearset_legend_prop -font_size 16 -font_att bold# -Extractionload_library extractset Vgs [get_variable_data "gate OuterVoltage" -dataset PLT($N)]
set Ids [get_variable_data "drain TotalCurrent" -dataset PLT($N)]
ext::ExtractVtgm out=Vtgm name=Vtgm v=$Vgs i=$Ids
ext::ExtractExtremum out=Idmax name=Idmax x=$Vgs y=$Ids type=max
ext::ExtractSS out=SS name=SS v=$Vgs i=$Ids vo= 0.01
ext::ExtractGm out=gm name=gm v=$Vgs i=$Ids
Sentaurus Visual脚本命令基于工具命令语言(Tcl)构建,因此提供了一种强大而灵活的自动化任务的方法。
Sentaurus Visual启动时自动加载提取库。但是,如果已禁用扩展库的自动加载,则可以使用以下命令显示地加载提取库:
load_library extract
Tcl的一种非常基本的类型是列表。列表由空格分割的元素组成。列表的第一个元素与索引0相关联。
llength 函数: 查找列表中元素的数量
lindex函数:引用列表中的一个或多个元素
加载指定的文件,并返回与该文件关联的数据集名称的字符串。
语法
load_file -name [-geoms ]
-name :指定自定义数据集名称
对于使用 -name 参数的Tcl命令,如果检测到名称冲突,Sentaurus Visual将打印错误消息并停止执行命令。如果没有在命令中指定name 参数,Sentaurus Visual 将生成一个在脚本中保持一致的内部名称。如果生成的名称与稍后在脚本中为相同类型的元素(如曲线或切线)定义的名称冲突,Sentaurus Visual 将打印错误信息并停止执行命令。
create_plot -name newPlot -dataset 3D
#-> newPlot
根据给定模式(pattern)返回plot名称列表。如果未指定模式,则返回所有plot.
list_plots -dim 3#-> 3D
创建空xy绘图,或从2D或3D数据集创建绘图。
-1d : 1d 创建空xy绘图
选择绘图.
设置绘图属性
为xy绘图创建一条新曲线。如果未指定-plot,则该命令将在选定(selected)的绘图上绘制曲线。如果没有创建xy绘图,或者所选绘图不是xy绘图,则该命令将返回错误。
create_curve -name IdVg($N) -dataset PLT($N) -axisX "gate InnerVoltage" -axisY "drain TotalCurrent"-name :新曲线的名称。如果未指定,该命令将指定默认曲线-dataset {}: 提取信息的数据集名称列表-axisX : 指定用于x轴的变量-axisY : 指定用于y轴的变量
设置曲线特性。该命令仅适用于xy图。
set_curve_prop IdVg($N) -label "IdVg(@node|sdevie@)" -color $color -line_style solid -line_width 3- {} : 要在其上应用指定属性的曲线列表- label :为曲线设置标签- color <#rrggbb> : 设置曲线的颜色- line_style :设置曲线的样式- line_width :设置曲线的宽度
设置轴属性。如果未指定-axis,则为所有轴设置属性,这个命令仅用于xy和2D绘图
set_axis_prop -axis x -title {Gate Voltage [V]} -titl_font_size 24 -scale_font_size 22 -type linear- axis x: 轴应用设置。如果未指定,该命令将这些设置应用于所有轴- title : 设置轴标签- title_font_size : 设置轴标签字体大小(xy图形)- type linear:设置轴刻度(仅适用于xy绘图)
设置图例属性
set_legend_prop -font_size 16 -font_att bold-font_size : 使用整数设置标签字体大小-font_att :设置标签字体属性
返回变量值列表,此命令只适用于xy图
get_variable_data -dataset
get_variable_data "gate OuterVoltage" -dataset PLT($N)-: 变量的名称-: 数据集的名称
使用最大跨导法从Id-Vgs曲线中提取阈值电压。阈值电压定义为最大跨导点gm处切线的栅电压轴截距。用抛物线插值法计算出现最大跨导的栅极偏置。曲线由两个Tcl列表表示:一个包含电压点,另一个包含相应的电流值。
ext::ExtractVtgm out=Vtgm name=Vtgm v=Vgsi=Vgs i=Vgsi=Ids
-out
-name : 要显示在SWB family tree中的提取变量的名称
-v
-i
提取曲线的最大值或最小值。该曲线由两个Tcl列表表示: 一个包含x值,一个包含相应的y值。
ext::ExtractExtremum out=Idmax name=Idmax x=Vgsy=Vgs y=Vgsy=Ids type=max
-out
-name : 要显示在SWB family tree中提取变量的名称
-x
-y
-type “max” | “min” : 选择提取曲线的最大值还是最小值。默认值是"max"
从Ig-Vgs曲线中提取给定栅极电压Vgo的亚阈值电压摆动。
ext::ExtractSS out=SS name=SS v=Vgsi=Vgs i=Vgsi=Ids vo= 0.01
-out
-name : 要显示在SWB family tree中提取变量的名称
-v
-i
-vo <《》r> : 提取斜率时的栅极电压。它应该是一个远低于阈值电压的值。
从Id-Vgs曲线中提取最大跨导。跨导gm定义为:
gm=dId/dVg
使用抛物线插值法来计算出现最大跨导的栅极偏置。曲线由两个Tcl列表表示:一个包含电压点,另一个包含相应的电流值。
ext::ExtractGm out=gm name=gm v=Vgsi=Vgs i=Vgsi=Ids
-out
-name : 要显示在SWB family tree中提取变量的名称
-v
-i