LOOP循环对仿真中的某一相似行为进行多次计算。

我们往往遇到要对器件进行优化设计,此时可能要研究某些参数,如厚度、掺杂浓度等对器件性能的影响时,就需要多次进行仿真。每次仿真后手动更改参数非常麻烦,此时在Silvaco中可以通过循环的方法自动更改参数值。方法是书写两个文件比如file1.in 、file1_loop.in,在file1.in中先将参数设定为某一定值,在file1_loop.in中利用sweep对该参数进行更改。

1、sweep语法

sweep parameter=<parameter1> type=<linear|power>range="start,stop,num"\
parameter=<parameter2> type=<list> date="list,of points" \
[linked=<param3> type=<sweep_type> range="range"]

(1)  type: 有三种,liner, power, list. liner和power 后面使用 range列出开始值,结束值及总共的数目、list后面用data来列出一系列分立的值,如 1,2 ,3等。

(2) 用parameter定义的参数与其他parameter定义的参数是相互独立的。比如:

sweep parameter=x type=linear range="1,3,3" \
parameter=y type=linear range="10,30,3"

x的值为1,2,3;y的值为10,20,30.这样将产生9组数据 ( 1,10 ), ( 2,10 ), ( 3,10 ), ( 1,20 ), ( 2,20 ), ( 3,20 ), ( 1,30 ), ( 2,30 ), ( 3,30 )。

(3)使用linked命令定义的任何参数都与前面的参数绑定在一起,比如:

sweep parameter=x type=linear range="1,3,3" \
linked=y type=linear range="10,30,3"

 将产生 (1,10), (2,20), (3,30)三组数据。下列更复杂的语句进一步说明liked的功能:

sweep parameter=A type=linear range="1,3,3" \
linked=B type=linear range="1,2,2" \
linked=C type=linear range="1,4,4"

在上面的语法中,A被定义为值(1,2,3)。B被定义为值(1,2)。C被定义为值(1,2,3,4)。但本实验以参数A为控制参数,将包含(1,1,1)、(2,2,2)、(3,2,3)三次试验。B的最终值是2,然后一直保持不变而C的最终值永远不会达到。

2、循环的使用以silvaco中例子ganfetex01_aux.in为例:

1)在ganfetex01_aux.in(主文件)文件中对要更改的变量用set语句进行设置,如:

set th=0.005
set index=1

上述语句设计了变量厚度th

2)在ganfetex01_aux.in(循环计算文件,计算控制文件)中采用如下语法进行循环计算和保存结果

# This small script allows us to loop on the device thickness to
# extract the channel charge concentration versus device thickness
# 
go internal

load inf=ganfetex01_aux.in

sweep parameter=th type=list data="0.005, 0.01, 0.015, 0.02, 0.025"

save type=sdb outf=ganfetex01.dat

tonyplot ganfetex01.dat -set ganfetex01.set

quit

 其中:

·go internal命令。将控制从当前的模拟器(Atlas)转移到DBinternal.

`load命令指定需要多次运行的模板文件。

·sweep命令指定如何修改模块文件中设置的变量,在本例中材料的厚度从0.005变化到了0.025共5个值,模拟次数设计为5次。

·save命令告诉DBinternal将所有的ganfetex01_aux.in文件中的extract语句中生成的数据整理到文件ganfetex01.dat中。

3)tonyplot输出的折线图。反映出了二维电子气浓度与器件厚度之间的关系。

4)ganfetex01_aux.in主文件。

#
# ganfetex01.in
#
# This example is the basis of the Simulation Standard article
# "Simulating the Source of Polarization Charge in AlGaN/GaN HFETs"
# Simulation Standard, V. 15, N. 8, Aug. 2006, Silvaco International.
# 
# That article is based on the work of:
# J. P. Ibbetson, et. al., Appl. Phys. Lett. 77, 250 (2000).
#

go atlas

# initial thickness
set th=0.005
set index=1

# delta Ec is 75% of delta Eg
set align1=0.75
# location of surface donor trap level relative to valence band
set Ed=2.6
# density of surface donor traps
set Dens=6e13
# density of donors in GaN
set d_gan=1e15
# density of donors in AlGaN
set d_algan=1e18
# lifetime
set tau=1e-10
# polarization charges either set by model or fixed
# in the example they are fixed in order to calibrate
# to Ibbetson's paper
#set po="polarization polar.scale=1 calc.strain"
set po=" "
set pz=1.608e13
set pzAlGaN=-1*($pz + 2.122e13)
# set up some thickness dependent mesh parameters
set ymin=-1*$th
set ymin2=$ymin/2
set ydelta=$th + 0.0010

#
mesh auto width=1000

x.m l=0.0 s=1
x.m l=1.0 s=1
#
y.m l=$ymin  s=0.0001
y.m l=$ymin2 s=0.001
y.m l=0.0    s=0.0001
y.m l=0.01   s=0.001
y.m l=1.0    s=0.5
y.m l=1.98   s=0.001
y.m l=2.0    s=0.0001
#
region mat=AlGaN y.min=$ymin y.max=0 x.comp=0.34 $"po" donors=$d_algan 
region mat=GaN   y.min=0 y.max=2.0 donors=$d_gan $"po" substrate
#
elec  name=sub bottom
#
material material=Oxide alattice=5.43
material mat=AlGaN edb=0.042 eab=0.200 \
	taun0=$tau taup0=$tau align=$align1
material mat=GaN   edb=0.042 eab=0.200 \
	taun0=$tau taup0=$tau mun=100 
#
material mater=AlGaN mun=5 vsatn=1.1e7
material mater=GaN mun=100 vsatn=1.9e7
# Caughy-Thomas parameters
mobility mater=AlGaN mu1n.caug=5 mu2n.caug=135 ncritn.caug=1e17 vsatn=1.1e7
mobility mater=GaN   mu1n.caug=100 mu2n.caug=2000 ncritn.caug=1e17 vsatn=1.9e7
#
models fldmob k.p print srh fermi incomplete 
#
interface charge=$pz s.s y.min=0.0 y.max=0.0 
interface charge=$pzAlGaN s.x y.min=$ymin y.max=$ymin 
interface charge=2.122e13 s.x y.min=2.0 y.max=2.0
#
inttrap donor density=$Dens degen=2 e.level=$Ed taun=1e-12 taup=1e-12 \
	y.min=$ymin y.max=$ymin s.x
inttrap acceptor density=9e14  degen=4 e.level=0.2 taun=1e-12 taup=1e-12 \
	y.min=2.0 y.max=2.0 s.x
#
output con.band val.band band.param flowlines charge traps \
	e.mob h.mob e.vel ex.vel ey.vel h.vel hx.vel hy.vel qss polar.charge
#
method  gumits=300 clim.dd=1e5 autonr
#
solve 
save outf="ganfetex01_$'index'.str"
#
#
extract init inf="ganfetex01_$'index'.str"
extract name="2DEG" 1e-4 * area from curve(depth,impurity="Electron Conc" \
        material="All" mat.occno=1 x.val=0.5) \
	where x.min=0 and x.max=0.5 outfile="extract.dat"

quit

  • 27
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值