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材料库到最终热仿真模型的完整构建流程,帮助理解各环节的衔接关系。

PDK热模型构建流程 PDK热模型构建流程 材料热参数库 PDK几何模型导入 热边界条件设置 网格划分策略 求解器设置与运行 温度场结果后处理 关键检查点 • 材料参数是否与PDK一致 • 边界条件是否物理合理 • 网格质量是否满足收敛

4.5 网格划分策略的二维示意

为了更直观地展示多尺度网格划分策略,下图以典型的硅光波导截面为例,说明不同材料区域的网格密度分配。

波导截面网格划分示意 波导截面网格划分策略(局部放大) 硅衬底(粗网格:20~50 μm) SiO₂ 下包层(过渡网格:200 nm) Si 波导芯(加密网格:50 nm) SiO₂ 上包层(过渡网格:200 nm) TiN 加热器(加密网格:50 nm) 间距 0.5~1 μm 需3~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、加热器)预置网格模板,实现“一键网格划分”。