软件版本:O-2018.06
IVCharacteristics
是QuantumATK开发的一类最新的Study对象,用来计算和分析场效应管(FET)器件模型的常见电子性质,专门用于多步骤的复杂计算流程的设置、分析,大大提高了IV计算的效率。使用IVCharacteristics可以:
本教程介绍如何使用IVCharacteristics
计算并分析silicon-on-insulator(SOI)器件的电子性质,这些性质都有实验结果供参照。教程中使用SOI器件的结构是预先构建好的,用来计算$\mathrm{SS}$和$\mathrm{DIBL}$。
计算使用的SOI器件如下图所示,中间是氢钝化的二维硅片层,两个介电层模拟外面包裹的<chem>SiO2</chem>($\epsilon = 3.9 \epsilon_0$),此外还有一个在沟道中心的金属栅极。
为了计算快速,本教程使用半经验的紧束缚模型计算此模型的电子结构。2)
在此下载包含 DeviceConfiguration 和计算方法的Python脚本输入文件soi_device.zip,将其放置在计算项目的文件夹里,文件会出现在QuantumATK的主界面上。
将文件拖动到Script generator上,将Output setting 下的 Results file 输出文件名改为soi_device_iv1.hdf5
,然后添加下面的计算:
双击打开它,修改参数如下:
这样设置的意思是让 IVCharacteristics 在$\mathrm{V_{gs0}} = -0.3 \mathrm{V}$ 到$\mathrm{V_{gs1}} = 0.0 \mathrm{V}$范围里扫描栅压,栅压点间隔为 $\mathrm{\Delta V_{gs}} = 0.05 \mathrm{V}$、源漏偏压为 $\mathrm{V_{ds}} = 0.05 \mathrm{V}$。
设置结束后,点击OK。将脚本传送至 Job Manager,保存为soi_device_ivc1.py
,点击开始按钮进行计算。计算在24核机器上耗时大约10分钟。完整脚本可以在这下载:soi_device_ivc1.zip。
计算结束后可以将soi_device_ivc1.log
拖动到Editor里查看。你可以注意到类似下面文本的计算流程概要,显示了所有要完成的计算:
+------------------------------------------------------------------------------+ | IV Characteristics Study | +------------------------------------------------------------------------------+ | 14 task(s) will be executed. | | | | * Update configuration | | Gate voltage: -0.25 V | | Left electrode voltage: 0.05 V | | Right electrode voltage: 0.0 V | | * Calculate TransmissionSpectrum | | Gate voltage: -0.3 V | | Left electrode voltage: 0.05 V | | Right electrode voltage: 0.0 V | | * Update configuration |
可以关注一下计算流程是如何显示的:总计14个计算任务逐个显示,每个计算任务用一个星号标记。
还可以注意到每个计算任务在执行过程中,都会先打印一个信息框:
+------------------------------------------------------------------------------+ | Executing task 1 / 14: | | Update configuration | | Gate voltage: 0.0 V | | Left electrode voltage: 0.05 V | | Right electrode voltage: 0.0 V | | Log to: ivcharacteristics_gate_voltage_0.0_Volt.log | +------------------------------------------------------------------------------+
查看输出结束后关掉Editor回到主界面。在LabFloor中选择SOI_device_ivc1.hdf5
中包含的对象,点击右侧 IV-Characteristics Analyzer 插件。
IV-Characteristics Analyzer 的主窗口显示如下。
在 IV-Characteristics Analyzer 的底部有更多信息:
在 IV-Characteristics Analyzer 的上部是计算得到的数据作图,可以在两种不通的方式间切换:
这个例子里只考虑了一个 $\mathrm{V_{ds}}$,因此只分析$\mathrm{I_{ds}}\ vs. \mathrm{V_{gs}}$ 特性。
要计算亚阈值斜率$\mathrm{SS}$,点击中间Drain-Source Voltage部分的加号,从下拉菜单中选择Subthreshold Slope。要计算$\mathrm{SS}$的区间在图上用灰色标出,区间的电压范围可以在右侧调整。
你马上可以注意到$\mathrm{SS}$的值强烈的依赖于Gate voltage range。这是因为上面计算的$\mathrm{I_{ds}}\ vs. \mathrm{V_{gs}}$不在亚阈值范围($\mathrm{V_{ds}}$ 与$\mathrm{V_{gs}}$的对数图呈线性关系)内。因此为了得到更可靠的$\mathrm{SS}$值,我们需要将$\mathrm{V_{gs}}$扩展到更大的范围,以正确包含亚阈值区间。
为了取样亚阈值区间,$\mathrm{V_{gs}}$的范围需要被扩展到$-0.9 \mathrm{V} \leq\ \mathrm{V_{gs}} \leq 0.0 \mathrm{V}$。这可以用两种方法实现:
重复第一部分中对IVCharacteristic
的计算,进行如下不同的设置:
soi_device_ivc2.hdf5
;
设置好后点OK关闭,将脚本发送到Job Manager,保存脚本为soi_device_ivc2.py
。点击开始按钮完成计算。计算在24核机器上大约需要15分钟。完整脚本可以在此下载:soi_device_ivc2a.zip。
查看计算的输出文件,你会发现这次计算只补算了第一部分没有计算的$\mathrm{V_{gs}}$点。这是因为IVCharacteristics
会自动检查已经计算过的$\mathrm{V_{gs}}$点,只计算其余$\mathrm{V_{gs}}$的点。
注意,为了避免在已经计算过的$-0.3 \mathrm{V} \leq\ \mathrm{V_{gs}}\ \leq 0.0 \mathrm{V}$的范围里重复计算,因此第二次计算的Gate source range和number of points 的选择使得 $\mathrm{V_{gs}}$ 在 $-0.3 \mathrm{V} \leq\ \mathrm{V_{gs}}\ \leq 0.0 \mathrm{V}$ 范围里的取点与第一次计算完全相同。
另外一种让 IVCharacteristics
计算更多 $\mathrm{V_{gs}}$ 点的方法是使用脚本添加要计算的点。
IV Characteristics支持非常丰富的命令,详细列表参见手册:IVCharacteristics。
将soi_device.py
脚本发送到Scripter,重复第一部分的计算设置脚本soi_device_ivc1.py
,但是把输出文件设置为‘soi_device_ivc2b.hdf5’。
设置好后将脚本发送到Editor,在Editor里IVCharacteristics后添加如下几行:
# ------------------------------------------------------------- # Kpoint sampling kpoint_grid = MonkhorstPackGrid( na=9, ) # Gate-source voltages gate_source_voltages = numpy.linspace(-0.3, 0.0, 7)*Volt # Drain-source voltages drain_source_voltages = numpy.linspace(0.05, 0.05, 1)*Volt # File name. filename = u'soi_device_ivc2b.hdf5' iv_characteristics = IVCharacteristics( configuration=device_configuration, filename=filename, object_id='ivcharacteristics', gate_regions=[0], gate_source_voltages=gate_source_voltages, drain_source_voltages=drain_source_voltages, energies=None, kpoints=kpoint_grid, self_energy_calculator=RecursionSelfEnergy(), energy_zero_parameter=AverageFermiLevel, infinitesimal=1e-06*eV, log_filename_prefix='ivcharacteristics_', ) 添加新的栅压范围 iv_characteristics.addVoltages(gate_source_voltages=numpy.linspace(-0.9, -0.35, 12)*Volt) iv_characteristics.update()
设置结束后,将脚本发送到Job Manager,保存脚本为soi_device_ivc2b.py
,点击开始按钮完成计算。完整脚本在这里下载:soi_device_ivc2b.zip。
计算结束后,你可以使用正确的数据分析获取$\mathrm{SS}$的值。
打开 IV Characteristics Analyzer,这次显示的 $\mathrm{I_{DS}}\ vs. \mathrm{V_{GS}}$ 曲线在 $-0.9 \mathrm{V} \leq\ \mathrm{V_{GS}}\ \leq -0.35 \mathrm{V}$ 范围里线性很好,因此在此区间可以通过线性拟合获得亚阈值斜率$\mathrm{SS}$。
点击中间区域的加号按钮,下拉菜单选择Subthreshold Slope,将电压区间调整为 -0.9V 到 -0.35V。
计算得到的$\mathrm{SS} = 123\ \mathrm{meV/dec}$,与实验值$\mathrm{SS} = 123\ \mathrm{meV/dec}$ 一致。3)
接下来,你可以计算漏极诱导势垒降低(Drain induced barrier lowering,DIBL)。为此,需要在$\mathrm{V_{DS} = 0.3 V}$时再计算一条$\mathrm{I_{DS}}\ vs. \mathrm{V_{GS}}$曲线。
将soi_device_ivc2b.py
传送到Scripter,添加Study Object → IV Characteristics,按下面修改参数:
点击OK关闭窗口,将Results file名字改为‘soi_device_ivc3.hdf5’。
将脚本传送到Job Manager,保存脚本为soi_device_ivc3.py
,点击开始按钮完成计算。完整脚本可以在此下载:soi_device_ivc3.zip
查看log文件,你会发现IV Characteristics这次只计算了$\mathrm{V_{ds}} = 0.3 \mathrm{V}$ 的曲线,使用 $\mathrm{V_{ds1}} = 0.05 \mathrm{V}$ 作为出发点。
计算结束后,打开IV-Characteristics Analyzer显示出这两个源漏偏压($\mathrm{V_{ds1}} = 0.05 \mathrm{V}$ 和 $\mathrm{V_{ds1}} = 0.3 \mathrm{V}$)的曲线。
接下来分析DIBL。电极中间区域Additional Analysis旁的加号,选择Drain Induced Barrier Lowering。
DIBL以无量纲形式给出,因此计算值为 622 mV/V。
计算DIBL时,可以有几个参数可以调节:
计算得到的DIBL比实验测量的结果大很多,这可以解释为DIBL对掺杂情况和几何结构非常敏感。对于超短的栅极长度,DIBL值通常在0.1到1之间。
在IVCharacteristics计算结束后,可以补充其他性质的计算,这时只要在脚本中读入IVCharacteristics,在后面补充类似:
iv_characteristics.addProjectedLocalDensityOfStates( gate_source_voltages, drain_source_voltages) iv_characteristics.addAnalysis( gate_source_voltages, drain_source_voltages, HartreeDifferencePotential) iv_characteristics.update()
其中的gate_source_voltages
和drain_source_voltages
可以用Python list格式指定,不需要计算全部的电压点的性质。