silvaco仿真流程学习仿真soliton-monologue同学的diode的示例

  最近学习silvaco仿真软件的学习,网上的学习资料真的比较少,幸运翻到silicon-monologue同学的学习笔记,清晰易懂,简单明了。不但提供了思路而且还提供了学习的方法。silicon-monologue同学将自己的学习过程整理成笔记和文档发送在CSDN上的做法为我提供了大大的方便可以说是解决了燃眉之急。现今,我仿照他的方法将我的学习记录也发布在网上,既是对我自己的勉励通过面对大众逼迫自己精益求精也是为silvaco软件的学习提供一份学习资料为后来的silvaco软件的学习者提供方便之门。

 1、按照例子重写代码

代码:

go atlas  
  
mesh space.mult=1.0  
  
x.mesh loc=0.00 spac=0.5  
x.mesh loc=3.00 spac=0.2  
x.mesh loc=5.00 spac=0.25  
x.mesh loc=7.00 spac=0.25  
x.mesh loc=9.00 spac=0.2  
x.mesh loc=12.00 spac=0.5  
  
y.mesh loc=0.00 spac=0.1  
y.mesh loc=1.00 spac=0.1  
y.mesh loc=2.00 spac=0.2  
y.mesh loc=5.00 spac=0.4  
  
region num=1 silicon  
  
electr name=anode x.min=5 length=2  
electr name=cathode bot  
 
doping n.type conc=5.e16 uniform  
  
doping p.type conc=1e19 x.min=0 x.max=3 junc=1 rat=0.6 gauss  
doping p.type conc=1e19 x.min=9 x.max=12 junc=1 rat=0.6 gauss  
  
doping n.type conc=1e20 x.min=0 x.max=12 y.top=2 y.bottom=5 uniform  
  
save outf=diodeex01_0.str  
tonyplot diodeex01_0.str -set diodeex01_0.set  
  
model conmob fldmob srh auger bgn  
contact name=anode workf=4.97  
  
solve init  
  
method newton  
log outfile=diodeex01.log  
solve vanode=0.05 vstep=0.05 vfinal=1 name=anode  
tonyplot diodeex01.log -set diodeex01_log.set  
quit 

2、分块解读代码

go atlas simflags="-P 4" 
# 调用atlas二维器件仿真器,simflags="-PX"能够调用cpu的数量如果不设置程序默认只调用一个cpu
mesh space.mult=1.0  
 # space.mult设置全局网格的缩放因子,默认值是1.当mult>1时,会产生一个更加粗糙的全局网络,届时仿真速度会比较快。当mult<1时,会产生一个更加精细的全局网络,此时仿真结果更加准确,但是仿真速度也会变慢。
x.mesh loc=0.00 spac=0.5  
x.mesh loc=3.00 spac=0.2  
x.mesh loc=5.00 spac=0.25  
x.mesh loc=7.00 spac=0.25  
x.mesh loc=9.00 spac=0.2  
x.mesh loc=12.00 spac=0.5  
  
y.mesh loc=0.00 spac=0.1  
y.mesh loc=1.00 spac=0.1  
y.mesh loc=2.00 spac=0.2  
y.mesh loc=5.00 spac=0.4  
#进行网格设计,在器件仿真中网格设计的总体区域就是能够进行仿真建模的区域。x.mesh和y.mesh分别用来指定水平和垂直用微米作为单位的网格格点的位置,x和y的正负值均可以使用。ATLAS仿真器会根据space的大小自发的决定网格线的疏密程度。
region num=1 silicon  
#这里面是定义区间x(0,12)y(0,5)整个区间的材料是silicon,在Dialog(command模块中的syntax Dialogs)中进行定义的语言是这样的:#region number=1 ix.l=0 ix.h=12 iy.l=0 iy.h=5 material=Silicon
electr name=anode x.min=5 length=2  
electr name=cathode bot  
#定义电极:定义x(5~7)y(0,0)为设备的阳极,定义设备的整个底面为设备的阴极。在Dialog中编写的语句是这样的:#
# #1=anode 
electrode name=anode number=1 x.min=5 x.max=7 y.min=0 y.max=0
# #1=cathode
electrode name=cathode number=1 x.min=0 x.max=12 y.min=5 y.max=5
注意这里设置的时候最大值一定要大于最小值,可以写完之后在deck面板上进行修改。

doping n.type conc=5e16 uniform  
 # 定义掺杂:定义材料整体为n型 掺杂浓度是5e16 uniform是均匀掺杂
doping p.type conc=1e19 x.min=0 x.max=3 junc=1 rat=0.6 gauss  
doping p.type conc=1e19 x.min=9 x.max=12 junc=1 rat=0.6 gauss  
#定义掺杂:p型掺杂 掺杂浓度为1e19参杂的区间分别为x∈(0,3)y∈(0,0)和x∈(9,12)y∈(0,0)掺杂的结深为1微米,横向扩散长度为0.6,这里是高斯分布的掺杂。一般来说掺杂为高斯分布是更加符合掺杂的真实情况的。
doping n.type conc=1e20 x.min=0 x.max=12 y.top=2 y.bottom=5 uniform  
 #定义掺杂:n型掺杂,掺杂浓度为1e20,掺杂区见为 x∈(0,12)y∈(2,5)
save outf=diodeex01_0.str  
tonyplot diodeex01_0.str 
 #保存器件结构并用tonyplot显示,这里的"-set diodeex01_0.set"是指在tonyplot中以 diodeex01_0文件的设置格式来显示包括设置的disolay中的mesh、contours、电场等设置,其实可以不用设置是没有关系的,设置了如果你没有相应的diodeex01_0文件程序反而会报错。
model conmob fldmob srh auger bgn  
contact name=anode workf=4.97  
  #选用模型:conmob(浓度以来迁移率模型)fldmob(平行电场依赖模型)srh(schokly-Read-Hall复合模型)auger(俄歇复合模型)bgn(能带变窄模型)
solve init  
 #计算初始化所有的电极上施加的电压都归零 
method newton  
#数值计算方法为newton
log outf=diodeex01.log master
#提前定义下面的曲线文件
solve vanode=0.05 vstep=0.05 vfinal=1 name=anode  
#计算阳极电压为从0.05~1v步进为0.05v时的参数变化曲线,这里我在tonyplot中显示的曲线为阳极电流相对于阳极电压的变化曲线。显示曲线为什么类型,怎么设置暂时我还不清楚。
tonyplot diodeex01.log  
#画出该曲线
quit 

3、网格图

4、 电极图

5、PN结的结存在位置

6、掺杂图

7、掺杂的浓度曲线(在x=6和x=10处进行切割)

8、器件的IV特性曲线

伏安特性曲线没弄明白为什么跟silicon-monologe的伏安特性曲线刚好是相反的,还有他的掺杂浓度曲线中可以同时显示n型和p型杂质的浓度图是怎么操作的?下去要好好的思考或者问问师兄怎么做。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值