4. SDE参数化结构生成

在Sentaurus Workbench中,SDE(Sentaurus Device Editor)承担着器件结构定义的核心职责。所谓参数化结构生成,本质上是把器件的几何尺寸、网格分布和掺杂剖面全部表达为可调参数的函数,使得改变一个参数就能自动重建整个结构。SDE支持Scheme和Tcl两种脚本语言,二者能力等价,选择哪一种主要取决于团队习惯和已有脚本资产。本节以Scheme为主线,同时说明Tcl的对应写法。

参数化几何:从坐标到函数

参数化几何的关键在于把"画一个矩形"变成"画一个由参数决定的矩形"。SDE提供了一套几何原语,包括sdegeo:create-rectangle、sdegeo:create-polygon、sdegeo:create-circle等,它们接受坐标点作为输入。参数化的做法是在脚本开头定义一组变量,然后在创建几何时引用这些变量。

(define Lg 0.05)      ; 栅长 50nm
(define Tox 0.002)    ; 栅氧厚度 2nm
(define Wsi 0.10)     ; 硅膜厚度 100nm
(define Lsd 0.03)     ; 源漏延伸长度 30nm

; 以栅中心为原点,构建硅膜
(sdegeo:create-rectangle
  (position (- 0 (+ (/ Lg 2) Lsd)) 0 0)
  (position (+ 0 (+ (/ Lg 2) Lsd)) Wsi 0)
  "Silicon" "R.Si")

; 栅氧覆盖栅极下方
(sdegeo:create-rectangle
  (position (- 0 (/ Lg 2)) Wsi 0)
  (position (+ 0 (/ Lg 2)) (+ Wsi Tox) 0)
  "SiO2" "R.Oxide")

; 栅极金属
(sdegeo:create-rectangle
  (position (- 0 (/ Lg 2)) (+ Wsi Tox) 0)
  (position (+ 0 (/ Lg 2)) (+ Wsi Tox 0.05) 0)
  "Metal" "R.Gate")

这里采用了一个明确的坐标约定:以栅极中心在水平方向的位置为x=0,硅膜底面为y=0,所有几何都基于这两个基准展开。一旦约定固定,后续所有参数变化都不会破坏结构拓扑关系。例如把Lg从0.05改为0.03,栅极、栅氧和源漏延伸区会自动重新定位,不需要手工调整任何坐标。

对于更复杂的结构,如FinFET的鳍、纳米片堆叠或沟槽,通常用create-polygon配合点列表来构建。参数化时可以把点列表写成由参数计算得到的表达式,而不是硬编码数值。Tcl中的写法与Scheme类似,只是语法不同:

set Lg 0.05
set Tox 0.002
sdegeo:create-rectangle \
  [position [expr -$Lg/2] 0 0] \
  [position [expr $Lg/2] 0.1 0] \
  "Silicon" "R.Si"

参数化网格:让加密区域跟随结构

网格参数化比几何参数化更容易被忽视,但它的重要性不亚于几何本身。如果网格加密区域不随结构变化,那么当栅长缩小或结深变浅时,关键区域可能网格过粗,导致仿真精度下降甚至不收敛。SDE通过sdedr:define-refinement-window和sdedr:define-refinement-size来控制网格。

(sdedr:define-refinement-window "RWin.Channel"
  "Rectangle"
  (position (- 0 (/ Lg 2)) 0 0)
  (position (+ 0 (/ Lg 2)) Wsi 0))

(sdedr:define-refinement-size "RSize.Channel"
  0.002 0.002 0.002 0.0005 0.0005 0.0005)

(sdedr:define-refinement-placement "RP.Channel"
  "RSize.Channel" "RWin.Channel")

这段脚本把沟道区域的网格加密窗口绑定到Lg和Wsi上。当栅长变化时,加密窗口自动伸缩,保证沟道始终获得足够的网格密度。类似地,可以在源漏结附近定义跟随结深参数的加密窗口,在栅氧界面定义跟随Tox的薄层加密。参数化网格的核心思想是:加密窗口的坐标必须由结构参数计算得到,而不是写死数值。

参数化掺杂:剖面随参数迁移

掺杂参数化通常涉及峰值浓度、结深、高斯或误差函数分布的特征长度。SDE提供sdedr:define-constant-profile、sdedr:define-gaussian-profile和sdedr:define-analytic-profile等命令。参数化的做法是把结深、峰值浓度和特征长度都定义为变量,并在定义剖面时引用。

(define Npeak 1e20)   ; 源漏峰值浓度 cm^-3
(define Xj 0.02)      ; 结深 20nm
(define Sigma 0.008)  ; 高斯特征长度 8nm

(sdedr:define-gaussian-profile "Prof.SD"
  "Boron" "PeakPos" 0 "PeakVal" Npeak
  "ValueAtDepth" 1e16 "Depth" Xj
  "Gauss" "Factor" 0.5)

(sdedr:define-refeval-window "RWin.SD"
  "Rectangle"
  (position (- 0 (+ (/ Lg 2) Lsd)) 0 0)
  (position (+ 0 (+ (/ Lg 2) Lsd)) Wsi 0))

(sdedr:define-analytic-placement "Place.SD"
  "Prof.SD" "RWin.SD")

当Xj从0.02变为0.015时,掺杂剖面会自动变浅,同时源漏延伸区的几何边界也应相应调整。这里需要特别注意:几何、网格和掺杂三者必须共享同一组参数,否则会出现"几何改了但掺杂没改"或"掺杂改了但网格没跟上"的不一致。工程上通常把参数集中定义在脚本最前面,后续所有命令只引用变量,不出现硬编码数值。

SDE参数化结构生成:几何—网格—掺杂共享参数 参数定义区 Lg = 0.05 μm Tox = 0.002 μm Wsi = 0.10 μm Lsd = 0.03 μm Xj = 0.02 μm Npeak = 1e20 cm⁻³ 集中定义,全局引用 参数化几何 create-rectangle / polygon 坐标由 Lg、Wsi、Tox 计算 栅中心 x=0,硅底 y=0 参数化网格 refinement-window 绑定 Lg refinement-size 绑定 Tox 加密区随结构自动伸缩 参数化掺杂 gaussian-profile 绑定 Xj PeakVal 绑定 Npeak 剖面随结深参数迁移 SDE 结构输出 • 几何边界一致 • 网格加密区对齐 • 掺杂剖面匹配 • 可直接送入器件仿真 关键原则: 几何、网格、掺杂三者必须共享同一组参数,避免"几何改了掺杂没改"或"掺杂改了网格没跟上"的不一致。 参数集中定义在脚本最前面,后续命令只引用变量,不出现硬编码数值。

参数扫描与自动重建

参数化脚本写好后,配合Sentaurus Workbench的参数扫描功能,可以自动生成一系列结构。SWB允许在实验表中定义参数变量,每个变量对应脚本中的一个define。当实验表的一行被提交时,SWB会用该行的参数值替换脚本中的变量,然后调用SDE重建结构。这意味着同一份脚本可以生成任意多组结构,而不需要复制粘贴脚本。

实际操作中,建议把参数定义部分单独放在脚本开头,并用注释标明每个参数的单位和物理含义。例如:

; ===== 可调参数区 =====
(define Lg    0.05)   ; 栅长 [μm]
(define Tox   0.002)  ; 栅氧厚度 [μm]
(define Wsi   0.10)   ; 硅膜厚度 [μm]
(define Lsd   0.03)   ; 源漏延伸长度 [μm]
(define Xj    0.02)   ; 结深 [μm]
(define Npeak 1e20)   ; 源漏峰值浓度 [cm^-3]
; =====================

这样做的另一个好处是便于版本管理和团队协作。当需要调整某个参数时,只需修改一行,而不必在数百行脚本中搜索硬编码数值。对于需要频繁迭代的工艺开发或器件优化任务,这种组织方式能显著降低出错概率。

常见问题与检查要点

参数化结构生成中最常见的问题是参数之间的耦合关系被忽略。例如,当Lg缩小到一定程度时,源漏延伸区Lsd可能重叠,导致几何自交;当Xj大于Wsi时,结深超出硅膜范围。这些问题不会在脚本语法层面报错,但会在网格生成或器件仿真阶段暴露。因此,在参数化脚本中应加入基本的合法性检查,例如:

(if (< (+ Lg (* 2 Lsd)) 0.2)
    (display "Warning: Lg + 2*Lsd exceeds 0.2 μm\n"))
(if (> Xj Wsi)
    (display "Error: Xj exceeds Wsi\n"))

另一个检查要点是网格加密窗口是否覆盖了所有关键区域。当结构参数变化时,如果加密窗口没有同步更新,可能出现关键区域网格过粗的情况。建议在每次参数扫描后,用SDE的可视化功能检查网格分布,确认沟道、结区和栅氧界面都有足够的网格密度。

实用建议:把参数化脚本拆分为三个逻辑段——参数定义、几何构建、网格与掺杂定义。每段之间用注释分隔,便于快速定位和修改。对于经常调整的参数,可以在脚本中设置默认值,同时允许通过SWB实验表覆盖,兼顾灵活性和可复现性。

总结来说,SDE参数化结构生成的核心是把几何、网格和掺杂统一到一组共享参数上,通过Scheme或Tcl脚本实现结构随参数自动变化。参数集中定义、坐标约定明确、三者同步更新,是保证参数化脚本可靠运行的三个关键点。掌握这些方法后,就可以把器件结构定义从手工绘图转变为可编程、可扫描、可复现的自动化流程。