Sentaurus sdevice代码实现功能解析:Solve - 耦合泊松方程模拟
该代码实现了使用Sentaurus模拟器对半导体器件进行多种不同类型的模拟,包括:
- 解决耦合的泊松方程,其中包括电子和空穴的输运方程以及温度方程;
- 查看不同应力条件下陷阱产生的情况;
- 提取不同应力条件下的Ron/Idsat和IdVg;
- 测量器件寿命。
具体实现方式为:
- 对于查看不同应力条件下陷阱产生的情况,使用了Quasistationary函数,其中包括了不同的电压条件和目标,以及耦合的泊松方程、电子和空穴的输运方程和温度方程。
- 对于提取不同应力条件下的Ron/Idsat和IdVg,首先使用了Quasistationary函数来设定不同的电压条件和目标,然后使用了Transient函数进行瞬态模拟,最后使用了Tcl代码块来提取所需的数据。
- 对于测量器件寿命,使用了Quasistationary函数来设定不同的电压条件和目标,然后使用了Transient函数进行瞬态模拟,并将结果保存到文件中。最后,通过比较陷阱浓度和临界值,确定器件寿命的时间点。
代码示例:
Solve {
coupled (iterations=100) {
poisson
}
coupled {
poisson electron hole
}
coupled {
poisson electron hole temperature
}
#if @SimType@ == 0
## -- To view trap generation for various stress conditions
Quasistationary( InitialStep= 0.01 MaxStep= 0.2 Minstep= 1e-12
increment= 1.5 Goal{name='gate' voltage=@xVg@} )
{ coupled { poisson electron hole temperature } }
Quasistationary( InitialStep= 1e-3 MaxStep= 0.2 Minstep= 1e-12
increment= 1.2 Goal{name='drain' voltage=@xVd@} )
{ coupled { poisson electron hole temperature } }
NewCurrentPrefix='tr@SimType@_Vg@xVg@_Vd@xVd@_'
coupled { poisson electron hole }
transient( InitialTime= 0 Finaltime= 1e6
increment= 1.2 InitialStep= 0.1 MaxStep= 1e5 ){
coupled{ poisson electron hole temperature }
}
#elif @SimType@ == 1
## -- Extract Ron/Idsat for various stress conditions (Vg stress)
## -- Extract IdVg for various stress conditions (Vg stress)
Quasistationary( InitialStep= 1.0e-3 MaxStep= 0.2 Minstep= 1e-12
increment= 2.0 Goal{name='drain' voltage= @xVd@ } )
{ coupled { poisson electron hole temperature } }
Quasistationary( InitialStep= 0.01 MaxStep=0.2 Minstep= 1e-12
increment= 2.0 Goal{name='gate' voltage= @xVg@ } )
{ coupled { poisson electron hole temperature } }
## NewCurrentPrefix='tr@SimType@_Vg@xVg@_Vd@xVd@_'
## Perform transient simulation upto 1.0e5 seconds, and the solutions are saved at different time intervals
transient( InitialTime=0 Finaltime = 1e5
increment= 1.2 InitialStep=0.1 MaxStep= 5e4 ){
coupled{ poisson electron hole temperature }
Save (FilePrefix= 'tr_n@node@' NoOverWrite Time= (0.0;1e1;1e2;1e3) )
}
## Simulate IdVd to extract Ron and Idsat at intermediate time points
## Simulate IdVg to extract Vth at intermediate time points
## Tcl block
!(
for { set i 0 } { $i < 4 } { incr i } {
set Number [format '%04d' $i]
puts "
NewCurrentPrefix= ''
Load(FilePrefix= 'tr_n@node@__$Number')
Quasistationary ( InitialStep= 0.01 MaxStep=0.2 Minstep= 1e-12
increment= 2.0 Goal {name= 'gate' voltage= 0.0 } Goal {name='drain' voltage= 0.0 } )
{ coupled { poisson electron hole temperature } }
Quasistationary ( InitialStep= 0.01 MaxStep=0.2 Minstep= 1e-12
increment= 2.0 Goal {name= 'drain' voltage= @mVd@ } )
{ coupled { poisson electron hole temperature } }
NewCurrentPrefix= 'IdVg_$i_'
Quasistationary ( InitialStep= 0.01 MaxStep=0.2 Minstep= 1e-12
increment= 1.2 Goal {name= 'gate' voltage= @mVg@ } )
{ coupled { poisson electron hole temperature } }
"
}
)!
## End of the Tcl block
#elif @SimType@ == 2
## -- Measurement of Device LifeTime
#if @xVd@
Quasistationary( InitialStep= 1.0e-3 MaxStep=0.2 Minstep= 1.0e-12
increment= 2.0 Goal{name='drain' voltage= @xVd@ } )
{ coupled { poisson electron hole temperature } }
#endif
Quasistationary( InitialStep= 1.0e-4 MaxStep=0.2 Minstep= 1.0e-12
increment= 1.2 Goal{name='gate' voltage= @xVg@ } )
{ coupled { poisson electron hole temperature } }
## -- Device LifeTime= Time at which trap concentration equal to Ncrit
## Stress time should be very long time here (more than or equal to 10 years (3.15e8 sec))
NewCurrentPrefix='tr@SimType@_Vg@xVg@_Vd@xVd@_'
Transient( InitialTime=0 Finaltime= 3.15e8
increment= 1.2 InitialStep=0.01 MaxStep= 3.15e7 ){
coupled{ poisson electron hole temperature }
}
#endif
}
该代码示例展示了如何使用Sentaurus sdevice代码来实现以上提到的模拟功能。您可以根据您的实际需求修改代码参数和功能。
注意:
- 该代码示例仅供参考,可能需要根据您的具体需求进行调整。
- 为了更好地理解代码,建议您参考Sentaurus官方文档。
- 本文仅介绍了Sentaurus sdevice代码的基本功能,更多高级功能请参考Sentaurus官方文档。
原文地址: https://www.cveoy.top/t/topic/gQVI 著作权归作者所有。请勿转载和采集!