5.1 Advanced Script to Plot Results From phumob Project
5.2 Working With Multiple Files in Inspect
In this section, the Sentaurus Workbench project phumob in the directory Applications_Library/GettingStarted/Inspect/phumob is used to demonstrate several advanced features of Inspect.
As a first step, copy the project, then preprocess it and run it. At the end, all project nodes should be yellow.
The project parameter ModPar is used to control which Philips unified mobility model parameter set is used – arsenic or phosphorus. The doping parameter value indicates the type of substrate doping, while conc decides the doping concentration inside the sample. For each combination of ModPar/doping values, the corresponding Inspect plot is generated.
The last Inspect node input is designed to combine the simulation results (electron/hole low-field mobilities versus substrate doping concentration), as shown in Figure 1. For this, the Inspect script reads in the results from the Sentaurus Device nodes, located on the same branch of the simulation tree.
To display the plots in Inspect, check a single Inspect node and click the Run Selected Visualizer Nodes Together toolbar button. You should see the plot as shown in Figure 2, which compares the simulation results with measurements for a selected ModPar/doping value combination.
Click to view the master file inspect_ins.cmd.
For each Sentaurus Device node, Inspect loads its plot file, extracts the corresponding mobility and substrate doping values, and adds them to a corresponding list:
set ConcList [list] set eMobList [list] set hMobList [list] set node0 @node|-1@ for { set i 0 } { $i < $Npoint } { incr i } { set nodei [expr $node0-$i] set plt n${nodei}_des.plt set plt_data [file rootname $plt] proj_load $plt cv_create mun "$plt_data Pos(0.5,0.5) DopingConcentration" \ "$plt_data Pos(0.5,0.5) eMobility" y cv_create mup "$plt_data Pos(0.5,0.5) DopingConcentration" \ "$plt_data Pos(0.5,0.5) hMobility" y set munList [cv_getValsY mun] set mupList [cv_getValsY mup] set conList [cv_getValsX mun] set con [lindex $conList end] set mun_v [lindex $munList end] set mup_v [lindex $mupList end] lappend ConcList "[format %e ${con}]" lappend eMobList "[format %f ${mun_v}]" lappend hMobList "[format %f ${mup_v}]" proj_unload $plt cv_delete mun cv_delete mup }
When the lists are assembled, the calculated electron/hole mobilities are plotted as a function of doping concentration:
cv_createFromScript klaassen_emob $ConcList $eMobList cv_createFromScript klaassen_hmob $ConcList $hMobList cv_display klaassen_emob cv_display klaassen_hmob
In the next step, the referenced experimental data is plotted. Depending on the substrate doping type, different data is used, taken from different publications. The data is entered explicitly in the list. A corresponding experimental curve is created using the cv_createFromScript command and then is visualized:
#if "@doping@" == "Boron" set DzSiListX [list 1.2e17 2e17 4e17 1e18 1.8e18 4e18 1e19] set DzSiListY [list 670. 520. 460. 410. 295. 260. 255.] cv_createFromScript DzSi_emob $DzSiListX $DzSiListY cv_display DzSi_emob cv_setCurveAttr DzSi_emob "Dziewior and Silber" black solid 0 circle 7 \ ...
#else set DzSiListX [list 1.1e17 1.5e17 8e17 1.8e18 1.4e19] set DzSiListY [list 460. 405. 365. 210. 105.] cv_createFromScript DzSi_hmob $DzSiListX $DzSiListY cv_display DzSi_hmob cv_setCurveAttr DzSi_hmob "Dziewior and Silber" black solid 0 circle 7 \ ... #endif
Each curve in the plot is represented by its unique curve settings using the cv_setCurveAttr command.
The plot settings such as legend position, plot decorations, and axes parameters are loaded from a previously saved Inspect setup file:
param_load ./ins.par
As a last step, the Inspect title is set, which overwrites the one from the ins.par file:
gr_setTitleAttr "Klaassen PhuMob e/hMobility vs Doping.\n \ @ModPar@ parameters. @doping@ doping"
A typical Inspect task is to compare simulation results from different files generated by Sentaurus Device. To filter these files by name, use the following command, which reads multiple files in Inspect according to the predefined mask, sorts them, and arranges files by the selected number:
set fNames [lrange [lsort [glob "n@node|sdevice@_des_*_des.plt"]] 2 end]
Here:
main menu | module menu | << previous section | next section >>
Copyright © 2017 Synopsys, Inc. All rights reserved.