4. PDK热模型构建:材料热参数库、边界条件与网格策略
硅光芯片的热管理仿真精度,直接取决于三个核心要素:材料热参数库的准确性、热边界条件的物理一致性以及网格划分策略的适配性。本章将系统讲解如何在PDK框架下构建标准化的热仿真模型,确保从器件级到芯片级的仿真结果可复现、可对比。
4.1 材料热参数库(Si、SiO₂、SiN、金属)
材料热参数是热仿真的基础。硅光工艺平台中,核心材料包括硅(Si)、二氧化硅(SiO₂)、氮化硅(SiN)以及常用金属(Al、Cu、TiN)。下表列出了典型温度(300 K)下的关键热物性参数,PDK中应以此为标准值进行统一。
| 材料 | 热导率 κ (W/m·K) | 比热容 Cp (J/kg·K) | 密度 ρ (kg/m³) | 热膨胀系数 CTE (ppm/K) | 备注 |
|---|---|---|---|---|---|
| Si(单晶硅) | 130 ~ 150 | 700 | 2329 | 2.6 | 体硅,掺杂后略有下降 |
| SiO₂(二氧化硅) | 1.4 | 730 | 2200 | 0.55 | PECVD / 热氧化 |
| SiN(氮化硅) | 2.0 ~ 3.0 | 710 | 3100 | 3.2 | LPCVD / PECVD |
| Al(铝) | 237 | 897 | 2700 | 23.1 | 电极与焊盘 |
| Cu(铜) | 401 | 385 | 8960 | 16.5 | 厚金属走线 |
| TiN(氮化钛) | 20 ~ 30 | 545 | 5220 | 9.4 | 加热器电阻层 |
PDK参数库构建要点:
- 所有材料参数应定义为PDK变量(如
MAT_SI_K、MAT_SIO2_CP),便于全局更新。 - 对于SiN和金属薄膜,热导率可能因沉积工艺和厚度而显著变化,建议在PDK中提供“典型值”和“工艺角”两套参数。
- 热膨胀系数(CTE)在热-力耦合仿真中必须启用,但在纯热传导仿真中可忽略。
4.2 热边界条件设置
热边界条件决定了仿真系统与外界的热交换方式。在硅光芯片仿真中,常见的边界条件类型及其物理含义如下:
- 等温边界(Dirichlet条件): 指定边界温度恒定,常用于模拟芯片底部与热沉(Heat Sink)的接触面,典型值设为 300 K(室温)。
- 热通量边界(Neumann条件): 指定边界上的热流密度,适用于模拟加热器产生的焦耳热或激光器注入的热功率。
- 对流边界(Robin条件): 通过传热系数 h 和环境温度 T_amb 描述空气或封装材料的自然/强制对流冷却。典型 h 值:自然对流 5~15 W/m²·K,强制风冷 20~100 W/m²·K。
- 绝热边界: 默认边界条件,适用于对称面或热隔离良好的区域,表示无热流通过。
工程案例边界设置示例(马赫-曾德干涉仪热调谐仿真):
- 芯片底部:等温边界,T = 300 K(假设贴装于铜热沉)。
- TiN加热器表面:热通量边界,Q = 1e6 W/m²(对应典型电功率密度)。
- 芯片上表面及侧壁:对流边界,h = 10 W/m²·K,T_amb = 300 K。
- 对称面(如波导中心线):绝热边界。
4.3 网格划分策略
网格质量直接影响仿真收敛性和温度场计算精度。硅光芯片结构具有“大衬底 + 微纳波导”的多尺度特征,需要采用分区网格策略。
下表总结了不同区域的网格划分建议:
| 区域 | 特征尺寸 | 网格类型 | 最大单元尺寸 | 说明 |
|---|---|---|---|---|
| 硅波导芯层 | 220 nm × 500 nm | 六面体/四面体 | 50 nm | 至少3层网格跨越波导高度 |
| SiO₂上包层 | 1 ~ 3 μm | 四面体 | 200 nm | 过渡区域,可渐变 |
| TiN加热器 | 100 nm × 2 μm | 六面体 | 50 nm | 焦耳热源区域,需加密 |
| 硅衬底 | 500 ~ 750 μm | 四面体/扫掠 | 20 ~ 50 μm | 远离热源区域可粗化 |
| 金属焊盘 | 1 ~ 5 μm | 四面体 | 500 nm | 仅需解析温度梯度 |
网格划分避坑指南:
- 避免在波导-包层界面处产生“阶梯状”网格,应使用边界层网格(Boundary Layer Mesh)或局部加密。
- 加热器与波导之间的间距(通常为 0.5~1 μm)至少需要 3~5 层网格,否则热耦合计算会严重失真。
- 对于瞬态仿真,时间步长应与最小网格尺寸匹配,遵循
Δt < ρ·Cp·Δx² / (6·κ)的稳定性条件。
4.4 热模型构建流程总览
下图展示了从PDK材料库到最终热仿真模型的完整构建流程,帮助理解各环节的衔接关系。
4.5 网格划分策略的二维示意
为了更直观地展示多尺度网格划分策略,下图以典型的硅光波导截面为例,说明不同材料区域的网格密度分配。
4.6 PDK热模型参数化代码示例
以下代码展示了在COMSOL Multiphysics中通过Java API或MATLAB脚本设置PDK热模型参数的典型片段,实际PDK开发中可封装为函数库。
// PDK热模型参数设置示例(Java API风格)
// 材料参数定义
model.material("mat1").propertyGroup("def").set("thermal_conductivity", "150[W/(m*K)]"); // Si
model.material("mat2").propertyGroup("def").set("thermal_conductivity", "1.4[W/(m*K)]"); // SiO2
model.material("mat3").propertyGroup("def").set("thermal_conductivity", "2.5[W/(m*K)]"); // SiN
model.material("mat4").propertyGroup("def").set("thermal_conductivity", "237[W/(m*K)]"); // Al
// 边界条件设置
model.physics("ht").feature("temp1").set("T0", "300[K]"); // 等温边界
model.physics("ht").feature("heat1").set("Q0", "1e6[W/m^2]"); // 热通量边界
model.physics("ht").feature("conv1").set("h", "10[W/(m^2*K)]"); // 对流边界
model.physics("ht").feature("conv1").set("Tinf", "300[K]");
// 网格划分策略
model.mesh("mesh1").feature("size1").set("hmax", "50[nm]"); // 波导区域最大单元
model.mesh("mesh1").feature("size2").set("hmax", "200[nm]"); // 包层区域
model.mesh("mesh1").feature("size3").set("hmax", "20[um]"); // 衬底区域
PDK集成建议: 将上述参数定义写入PDK的
thermal_config.json 或 .pdk_params 文件中,仿真时直接调用,避免手动重复输入。同时建议为每种标准器件(如MMI、DC、加热器)预置网格模板,实现“一键网格划分”。