;(sde:clear)
(sde:set-process-up-direction "+z")
(define depth @depth@)
(define EpiDoping @EpiDoping@)
(define SiCTop 100.0)
(define Radius 0.1)
(define epsilon 0.01)
(sdeicwb:load-file "mask_lyt.mac" 1e-3 )
(sdeicwb:set-domain "SIM3D")
(define minx (sdeicwb:get-left))
(define maxx (sdeicwb:get-right))
(define maxy (sdeicwb:get-front))
(define miny (sdeicwb:get-back))
(display "icwb: SimBox: L=") (display minx)
(display " R=") (display maxx)
(display " B=") (display miny)
(display " F=") (display maxy) (newline)
(define LNames (sdeicwb:get-layer-names)) ; list layer Names
(display "icwb: LNames: ") (display LNames) (newline)
(define LIDs (sdeicwb:get-layer-ids)) ; list layer ids
(display "icwb: LIDs: ") (display LIDs) (newline)
;#-----Define pe domain -----------------------------------------------------;#
(sdepe:define-pe-domain (list minx miny maxx maxy) )
(sdepe:add-substrate "material" "SiliconCarbide" "thickness" SiCTop)
(sdeicwb:generate-mask-by-layer-name "ACTIVE" "ACTIVE")
(sdepe:pattern "mask" "ACTIVE" "polarity" "light" "material" "Photoresist" "thickness" 1.0 "type" "iso")
(sdepe:etch-material "material" "SiliconCarbide" "depth" depth "type" "aniso" "algorithm" "lopx" "overetch" 0.1 "vexity" "all" "radius" Radius)
(sdepe:strip-material "Photoresist" )
(sdepe:depo "material" "Oxide" "thickness" 0.05)
(sdepe:fill-device "material" "Polysilicon")
(sdeicwb:generate-mask-by-layer-name "EMITTER" "EMITTER")
(sdepe:pattern "mask" "EMITTER" "polarity" "dark" "material" "Photoresist" "thickness" 0.2)
(sdepe:etch-material "material" "Oxide" "depth" 0.1 "type" "aniso" )
(sdepe:remove "material" "Photoresist" )
(sdepe:fill-device "material" "Metal" )
(sdepe:etch-material "material" "Oxide" "depth" 0.05 "type" "iso" "algorithm" "lopx" )
;#----- Contact --------------------------------------------------------------;#
(define POINT (position (/ maxx 2.0) (/ maxy 2.0) (sdeicwb:get-global-bot)))
(sdegeo:define-contact-set "collector" 4.0 (color:rgb 0.0 0.0 1.0 ) "##" )
(sdegeo:set-current-contact-set "collector")
(sdegeo:define-3d-contact (find-face-id POINT) "collector")
(sdegeo:define-contact-set "gate" 4.0 (color:rgb 1.0 0.0 0.0 ) "##" )
(sdegeo:set-current-contact-set "gate")
(sdegeo:set-contact-boundary-faces (find-body-id (position (- maxx epsilon) (- maxy epsilon) SiCTop)))
(sdegeo:delete-region (find-body-id (position (- maxx epsilon) (- maxy epsilon) SiCTop)))
(sdegeo:define-contact-set "emitter" 4.0 (color:rgb 0.0 1.0 0.0 ) "##" )
(sdegeo:set-current-contact-set "emitter")
(define CONTACT (find-body-id (car (sdeicwb:get-layer-polygon-midpoints
"EMITTER" (sdeicwb:up SiCTop epsilon)))))
(sdegeo:set-contact-boundary-faces CONTACT)
(sdegeo:delete-region CONTACT)
;#----- Doping ---------------------------------------------------------------;#
;#----- n- epi -----;#
(define NAME "Nepi")
(sdedr:define-refeval-window (string-append "RW." NAME)
"Cuboid"
(position minx miny 97.5) (position maxx maxy 0.5) )
(sdedr:define-constant-profile (string-append "DC." NAME)
"NitrogenActiveConcentration" @EpiDoping@)
(sdedr:define-constant-profile-placement (string-append "CPP." NAME)
(string-append "DC." NAME) (string-append "RW." NAME))
;#----- n+ bottom -----;#
(define NAME "N+bottom" )
(sdedr:define-refeval-window (string-append "RW." NAME)
"Cuboid"
(position minx miny 0.5) (position maxx maxy 0.0) )
(sdedr:define-constant-profile (string-append "DC." NAME)
"AluminumActiveConcentration" 1e20)
(sdedr:define-constant-profile-placement (string-append "CPP." NAME)
(string-append "DC." NAME) (string-append "RW." NAME))
;#----- p+ channel -----;#
(define NAME "P+channel" )
(sdedr:define-refeval-window (string-append "RW." NAME)
"Cuboid"
(position minx miny 99.5) (position maxx maxy 97.5) )
(sdedr:define-constant-profile (string-append "DC." NAME)
"AluminumActiveConcentration" 4e17)
(sdedr:define-constant-profile-placement (string-append "CPP." NAME)
(string-append "DC." NAME) (string-append "RW." NAME))
;#----- n+ top -----;#
(define NAME "N+top" )
(sdedr:define-refeval-window (string-append "RW." NAME)
"Cuboid"
(position minx miny 100) (position maxx maxy 99.5) )
(sdedr:define-constant-profile (string-append "DC." NAME)
"NitrogenActiveConcentration" 1e20)
(sdedr:define-constant-profile-placement (string-append "CPP." NAME)
(string-append "DC." NAME) (string-append "RW." NAME))
;#----- p+ top -----;#
(define NAME "P+top" )
(sdedr:define-refeval-window (string-append "RW." NAME)
"Cuboid"
(position minx miny 100) (position 1 1 99.5) )
(sdedr:define-constant-profile (string-append "DC." NAME)
"AluminumActiveConcentration" 2e20)
(sdedr:define-constant-profile-placement (string-append "CPP." NAME)
(string-append "DC." NAME) (string-append "RW." NAME))
;#----- Mesh -----------------------------------------------------------------;#
(sdeicwb:define-refinement-from-layer
"lname" "BASE" "rname" "WholeDevice" "oversize" 0.0 "top" SiCTop "bot" 0
"dlrmax" 1.0 "dlrmin" 0.05
"dbtmax" 1.0 "dbtmin" 0.05
"dbfmax" 1.0 "dbfmin" 0.05)
(sdedr:define-refinement-function "RSize.WholeDevice" "DopingConcentration" "MaxTransDiff" 1.0)
(sdeicwb:define-refinement-from-layer
"lname" "BASE" "rname" "Channel" "oversize" 0.0 "top" SiCTop "bot" (sdeicwb:down SiCTop (+ depth 1.0))
"dlrmax" 0.3 "dlrmin" 0.01
"dbtmax" 0.3 "dbtmin" 0.01
"dbfmax" 0.3 "dbfmin" 0.01)
(sdedr:define-refinement-function "RSize.Channel" "DopingConcentration" "MaxTransDiff" 1.0)
(sdeicwb:define-refinement-from-layer
"lname" "TRENCH1" "rname" "trench1" "oversize" 0.5 "top" (sdeicwb:down SiCTop (- depth 0.5)) "bot" (sdeicwb:down SiCTop (+ depth 0.5))
"dlrmax" 0.15 "dlrmin" 0.01
"dbtmax" 0.15 "dbtmin" 0.01
"dbfmax" 0.15 "dbfmin" 0.01)
(sdedr:define-refinement-function "RSize.trench1" "DopingConcentration" "MaxTransDiff" 1.0)
(sdeicwb:define-refinement-from-layer
"lname" "TRENCH2" "rname" "trench2" "oversize" 0.5 "top" (sdeicwb:down SiCTop (- depth 0.5)) "bot" (sdeicwb:down SiCTop (+ depth 0.5))
"dlrmax" 0.15 "dlrmin" 0.01
"dbtmax" 0.15 "dbtmin" 0.01
"dbfmax" 0.15 "dbfmin" 0.01)
(sdedr:define-refinement-function "RSize.trench2" "DopingConcentration" "MaxTransDiff" 1.0)
(sdedr:offset-global
"hlocal" 0
"factor" 1.2
"maxlevel" 6)
(sdedr:offset-interface "material" "SiliconCarbide" "Oxide" "hlocal" 0.005 "factor" 1.4 )
(sde:build-mesh "-offset " "n@node@" )
;#----- save -----------------------------------------------------------------;#在sentaurus里什么意思,列出每一行代码进行说明
这段代码是用于Sentaurus Device(SDE)的脚本,用于设置和模拟半导体器件的制造过程。下面是每一行代码的详细说明:
1. `(sde:clear)`:清除SDE中的所有先前数据,为新的模拟做准备。
2. `(sde:set-process-up-direction "+z")`:设置模拟中的加工方向为Z轴正方向。
3. `(define depth @depth@)`:定义一个变量`depth`,其值由外部参数`@depth@`提供,可能表示某种加工深度。
4. `(define EpiDoping @EpiDoping@)`:定义一个变量`EpiDoping`,其值由外部参数`@EpiDoping@`提供,可能表示外延层的掺杂浓度。
5. `(define SiCTop 100.0)`:定义一个变量`SiCTop`,值为100.0,可能表示硅碳化物(SiC)层的厚度。
6. `(define Radius 0.1)`:定义一个变量`Radius`,值为0.1,可能用于后续的刻蚀或沉积步骤中定义圆角或半径。
7. `(define epsilon 0.01)`:定义一个变量`epsilon`,值为0.01,用于定义微小的距离或公差。
8. `(sdeicwb:load-file "mask_lyt.mac" 1e-3)`:加载掩模布局文件`mask_lyt.mac`,文件中的单位为米(1e-3米=1毫米)。
9. `(sdeicwb:set-domain "SIM3D")`:设置模拟域为3D。
10. `(define minx (sdeicwb:get-left))`:获取模拟区域的左边界坐标,并赋值给变量`minx`。
11. `(define maxx (sdeicwb:get-right))`:获取模拟区域的右边界坐标,并赋值给变量`maxx`。
12. `(define maxy (sdeicwb:get-front))`:获取模拟区域的前边界坐标,并赋值给变量`maxy`。
13. `(define miny (sdeicwb:get-back))`:获取模拟区域的后边界坐标,并赋值给变量`miny`。
14-18. 这些行在控制台上输出模拟区域的边界信息、层名称和层ID。
19. `(sdepe:define-pe-domain (list minx miny maxx maxy))`:定义一个工艺工程(PE)域,使用之前定义的边界坐标。
20. `(sdepe:add-substrate "material" "SiliconCarbide" "thickness" SiCTop)`:在PE域中添加一种材料,这里是硅碳化物,厚度为`SiCTop`。
21-25. 这些行生成了一个名为"ACTIVE"的掩模,并进行了光刻胶图案化,然后刻蚀硅碳化物材料到指定深度。
26. `(sdepe:strip-material "Photoresist")`:去除光刻胶材料。
27. `(sdepe:depo "material" "Oxide" "thickness" 0.05)`:沉积0.05微米厚的氧化物材料。
28. `(sdepe:fill-device "material" "Polysilicon")`:用多晶硅填充器件。
29-33. 这些行生成了一个名为"EMITTER"的掩模,进行了光刻胶图案化,然后刻蚀氧化物材料,最后去除光刻胶。
34-38. 这些行用金属填充器件,并刻蚀氧化物材料。
39-56. 这些行定义了三个接触区域:集电极、栅极和发射极。每个接触区域都有其特定的位置和颜色。
57-86. 这些行定义了掺杂区域和浓度。每个区域都有其特定的位置、掺杂类型和浓度。
87-119. 这些行定义了网格细化,包括整个器件、通道、沟槽1和沟槽2的网格细化。还定义了全局和界面的网格偏移。
120. `(sde:build-mesh "-offset " "n@node@")`:构建网格,其中`"n@node@"`可能是一个外部参数,指定网格的节点数或类型。
最后一行的代码似乎是不完整的,它应该包含保存模拟设置的命令。在Sentaurus中,这通常是通过`(sde:save "filename")`来完成的,其中`"filename"`是你想要保存的文件名。