干阻变存储器(RRAM)这块的同行,应该都有同感:实验上明明能测到很漂亮的双极性I-V回线,可导电细丝到底是怎样一点一点长出来的?局部焦耳热集中在哪、温度大概能到多少?氧空位是怎么在电场驱动下排成一条丝的?这些东西用实验手段很难直接看,只能靠模型和仿真去“还原现场”。我前两年开始系统地用COMSOL Multiphysics做丝状RRAM器件的全面数值模拟,也就是把电场、热场、氧空位浓度场这些耦合在一起,在一个模型里同时算出来。这条路走通之后,很多实验现象都能对上了:SET电压为什么是这个值、RESET为什么会出现负微分电阻行为、为什么器件一致性差,都能从模拟结果里找到解释。这篇就把我的建模思路、控制方程、COMSOL实操配置、网格和求解器设置、后处理套路以及踩过的坑,完整梳理一遍,给同样被器件物理“看不到”折磨的人一个可直接复现的参考。
1. 为什么丝状RRAM模拟必须走多物理场这条路
1.1 丝状RRAM的工作机制决定了它先天需要多场耦合
丝状RRAM最基本的结构就是金属-绝缘体-金属(MIM)三明治。以氧空位型(VCM)为例,介质层用的是HfO2、TaOx或者TiOx这类氧化物,上下电极通常是Pt、TiN、TaN。器件初始处于高阻态,因为在介质层里缺少导电通路;给它施加一个足够高的正向电压(SET过程),氧空位在电场作用下向局部区域聚集,浓度高到一定程度就形成一条贯穿上下电极的导电细丝,器件跳变到低阻态。然后施加反向或者合适的电压(RESET过程),细丝在焦耳热辅助下发生氧空位回迁或者局部氧化断裂,器件又回到高阻态。
注意,这里面“电场驱动离子”和“焦耳热辅助断裂”是两个完全不同的物理过程,一个是电化学/离子输运,一个是热电耦合,它们在时间尺度和空间尺度上的行为都不一样。你在实验里看到的阻变现象,实际上是这两个过程共同作用的结果。如果一个模拟里只算电场,不考虑温度,那SET过程还勉强能描述个大概,但RESET过程基本没法解释,因为细丝断裂的驱动力里焦耳热是主角。同样,如果不算氧空位浓度的动态演化,只做纯电学模拟,那就退化成一个非线性电阻模型了,几何位置和浓度分布完全丢失,也谈不上“全面数值模拟”。
另一个容易被忽略的点是,这几个场之间是双向强耦合。氧空位浓度分布会改变局部电导率,电导率影响电流和焦耳热,焦耳热升高又会加速离子迁移(迁移率随温度指数上升),反过来又改变浓度分布。这种正反馈机制恰恰就是导电细丝“突变式”形成的原因。想要捕捉这种突变,必须把电场、热场、浓度场放在同一个求解框架里耦合迭代,而不是把几套方程割裂开。COMSOL天然适合干这个,它本来就是多物理场耦合起家的。
1.2 COMSOL做这类模拟到底强在哪
我早期也考虑过别的路线。TCAD软件(比如Sentaurus)做器件仿真很成熟,但它的强项是半导体载流子输运,对离子迁移、氧空位浓度演化这类“材料级”自定义机理支持偏弱,而且license价格不便宜,上手门槛也不低。用纯Python自己写有限差分或者有限元程序,自由度高,但要把电-热-浓度三种场做紧耦合、处理复杂几何边界、做网格自适应,工程量相当可观,调试周期很长。COMSOL的定位正好卡在中间:你不需要从零写求解器,直接用AC/DC模块算电场、用传热模块算温度、用PDE模块写自定义方程,然后通过“多物理场耦合”节点把它们绑在一起。
我真正觉得COMSOL好用的地方有四个。
第一,PDE模块极度灵活。导电细丝演化并不存在一个内置的“RRAM物理场接口”,核心的氧空位输运方程需要自己写,这恰恰是COMSOL最擅长的地方。你可以在“一般形式偏微分方程”节点里直接输入漂移-扩散方程,所有系数都可以定义成电场、温度、浓度的函数,复杂依赖关系都能表达。
第二,参数化扫描和辅助扫描非常成熟。丝状RRAM模拟需要扫电压、扫厚度、扫迁移率、扫扫描速率,COMSOL的Parametric Sweep功能配合合适的求解器,可以批量跑,数据自动整理成表格,省去大量重复建模时间。
第三,后处理可视化能力强。导电细丝长什么样、电流从哪里集中流过、最热点的位置在哪里,这些直接出云图、流线图和动画,放到论文里或者组会汇报里都很有说服力。
第四,软件生态里的网格工具、自适应网格细化、误差估计这些工程能力是自研代码很难追上的。RRAM模型强非线性,网格稍有不好就发散,COMSOL的网格质量控制能减少很多这类问题。
2. 立项第一步:搭好物理模型与控制方程
2.1 用漂移-扩散方程刻画氧空位主导的细丝演化
整个模型的物理核心是一个漂移-扩散方程。氧空位在介质层里的运动受两种作用支配:浓度梯度导致的扩散,以及电场导致的漂移。我用的方程是:
dn/dt = ∇·(D∇n - μn∇V) + G - R其中n是氧空位浓度,D是扩散系数,μ是电场迁移率,V是电势,G是生成项,R是复合/湮灭项。
这里有几个点要注意。
D和μ不是随便给的,它们本身是温度的函数,通常用Arrhenius形式描述:
D = D0 * exp(-Ea / (kB * T)) μ = μ0 * exp(-Em / (kB * T))Ea和Em分别是扩散活化能和迁移活化能,在HfO2体系里,这两个值经验上都在0.5到1.2 eV量级。这组公式体现了焦耳热的核心作用:温度一升高,D和μ指数增长,离子迁移瞬间加速,细丝快速生长。
μ和D之间可以用爱因斯坦关系联系:μ = qD/(kB T)。但实际薄膜材料里,由于缺陷能级的复杂性,直接套爱因斯坦关系往往会低估迁移率,我通常的做法是D用扩散实验值,μ按电场驱动I-V曲线拟合,然后用爱因斯坦关系做一个粗略自洽性检验。
电导率σ也要写成氧空位浓度的函数。最简单的近似是线性关系,σ = σ0 + q·μn·n,其中σ0是本征泄漏电导,μn是氧空位的“导电贡献载流子迁移率”。更精细的做法是引入渗流模型,设一个临界浓度阈值,低于阈值电导率指数下降,这样细丝和非细丝区域电导差异更大,仿真出的开关比更真实。
设置G和R项时,我一般只在高压和高温条件下打开生成项,模拟氧空位的产生(例如氧离子逸出留下氧空位),同时设置一个简单的二阶复合项R = k_r·n·c_o(c_o为氧间隙浓度),否则模型会变成纯粹的“无源输运”,模拟不出反复擦写后的退化现象。
2.2 焦耳热效应不是锦上添花,而是核心机制之一
在电场模块的基础上,要叠加一个瞬态热传导方程:
ρCp ∂T/∂t = ∇·(k∇T) + Q其中Q是焦耳热源项,在COMSOL里通过“电流-传热”耦合自动实现,表达式为:
Q = J·E = σ|∇V|²电流密度越大、电场越强的地方,产热越大。在细丝形成的瞬间,电流集中在纳米级通道里,局部电流密度可以达到10^10 A/m²量级,焦耳热功率密度巨大,局部温度飙升到几百到上千K完全是正常的。
这个温度场不是仿真的“副产品”,而是机理的一部分。它至少有三个作用:
第一,加速离子迁移。温度升高一个量级,迁移率可能提高几个数量级,是SET过程雪崩式推进的关键。第二,RESET过程在高温下引发细丝断裂,焦耳热让细丝根部温度接近氧化物软化或分解温度,造成局部结构改变。第三,影响器件的可靠性,温度过高会造成不可逆损伤,这也能通过模型预测出来。
在COMSOL里开启焦耳热很简单:物理场列表里同时选“电流(ec)”和“固体传热(ht)”,然后在“多物理场”节点添加“焦耳热”耦合。它会自动把电流场和热场关联起来,你只需要把材料的热导率、密度、比热容、电导率填对就行。
2.3 细丝成核与涨落:局域场增强和随机性怎么体现
研究RRAM的人都知道,实际器件的SET/RESET电压是有分布的外围的,cycle-to-cycle variability很大。造成这种波动的一个重要原因就是细丝成核位置和生长路径存在随机性,根本上是介质层里的本征缺陷分布不均匀造成的。
纯确定性模型只能模拟出一个“理想化”的细丝演化过程,反映不了波动。想要仿真变异性,必须在模型里加入“局域化”的初始扰动。我的做法是在初始氧空位浓度场里叠加随机涨落:
n(t=0) = n0 * (1 + δ·rand)δ通常在百分之几到百分之几十之间,rand是满足正太分布的随机数。COMSOL里可以通过“定义”节点下的“随机函数”生成空间随机分布,也可以在初始条件里用表达式描述。
局域场增强效应是另一个关键。当某个区域氧空位浓度升高时,该区域的电导率升高,局部电场会被重新分布,形成一个正反馈中心。这个效应可以用一个浓度相关的电场增强因子来描述,比如:
E_eff = E * (1 + α·(n/n_max)^β)α决定增强强度,β决定增强的非线性程度。这个公式可以理解为:浓度高的小区域相当于一个微小的“电漏斗”,把周围的电场集中过来,进一步驱动氧空位往那里汇聚。有了这个项之后,细丝的形状会更接近实际器件里观察到的锥形或者柱形,而不是均匀的一整块。
3. 从零开始搭COMSOL模型:实操流程与关键参数
3.1 几何建模:用工作平面搭出MIM三明治结构
我推荐用2D轴对称模型而不是完整3D模型。原因很直接:常规RRAM器件结构近似圆柱体,导电细丝也是近似轴对标分布的(虽然实际有歪斜,但统计上轴对称是个很好的近似),2D轴对称计算量只有3D的几十分之一,而物理结果差不了太多。
COMSOL里建MIM三明治结构非常快。建模思路是:先创建一个2D轴对称坐标系,工作平面选在r-z平面,用矩形命令画出三层或五层结构。以HfO2基VCM为例,结构从下往上依次是:底电极Pt,厚度50 nm,半径200 nm;介质层HfO2,厚度20 nm,半径200 nm;顶电极TiN,厚度50 nm,半径200 nm。因为电极是导电的,仿真核心区域其实是介质层,为了捕捉细丝,焦点要放在HfO2层。
这里提一下热搜里常出现的“comsol工作平面的作用”。在3D建模里,工作平面相当于你画草图的参考平面;但在2D轴对称建模里,工作平面就是“全局坐标系下的制图界面”,直接画矩形就行,不需要额外操作。很多新手把简单问题复杂化了,非要建3D、画圆柱体,其实2D轴对称足够。
几何很简单,真正要注意的是单位。在COMSOL的“几何”节点里,模型单位默认是m,如果你直接用nm数值画图,画出来的几何会小得看不见。我的习惯是把几何单位改成nm,或者全部用物理尺寸表达:矩形宽度输入200[nm],高度输入20[nm]。这样后处理时云图坐标轴直接显示nm,非常直观。
3.2 物理场接口与边界条件配置
几何搭好后,开始加物理场。我的标准组合是三个接口:
- 电流(ec):用于计算电势和电流分布。
- 固体传热(ht):用于计算温度分布。
- 一般形式PDE(g):用于求解氧空位浓度输运方程。
以下是边界条件的标准配置。
电流接口:底电极底边设接地(V=0),顶电极顶边设电压V_applied。电极侧壁默认电绝缘。如果模拟电形成过程,还可以加一个电流限制(电流源模式),避免电流无限飙高。
传热接口:底电极底部设固定温度(T=300K),作为散热底座。顶电极顶部和侧壁设对流/热通量边界,热通量系数设置在1到10 W/(m²·K)量级。如果仿真时间很短(纳秒级),热边界条件对中心区域的影响很小,侧壁甚至可以设绝热。
PDE接口:氧空位浓度n在介质层内部求解,上下电极区域不参与PDE求解,因为电极里没有氧空位输运。边界上浓度通量设为零(No Flux)。生成项G和复合项R按前面说的表达式输入。
这里有一个很关键的操作细节:把三个物理场的求解域分开设置。电流接口和传热接口求解整个MIM结构,PDE接口只求解HfO2层。COMSOL支持每个物理场单独选择域,这在多物理场建模里非常重要,否则电极区也求解氧空位输运,结果就完全乱套了。
3.3 材料参数怎么给才贴近真实器件
材料参数会直接决定仿真结果的量级。我在做HfO2基器件时用的参数如下表:
| 参数 | HfO2 | Pt | TiN | 单位 |
|---|---|---|---|---|
| 相对介电常数 | 25 | 1 | 1 | 1 |
| 电导率 | 1e-8(初始) | 9.4e6 | 4e6 | S/m |
| 热导率 | 1.4 | 71.6 | 28.9 | W/(m·K) |
| 密度 | 9700 | 21450 | 5200 | kg/m³ |
| 比热容 | 120 | 130 | 550 | J/(kg·K) |
| 扩散系数D0 | 1e-6 | - | - | m²/s |
| 迁移率μ0 | 1e-10 | - | - | m²/(V·s) |
| 活化能Ea | 0.7 | - | - | eV |
注意,HfO2的“电导率”不是常数。在模拟中,我把它定义成氧空位浓度n的函数,前面说过,σ = σ0 + q·μn·n。n的初始值设为1e24 m⁻³量级,当n高于1e27 m⁻³时,电导率迅速上升到半导体-金属过渡区间。这个浓度阈值就相当于“细丝形成”。
D0和μ0怎么定?两种途径。一种是找同体系文献里的值,HfO2基VCM的D0通常在1e-6到1e-8之间,μ0在1e-9到1e-12之间。另一种是用自己的I-V实验数据反推。我建议先给一个合理初值跑通模型,再拿实验I-V曲线的SET电压位置去校调μ0——这一步是让仿真“活”起来的关键。
还有一个小坑:HfO2的热导率在薄膜形态下会比块材低很多,因为界面散射严重。块材HfO2热导率约1.4 W/(m·K),但10nm薄膜的有效热导率可能只有0.3到0.5 W/(m·K)。我一开始用块材值,导致仿真温度偏低,细丝生长速率偏慢,后来换成薄膜值才和实验对上。这点特别容易忽略。
3.4 网格划分与求解器设置:决定收敛和速度的细节
网格划分是RRAM仿真里最容易出问题、也最考验经验的一步。因为这个模型的变量梯度极大——细丝区域直径可能只有几纳米,浓度变化跨越几个数量级,而外围区域几乎没有变化。普通均匀网格要么太密跑不动,要么太粗丢失物理细节。
我的划分策略是三层递进。
介质层中心区域(r<10 nm)是细丝预期生长区,网格尺寸控制在0.5到1 nm。这里绝对不能用太粗的网格,否则会得到“网格诱导细丝”——细丝沿着网格线长,而不是沿着物理场长,这就是典型伪物理。
介质层外围(10 nm < r < 200 nm)用网格尺寸5到10 nm,因为这里不是关键区域。
电极区域是均匀电场和热流的区域,可以用自由三角形网格配合边界层,网格尺寸20到50 nm都没问题。电极顶底还要加边界层网格,以准确捕捉界面热流。
求解器配置方面,我用的是瞬态研究。电极电压不是一步直接施加,而是做一个斜坡电压Vin = S·t,S是扫描速率(比如1e6 V/s到1e9 V/s)。这个做法比阶跃电压更贴近实际测试,也更符合器件物理。求解器用PARDISO直接求解,误差容差设1e-5。由于方程强非线性,建议打开“参数化扫描的辅助扫描”功能,先把初值设置成上一时刻的解,能显著提升收敛性。时间步长用COMSOL默认自适应即可,但要在电压变化快的阶段限制最大步长,避免错过细丝突变点。
关于“comsol移动网格”这个热搜词,简单说一句。理论上可以用移动网格来模拟导电细丝的几何拓扑变化,但在RRAM丝状模型中,我更推荐用浓度场的隐式捕捉。就是通过氧空位浓度分布来定义导电细丝空间范围,而不是真的把网格拉长。浓度场方法的好处是数格稳定,不需要担心大变形导致的网格畸变;移动网格在描述几何尖锐形核点时会遇到网格翻转,调试成本极高,性价比很低。
4. 结果分析和后处理:把仿真数据变成科研结论
4.1 导电细丝动态演化的可视化判读
仿真跑完之后,最兴奋的部分到来了:看细丝是怎么长出来的。我习惯同时开三个视图——氧空位浓度分布云图(表征细丝位置)、电流密度流线图(表征电流通道)、温度分布云图(表征热热点区)。
细丝的生长过程通常是这样的:外加电压升高后,氧空位浓度在局部率先超过阈值,形成“种子点”,然后种子点向对面电极方向延伸,最终在某一瞬间电流急剧跃升,细丝贯通。从云图里可以看到一条细长的低阻通道从阴极向阳极生长,颜色从蓝色快速变成红色,同时电流密度流线开始向该区域聚拢,温度云图上出现一个明显的热点。
有几个需要重点判读的指标:
- 最大氧空位浓度是否达到预设的“细丝贯通阈值”。
- 浓度场的直径分布。这决定了器件低阻态的电阻值。
- 热点的峰值温度。如果仿真里峰值温度超过介质材料熔点,说明该条件下器件可能发生永久损坏,这对电形成电流的设定有指导意义。
我建议在仿真时把多个时间步的云图导出成PNG序列,再用外部软件合成GIF或视频,放到汇报里非常生动,评审人和导师一眼就能理解你模拟出的物理过程。这类动态可视化可以通过COMSOL的“动画”功能自动生成,具体操作为:在后处理节点里选浓度云图,然后选“动画文件”导出。
4.2 I-V特性曲线提取与实验对照
光看云图还不够,最后要从模型里提取出可定量对比的I-V特性曲线,才能和实验数据印证。提取方法有两种。
第一种,直接用电流场积分。在电极表面定义一个边界积分算子,积分电流密度在顶电极面上的法向分量,就能得到总电流I。具体做法是:在“派生值”节点里选边界积分,表达式设为ec.nJx(或ec.nJz,取决于坐标轴方向),边界选顶电极表面,求解时勾选“存储计算值”,就能随着时间输出电流值。
第二种,用“全局计算”节点先计算总电流,再结合电压斜坡的定义,生成I-V数据。将电压用Vin=S·t表达,电流在每次时间步计算后,就能得到一条I-V曲线:横轴是电压,纵轴是电流,画出来就是经典的滞回曲线。
把仿真I-V和实验I-V放在同一张图里对比,要点如下:
SET过程的突变点电压是否吻合。如果仿真SET电压明显低于实验,说明迁移率设置偏高,适当降低μ0再跑一遍。如果明显高于实验,则反之。
低阻态电流幅度是否在同一量级。如果仿真电流低几个数量级,多半是细丝半径偏细,需要调整迁移率或浓度阈值。
RESET过程是否出现“负电阻”形态。真实的RRAM在RESET瞬间电流会突然下降,仿真也应当复现类似行为。如果仿真里没有RESET,可能是扫描电压还没达到断裂电压,或者焦耳热不够。
为了保证数据导出方便Excel处理,我习惯在研究设置里把“在时间步处计算”打开,并指定一个均匀的电压步长。然后在“派生值”里把所有数据“导出→表”,再右键“表格→另存为文本”,COMSOL会自动生成一个CSV文件,包含时间、电压、电流等所有列。到这一步,你用Origin或者Python都能继续做图。
4.3 参数化扫描:用一组仿真替代一组实验
数值模拟的核心价值之一,是可以在实验之前先把参数空间扫一遍,缩小实验设计范围。COMSOL的Parametric Sweep我可以说是重度使用了,效果非常好。
举例,我做过的三个典型扫描:
第一,扫描介质层厚度(10 nm、15 nm、20 nm、25 nm)。结论和实验一致:介质层越厚,SET电压越高,因为建立同样强度电场需要更高的外加电压。这个规律可以直接用来指导器件工艺设计。
第二,扫描底部电极的热导率。用高热导率电极(Pt)和低热导率电极相比,RESET电压和温度分布显著不同。热导率高的电极散热快,同一电流下温度低,需要更大的电压才能把细丝烧断,这解释了为什么不同电极组合的器件RESET窗口不一样。
第三,扫描电压扫描速率。扫描速率快,SET电压会偏高,因为离子迁移需要时间,这对应了实验中常见的“扫描速率相关性”。
COMSOL的参数化扫描可以自动生成一个大表格,每个参数组合对应一组电流电压数据。我会在扫描完成后用一个“结果→派生值→组”统一处理,把不同参数的结果叠加画在同一张图里,所有曲线颜色不同,一眼就能看出趋势,拿到组会上当定论依据,说服力远超“我觉得”。
5. 实操中的常见问题和避坑指南
5.1 几何导入报错:SolidWorks转STEP进COMSOL的警告处理
在COMSOL用户论坛上,隔三差五就能看到“SolidWorks另存为STP导入COMSOL有大量警告”的帖子。我做RRAM模型倒是很少遇到这个问题,因为MIM结构太规矩了,直接在COMSOL里画就行。但如果你确实拿到一个复杂电极结构(比如立体交叉阵列、非对称电极),必须从SolidWorks导入,那有几条经验值得提前说。
STEP格式在SolidWorks另存时,默认单位是毫米,COMSOL导入时如果没有正确识别单位,会把几何放大1000倍。这几乎是我见过的最常见的“警告”根源,几何尺寸错得离谱,后面物理场和网格全都白做。解决办法是导入时在“几何→导入”节点里明确设置导入单位为mm,或者导入后调整几何缩放因子为0.001。
另外,STEP文件里的曲面有时会因原始建模问题出现微小缝隙或重叠。COMSOL在导入时会尝试自动修复,但有时会弹出一串警告:“检测到自相交曲面”“实体修复导致几何退化”。我的经验是:简单几何出了问题,最好不要在COMSOL里硬修,回到SolidWorks把模型简化一下再导出。复杂几何就先在COMSOL里试“删除域”功能把多余曲面删掉,再手动补一个矩形面。
对于RRAM器件来说,我的核心建议还是:能原生建几何就不要导入。这种多层薄膜结构在COMSOL里用矩形+旋转就能搞清,不需要CAD介入。把CAD留给真正复杂的立体电极结构。
5.2 网格带来的非物理细丝
这是我在初学时踩过最深的一个坑。当时我在HfO2层用了比较粗的自由三角网格(网格尺寸大约10 nm),跑出来“细丝”的形貌是规则三角形的锯齿状,而且位置和形状跟网格的边界重合,看起来特别假。这就是典型的“网格伪影”,不是真实物理。
后来我做了两组网格独立性验证:一组把细丝区域网格尺寸设为5 nm,另一组设为1 nm,对比SET电压和细丝形状。5 nm和10 nm的结果差别很大,但1 nm和2 nm的结果基本一致,于是确定网格尺寸至少要细化到2 nm以内,才能保证细丝形状不被网格绑架。
做纳米级器件模拟,一定要有这个意识:在物理量变化尺度远远小于网格尺寸的区间,结果是不可信的。RRAM导电细丝直径通常只有几纳米,你的网格至少要能“容纳”几个节点来刻画这个空间尺度。我建议每次调整几何或物理参数后,都做一次“网格尺寸减半”的对照测试,如果结果变化小于可接受范围,就说明网格收敛了。
5.3 求解发散和收敛慢的排查方法
RRAM模型的强非线性特征决定了初始阶段很容易发散,几乎每次搭新模型都会遇到一次。常见的表现是:求解器报告“找不到初始值”“最大迭代次数已到”,或干脆数值溢出(NaN)。
排查这种问题,我有一套固定的流程。
第一步,把所有依赖浓度的耦合降到最低,确认基础电场和热场能正常收敛。我会把氧空位浓度固定成初始值,只算电流和传热。如果连这个都发散,说明是网格或者边界条件问题。
第二步,逐步打开耦合。把电导率浓度依赖打开,但把迁移率调低一个量级,让非线性变弱。能跑通后再把迁移率调回目标值。这个过程虽然繁琐,但能让出问题的环节浮出水面。
第三步,如果是时间步进中途发散,大概率是时间步长过大导致浓度突变。解决办法是在电压变化最快的阶段限制最大时间步长,比如把最大时间步长设为总扫描时间的千分之一。还可以打开“辅助扫描”或“阻尼因子”,把初始阻尼调到很小,减小每一步的扰动。
第四步,检查PDE方程是否有量纲问题。RRAM模型的浓度、迁移率、电场单位如果没处理好,边界通量项很容易溢出。我经常犯的错误是漏写单位:浓度单位用了1/cm³,而迁移率单位用了m²/(V·s),最后得到的通量比正常范围大了10^6倍。这个小偷懒能让你排查一整晚。
5.4 仿真和实验结果系统性偏差的可能原因
如果你把仿真结果和实验数据对比后发现SET电压总是差几倍、电流幅度差几个量级,先别急着怀疑模型写错了,更常见的原因是材料和界面效应没被纳入模型。
首先是界面层。实际器件里,电极和介质层界面处往往存在几纳米厚的界面氧化物(比如TiN电极在沉积过程中会部分氧化形成TiO_xN_y),这一层跟HfO2的性质差别很大,会显著影响离子输运和电场分配。我在模型里加了一层2 nm厚的界面层以后,很多实验现象(比如forming电压偏高、低阻态电流偏小)就自然解释了。
其次是尺寸效应。介质层的介电常数、电导率、热导率都与块材不一样,特别是几个纳米厚的介质,介电常数可能比块材小30%以上。把这些参数改成薄膜实测值,仿真曲线明显向实验靠拢。
然后是参数提取方法。我刚才反复强调的迁移率μ0和活化能Ea,是决定SET/RESET电压最敏感的参数。更严谨的做法是:针对同一器件工艺,先做一组不同温度下的实验I-V曲线,用阿伦尼乌斯拟合得到活化能,再把活性能代入模型反推μ0。这样的“实验标定+仿真预测”再闭合一次,仿真置信度才会高。
写在最后
折腾了这么久COMSOL和丝状RRAM模拟,我自己最大的体会是:仿真最大的价值不是给你一个“精确的绝对数值”,而是帮你在实验之前先把物理图像想清楚。你可以在模型里“看”到细丝怎么长、热怎么聚、I-V为什么突然跳变,这种直觉对设计实验方案、筛选材料组合、判断异常现象非常有帮助。以前我拿到一批性能奇怪的器件,第一反应是猜想某个界面效应,现在我会先搭一个简化模型,把可能性一条条过滤掉,效率高了很多。
再分享一个小技巧给刚入门的人:与其一开始就追求把所有物理细节都塞进模型,不如先搭一个最简的“电场+漂移扩散”模型,跑出I-V回线雏形,再逐步加上焦耳热、随机涨落、界面层这些复杂度。每加一层复杂度,都对比一下实验结果,确认它改善了还是搞乱了模拟。这样迭代出来的模型,每个机制的作用你都心里有数,写论文时解释起来也理直气壮。最后,务必把每一步的几何、参数、网格配置都记录下来,因为RRAM模型对参数极其敏感,过了三个月你再想复现当时的仿真,会发现完全不记得当初是凭什么收敛的,一份完整建模日志能救你老命。