Synopsys Sentaurus TCAD系列教程之--BJT(sde) 解析

BJT(sde) 解析

; Emulation Domain
(define Xmax 2.2) ; Width
(define Ymax 1.2) ; Depth
(sdepe:define-pe-domain (list 0.0 0.0 Xmax Ymax))

;Substrate definition
(define Nasub 1e16)	; Boron concentration
(define Zsub 2.0)		; Initial Substrate Height
(sdepe:add-substrate "material" "Silicon" "thickness" Zsub "region" "Substrate")
(sdepe:doping-constant-placement "DopSub" "BoronActiveConcentration" Nasub "Substrate")

; Subcollector implant mask
(define Xb1 0.2)		;Beginning of base window
(define Xb2 1.2)		;End of base window
(define Xc1 1.5)		;Beginning of collector contact window
(define Xc2 2.0)		;end of collector contact window
(define Yc 0.8)			;Depth of contact
(sdepe:generate-mask "SUBC" (list (list Xb1 0.0 Xc2 Yc)))
(define Tre 0.5)
(sdepe:pattern "mask" "SUBC" "polarity" "dark" "type" "aniso" "material" "Resist" "thickness" Tre)


;Subcollector implant
(define LatDiff 0.02)
(sdedr:define-gaussian-profile "SubCol" "PhosphorusActiveConcentration" "PeakPos" 0.0 "PealVal" 5e+19 "ValueAtDepth" Nasub "Depth" 0.5 "Gauss" "Length" LatDiff)
(sdepe: implant "SubCol")
(sdepe:remove "material" "Resist)

; Deposit Silicon epi layer
(define Tepi 0.3)
(define Ndepi 5e16)
(define SiEpi (sdepe:depo "material" "Silicon" "thickness" Tepi "type" "iso"))
(sde:add-material SiEpi "Silicon" "SiEpi")
(sdepe:doping-constant-placement "DopEpi" "ArsenicActiveConcentration" Ndepi "SiEpi")

; Isolation mask
(sdepe:generate-mask "ISO" ;Protection mask
(list (list xb1 0.0 xb2 Yc)
       (list xc1 0.0 xc2 Yc))) 
 (sdepe:pattern "mask" "ISO" "polarity" "light" "type” "aniso" "material" "Resist" "thickness" Tre)
 (sdepe:etch-material "material" "Silicon" "depth" Tepi)  ;Trench etching
(sdepe:remove "material" "Resist")

;Fill trench
(define Ztop (sde-int:compute-zmax)
(sdepe:fill-device "material" "Oxide" "height" (+ Ztop 0.1))

; CMP polish
(sdepe:polish-device "thickness" 0.1)

;Deposit screening oxide
(define Tscreen 0.03)
(sdepo:depo "material" "Oxide" "thickness" Tscreen)

; Collector contact implant mask
(sdepe:generate-mask "COL" (list (list Xc1 0.0 Xc2 Yc)))
(sdepe:pattern "mask" "COL" "polarity" "dark" "type" "aniso" "material" "Resist" "thickness" Tre)

; Collector contact implant 
(sdedr: define-gaussian-profile "ColCont" "ArsenicActiveConcentration" "PeakPos" 0.0 "PeakVal" 5e+19 "ValueAtDepth" 1e+17 "Depth" 0.5 "Gauss" "Length" LatDiff)
(sdepe:implant "ColCont")
(sdepe:remove "material" "Resist")

; Base implant mask
(sdepe:generate-mask "BAS" (list (list Xb1 0.0 Xb2 Yc)))
(sdepe:pattern "mask" "BAS" "polarity" "dark" "type" "aniso" "material" "Resist" "thickness" Tre)

; Base implant 
(define Tbase 0.2)
(define Nabase 3e18)
(sdedr: define-gaussian-profile "Base" "BoronActiveConcentration" "PeakPos" 0.0 "PeakVal" Nabase "ValueAtDepth" Ndepi "Depth" Tbase "Gauss" "Length" LatDiff)
(sdepe:implant "Base")
(sdepe:remove "material" "Resist")


; Emitter implant mask
(define Xe1 0.9)
(define Xe2 1.1)
(define Ye (* 0.7 Yc))
(sdepe:generate-mask "EMIT" (list (list Xe1 0.0 Xe2 Ye)))
(sdepe:pattern "mask" "EMIT" "polarity" "dark" "type" "aniso" "material" "Resist" "thickness" Tre)


;Emitter implant
(define Temit 0.1)
(sdedr: define-gaussian-profile "Emitter" "PhosphorousActiveConcentration" "PeakPos" 0.0 "PeakVal" 1e+20 "ValueAtDepth" 1.0e18  "Depth" Temit "Gauss" "Length" LatDiff)
(sdepe:implant "Emitter")
(sdepe:remove "material" "Resist")

; Emitter and collector contact holes mask
(define reset 0.05)
(sdepe:generate-mask "PCH"
	(list (list (+ Xe1 reset) 0.0 (- Xe2 reset) (- Ye reset))
		  (list (+Xc1 reset) 0.0 (-Xc2 reset) (- Yc rest))))
(sdepe:pattern "mask" "PCH" "polarity" "dark" "type" "aniso" "material" "Resist" "thickness" Tre)

;Etching emitter and collector contact holes
(sdepe:etch-material "material" "Oxide" "depth" Tscreen)
(sdepe:remove "material" "Resist")

; Deposit PolySi
(define Tpoly 0.1)
(define POLYSI (sdepe:depo "material" "PolySi" "thickness" Tpoly))
(sde:add-material POLYSI "PolySi" "Poly")
(sdepe:doping-constant-placement "DoPoly" "ArsenicActiveConcentration" 1e20 "Poly")


; Poly mask
(sdepe:generate-mask "POL" (list (list Xc1 0.0 Xc2 Yc)
													   (list Xe1 0.0 Xe2 Ye)))
(sdepe:pattern "mask" "POL" "polarity" "light" "type" "aniso" "material" "Resist" "thickness" Tre)

; Etching poly
(sdepe:etch-material "material" "PolySi" "depth" Tpoly)
(sdepe:remove "material" "Resist")

;Fill
(define Ztop (+ (sde-int:compute-zmax) 0.05))
(sdepe:fill-device "material" "Oxide" "height" Ztop)

; Metal contact holes mask
(define Xbc1 ( + Xb1 0.1))
(define Xbc2 (+ Xbc1 0.4))
(sdepe:generate-mask "MET1" (list (list Xc1 0.0 Xc2 Yc)
														 (list Xe1 0.0 Xe2 Ye)
														 (list Xbc1 0.0 Xbc2 Ye)))
(sdepe:pattern "mask" "MET1" "polarity" "dark" "type" "aniso" "material" "Resist" "thickness" Tre)

;Etch metal contact holes
(sdepe:etch-material "material" "Oxide" "depth" (+ Tpoly 0.05))
(sdepe:etch-material "material" "Oxide" "depth" Tscreen)
(sdepe:remove "material" “Resist”)

;------------------------------------------------------------------
;Fill contact holes
(sdepe:fill-device "material" "Metal")


;----------------------------------------------------------------
;Contact definitions
(sdegeo:set-contact (find-face-id (position 0.01 0.01 0.0)) "substrate")
(define BCID (find-body-id
		(position (* 0.5 (+ Xbc1 Xbc2)) (* 0.5 Ye) (- Ztop 0.01))))
(sdegeo:set-contact BCID "base" "remove")

(define ECID (find-body-id
		(position (* 0.5 (+ Xe1 Xe2)) (* 0.5 Ye) (- Ztop 0.01))))
(sdegeo:set-contact ECID "emitter" "remove")

(define CCID (find-body-id
		(position (* 0.5 (+ Xc1 Xc2)) (* 0.5 Yc) (- Ztop 0.01))))
(sdegeo:set-contact CCID "collector" "remove")


;------------------------------------
;------------------------------------
; Meshing
;-----------------------------------
; Global
(define Ztop (sde-int: compute-zmax))
(sdedr:define-refeval-window "All_RW" "Cuboid"
	(position 0 0 0) (position Xmax Ymax Ztop))
(sdedr:define-refinement-size "All_RD" (/ Xmax 8.0) (/ Ymax 8.0) (/ Ztop 8.0)
									   (/ Xmax 16.0)(/ Yma 16.0) (/ Ztop 16.0))
(sdedr:define-refinement-function "All_RD" "DopingConcentration" "MaxTransDiff" 1)
(sdedr:define-refinement-placement "All_PL" "All_RD" "All_RW")

; Top region
(sdedr:define-refeval-window "Top_RW" "Cuboid"
	(position Xb1 0 1.25) (position Xc2 Yc 2.3))
(sdedr:define-refinement-size "Top_RD" (/ Xmax 16.0) (/ Ymax 16.0) (/ Ztop 16.0)
									   (/ Xmax 32.0)(/ Yma 32.0) (/ Ztop 32.0))
(sdedr:define-refinement-function "Top_RD" "DopingConcentration" "MaxTransDiff" 1)
(sdedr:define-refinement-placement "Top_PL" "Top_RD" "Top_RW")

; Base region
(sdedr:define-refeval-window "Base_RW" "Cuboid"
	(position Xb1 0.0 Zsub) (position Xb2 Yc (+ Zsub Tepi)))
(sdedr:define-refinement-size "Base_RD" (/ (+ Xb2 Xb1) 8.0) (/ Yc 8.0) (/ Tepi 8.0)
									   (/ (+ Xb2 Xb1) 32.0)(/ Yc 32.0) (/ Tepi 32.0))
(sdedr:define-refinement-function "Base_RD" "DopingConcentration" "MaxTransDiff" 1)
(sdedr:define-refinement-placement "Basbe_PL" "Base_RD" "Base_RW")


; Active region
(sdedr:define-refeval-window "Active_RW" "Cuboid"
	(position 0.85 0.0 2.15) (position 1.15 0.6 2.3))
(sdedr:define-refinement-size "Active_RD" 0.02 0.08 0.02 0.01 0.04 0.01)
(sdedr:define-refinement-function "Active_RD" "DopingConcentration" "MaxTransDiff" 1)
(sdedr:define-refinement-placement "Active_PL" "Active_RD" "Active_RW")


; Poly
(sdedr:define-refinement-size "Poly_RD" 99 99 (/ Tpoly 8.0)
										66 66 (/ Tpoly 9.0))
(sdedr:define-refinement-material "Poly_PL" "Poly_RD" "PolySi" )

;------------------------------------------------------------
; Meshing the device
;------------------------------------------------------------
(sde:build-mesh "n@node@")


注释符号
  • 在Sde里,可以使用"#“、“;”用作注释符号。注释的语句变为棕色,但要注意:“#”连接关键字在jedit中变蓝的也不代表注释,如#set、#define、#if、#else等,需要注释需要在其前面加两个或以上的警号。所以在Sde中推荐使用专属注释标识符”;".
sdepe:define-pe-domain

定义工艺仿真的基本区域(base domain)
This Scheme extension为后续Procem操作提供仿真区间(simulation domain).这个参数列表包含了四个实数或实数对列表。
(Procem: Three-dimensional process emulator)

(sdepe: define-pe-domain {{X0 Y0 X1 Y1}|{Polygon}})
  • 如果参数列表包含四个实数,则定义一个矩形,使用由四个数字构成的xy坐标当做仿真区间的两个对角
  • 如果定义了实数对列表,则实数对定义了在xy平面仿真区间的顶点
  • 如果使用多边形定义仿真区间,唯一的限制是这个多边形必须是简单连接的凸多边形
  • 在z=0时,在xy平面定义区间。
sdepe:add-substrate

给器件增加初始衬底层

Syntax: 
(sdepe:add-substrate "material" material "thickness" thickness ["base" base] ["region" region-name])
  • This Scheme extension首先创建了器件的衬底层。调用这个函数之前,必须设置域边界(sdepe:define-pe-domain).
  • 关键字"material"标识生成主体的DATEX材料/材质
  • 关键字"base" 用于为衬底层底部Z坐标指定值。如果未指定"base",则衬底层底部按Z=0放置
  • 关键字"region"为生成的衬底指定明确的区域名称。
sdepe:doping-constant-placement

定义并应用恒定掺杂

Sytax
(sdepe:doping-constant-placement name species concentration region-name)

This Scheme extension定义并将恒定掺杂应用于给定区域。在恒定掺杂的情况下,不需要单独的注入命令,如高斯掺杂分布的情况

sdepe:generate-mask

创建用于工艺流程的mask

Sytax
(sdepe:generate-mask mask-name polygon-list)
  • This Scheme extension 用于Procem中定义mask. 定义的mask用于下一步的图形操作(不会删除使用过的mask)。每个mask定义成多边形列表。当多边形列表转化为mask时,首先每个多边形转换为sheet body. 然后执行包含检查(containment check),部分重叠转换后的sheet bodies被合并(united). 如果一个sheet body完全包含在另一个body内,它将从该片体中减去,并形成内部空隙。这样,就创建多个连接的mask sheet bodies.
  • 单个mask多边形列表不能包含相交变,并且多边形顶点列表必须为每个多边形定义manifold sheet body.(不允许使用cutlines or dangling边). 如果顶点列表未闭合(not closed),转换器将自动闭合。多边形顶点列表中不允许零长度边(即,顶点之间的距离至少应为1.0e-06)。不同的masks可以有相交的多边形边界。如果mask包含矩形多边形,则只需指定此类多边形的两个相对角即可。每个多边形都定义为xy坐标列表。
  • 参数"mask-name":由Scheme extension 创建的mask名称。生成的mask是一个2D sheet body. mask name属性将附加到mask body。如果已存在指定名称的mask,后续的操作将使用新创建的mask。参数多边形列表指定了生成mask的顶点。
sdepe:pattern

执行图形步骤

Sytax
sdepe:pattern "mask" mask-name "polarity" polarity ["type" depo-type] "material" material ["algorithm" depo-alg] "thickness" thickness ["step" nsteps] ["region" region] [PT keywords and values])
  • This Scheme extension生成图案层
  • “mask"关键字标识用于图案操作的mask
  • "polarity"关键字定义mask极性。
    由于图案层操作类似于沉积步骤,有关所用算法和类型的详细说明,请参见sdepe:depo
sdedr:define-gaussian-profile

在网格命令文件中创建高斯函数掺杂配置文件的设定

sdepe:implant

使用分析函数创建掺杂分布,模拟包括扩散在内的注入步骤

sdepe:remove

删除指定的区域或材质(material)

sde :add-material

将指定的材质和区域属性分配给body.

Syntax
sde:add-material body material-name region-name
  • This Scheme extension 将材质(material)和区域属性指定给body,body由第一个参数定义。
  • “material-name”参数必须是有效的DATEX名称。该名称在datexcodes.txt文件中定义。“material-name”参数被指定为body的材质(material)属性。当细分边界输出时,材质属性将是区域的材质。
  • "region-name"属性定义细分边界输出中的区域名称。
sdepe:add-material

执行蚀刻步骤操作

sde-int:compute-zmax
sdepe:fill-device

使用指定的材料填充器件,直到达到指定的高度

sdegeo:set-contact

给指定的实体分配接触孔(active contact)

Syntax
(sdegeo:set-contact entity | entity-list [contact-name ["remove"]])
eg:
(sdegeo:set-contact (find-face-id (position 0.01 0.01 0.0)) "substrate")
  • 如果未指定可选参数"contact-name",This Scheme extension将active contact附加到指定的实体(specified entity)
  • 如果提供了参数"contact-name", "contact-name"将会被激活(如果不存才,则创建一个contact)。如果实体类型(entity type)为EDGE, 则定义2D contact;如果实体类型为FACE(并且实体属于三维实体),则将指定3D contact;如果实体是2D 实体(body),则将在实体的所有边上定义2D contact;如果实体是3D 实体(body),则将在实体的所有面上定义三维(3D)接触(contact).
  • 可选参数"remove"使用时,将删除指定的实体(specified entitu)或实体列表(entity-list bodies),并且仅为牙印(imprinted)边或面定义contact
sdedr:define-refeval-window

定义可用作参考/评估窗口的几何区域
Sytax
(sdedr:define-refeval-window rfwin-name { single-shape | multi-shape })

  • for single-shape:
    • “Point”: 数据参数是一个位置
    • “Line” “Rectangle” “Cuboid”,数据参数为两个相对的角位置。关键字"矩形"和"长方体"轴对齐
    • “Polygon” 数据参数是位置列表(第一个和最后一个位置必须是相同)
sdedr:define-refinement-size

在网格命令文件中创建细化尺寸定义

Syntax
(sdedr:define-refinement-size definition-name max-x max-y max-z min-z min-y min-z)
sdedr:define-refinement-placement

将网格命令文件中创建细化设置

Syntax
(sdedr:define-refinement-placement refinement-name definition-name ref-eval-window)
sde:build-mesh

生成细分的TDR边界输出和网格命令文件,并调用Sentaurus Mesh

Syntax
(sde:build-mesh [options] file-basename)
  • 打印显示网格化成功或失败的消息。分别返回#t或#f以表明成功或失败。
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值