Joyage的个人空间 https://blog.eetop.cn/1838025 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

课设笔记-silvaco仿真BJT,分析共基极共射极输出特性、击穿特性,电场分布与能带 ... ...

已有 172 次阅读| 2025-4-21 22:00 |个人分类:TCAD|系统分类:芯片设计| TCAD, TCAD

使用silvaco的Athena和atlas仿真满足特定工艺和电学参数的BJT双极性晶体管,关于BJT结构仿真已经有很多文章了,这篇笔记重点想要记录课设过程一些电学参数调整的过程。

一、使用athena构建一个含有N+埋层的npn双极性晶体管,掺杂浓度和尺寸满足以下要求



  1. 基区掺杂浓度峰值10e16 ~10e17cm-3


  2. 发射区掺杂浓度峰值约10e19 ~10e20cm-3

编辑

编辑

下面是工艺仿真代码;

go athena 
#
line x loc=0.00 spac=1
#x4-x7处网格加密处理确保后续电极处etch精准
line x loc=5.50 spac=0.1
line x loc=6.50 spac=0.1
line x loc=18.00 spac=1
line y loc=0.00 spac=0.50
line y loc=2 spac=1.0

# relax x.min=0.00 x.max=3.00 y.min=-2.00 y.max=0.00 dir.x=t dir.y=t

#structure mirror right

# 
init silicon c.boron=1.0e13 orientation=100 two.d

# relax silicon x.min=0.00 x.max=3.00 y.min=-2 y.max=0.00 
# relax silicon x.min=9.00 x.max=13.00 y.min=-2 y.max=0.00 

# 
deposit oxide thick=0.5 

#
etch oxide start x=2.00 y=-0.50 
etch cont x=10.0 y=-0.50 
etch cont x=10.0 y=0.00 
etch done x=2.00 y=0.00 

implant arsenic dose=3.5e16 energy=200 gauss tilt=0 rotation=0 amorph 
#diffus time=20 minutes temp=1100 nitro c.arsenic =5e19
#diffuse time=20 minutes temp=900 

#或etch oxide all 
strip oxide

#line y loc=-2.00 spac=0.005
#line y loc=0.00 spac=0.005

#
epitaxy time=30 minutes temp=1000 thickness=3 divisions=15 dy=0.2 ydy=2 c.phosphor=1e13 
epitaxy time=30 minutes temp=1000 thickness=3 divisions=30 dy=0.02 ydy=0.15 c.phosphor=1e13 

#
deposit oxide thick=1 

#
etch oxide start x=3.50 y=-7 
etch cont x=8.5 y=-7
etch cont x=8.5 y=-6 
etch done x=3.50 y=-6

#implant boron dose=5.0e11 energy=50 gauss tilt=0 rotation=0 amorph
diffus time =10 minutes temp=1200 nitro c.boron =3e17

#
etch oxide all 

#
deposit oxide thick=1.00 

#
etch oxide start x=5.5 y=-7.00 
etch cont x=6.5 y=-7.00
etch cont x=6.5 y=-6.00 
etch done x=5.5 y=-6.00
#
etch oxide start x=16 y=-7.00 
etch cont x=17 y=-7.00
etch cont x=17 y=-6.00 
etch done x=16 y=-6.00

implant arsenic dose=2.0e15 energy=40 gauss tilt=0 rotation=0 amorph 
#diffus time =15 minutes temp=1200 nitro c.arsenic=1e19
# 注入后退火激活  
diffuse time=30 minutes temp=1122 
#
etch oxide all 

#cmp silicon thickness=0.05  

#
etch oxide all 

#
deposit oxide thick=0.5 

#
etch oxide start x=5.7 y=-6.5
etch cont x=6.3 y=-6.5
etch cont x=6.3 y=-5.5 
etch done x=5.7 y=-5.5
#
etch oxide start x=4.3 y=-6.5 
etch cont x=4.6 y=-6.5
etch cont x=4.6 y=-5.5
etch done x=4.3 y=-5.5
#
etch oxide start x=16 y=-6.5 
etch cont x=17 y=-6.5
etch cont x=17 y=-5.5 
etch done x=16 y=-5.5

deposit alumin thick =0.5

etch alumin start x=5.0 y=-7.0
etch continue x=5.0 y=-6.5
etch continue x=5.4 y=-6.5
etch done x=5.4 y=-7.0

etch alumin start x=9 y=-7.0
etch continue x=9 y=-6.5
etch continue x=12 y=-6.5
etch done x=12 y=-7.0

etch alumin start x=0.0 y=-7.0
etch continue x=0.0 y=-6.5
etch continue x=1 y=-6.5
etch done x=1 y=-7.0

electrode name =emitter x=6 y=-6.2
electrode name =base x=4.4 y=-6.2
electrode name =collector x=16.6 y=-6.2
extract name ="nxj" xj silicon mat.occno =1 x.val=6 junc.occno=2
extract name="e mobility" curve(depth, (impurity="e- mobility" material="Silicon" x.val=6))

structure outfile=bjt.str
#tonyplot bjt.str

工艺仿真过程经过了三次离子注入/扩散,还是比较复杂的。得到下面的器件结构

编辑

在tonyplot中选择tool下方的cutline,可以看到在x=6的处,从上到下杂质分布是这样的

编辑

关于初始的网格划分,器件的EBC结分布在x=6周围,所以代码在结处网格做了加密处理。需要注意的是网格划分的space应该是后续刻蚀外延等工艺的公因数,不然由于网格精度不够刻蚀的结果会和定义的有偏差。

关于掺杂,可以直接调整扩散和离子注入工艺中的dose调整掺杂浓度,这里我两项工艺都用了以下,需要注意的是扩散工艺的杂质浓度单位是cm-3,离子注入工艺中杂质浓度单位是cm-2。靠后的工艺尽量少用扩散,以免前面的掺杂受到影响。

结深提取,使的是extract语句提取了BC结结深,参数 x.val=6表示在x=6处从上往下, junc.occno=2表示提取从上往下数第二个结的结深。


二、athema定义了器件结构,可以进行电学仿真了,这部分可以参考唐龙谷教材的3.6节。器件仿真的要求如下。



  1. 输出特性曲线(共基极接法,能体现击穿特性)共基极击穿电压(尽量接近)


  2. 输出特性曲线(共发射极接法,考察基区宽度调制效应)共基极直流电流短路增益β>=30

先仿真共基极击穿特性

go atlas
models bipolar print
impact selb
method gummel newton maxtrap=10 climit=1e-5
#偏置基极
log off
solve init
#定义基极接地
solve vbase=0
#发射极开路以获得较高的击穿电压
contact name=vemitter current
save outf=lhl-BJT_0.str master
load inf=lhl-BJT_0.str master
log outf=lhl-BJT_0.log
#同时设置起始电压为 0 最终电压为60步长为1 
solve vcollector=0.0 vstep=1 vfinal=60 name=collector
tonyplot lhl-BJT_0.log
#output con.band
#output val.band 
quit

可以用initfile将athena生成的器件结构文件导入atlas,

不考虑过多的非理想因素,这里就用atlas自带的bjt模型,因为BC结轻掺杂,发生的是雪崩击穿,这里需要引入碰撞电离模型selb,

contact name=vemitter current这句定义了发射极开路,这样可以获得更高的击穿电压。定义电极开路有三种方式,唐龙谷那本教材第三章开始有提到。

然后开始解集电极电压,从0步进到60(save,load两行冗余了可以删掉)。得到下面的击穿特性曲线。

编辑


  • 得到共基极击穿电压恰好在50V

实际仿真过程中为了得到50v击穿电压做了一些调校,一开始的击穿电压只有6,7V左右,查考尼曼半导体器件书上关于雪崩击穿电压部分,

编辑

看到BC结深越大,击穿电压也就越大,因此可以调整BC结的扩散/离子注入工艺参数,调整结深和击穿电压,

理论上IC-VC曲线在击穿前斜率都几乎是0,如果IC-VC曲线一开始斜率就很大,可能是EB结发生了穿通击穿,击穿宽度太小,这主要是基区宽度太小导致的,可能是发射结注入过深了。

编辑

上面是尼曼课本上关于穿通击穿的部分。

再仿真共发射极输出特性曲线

先给出代码

go atlas

models bipolar print
#发射极表面复合
contact name=emitter n.poly surf.rec

#IC/VCE 仿真,此时基极电流恒定
#偏置基极
log off
solve init
solve vbase=0.025
solve vbase=0.05
solve vbase=0.1 vstep=0.1 vfinal=0.7 name=base
#定义基极为电流边界
contact name=base current
#将基极偏置到不同的电流值
solve ibase=2.e-9
save outf=lhl-BJT_0.str master
solve ibase=4.e-9
save outf=lhl-BJT_1.str master
solve ibase=6.e-9
save outf=lhl-BJT_2.str master
solve ibase=8.e-9
save outf=lhl-BJT_3.str master
solve ibase=10.e-9
save outf=lhl-BJT_4.str master
solve ibase=12.e-9
save outf=lhl-BJT_5.str master
#载入不同基极电流,偏置集电极
#设置 ibase=2.e-9
load inf=lhl-BJT_0.str master
log outf=lhl-BJT_0.log
#同时设置起始电压为 0 最终电压为2步长为 0.25 后续同样设置
solve vcollector=0.0 vstep=1 vfinal=25.0 name=collector
#设置 ibase=4.e-9
load inf=lhl-BJT_1.str master
log outf=lhl-BJT_1.log
solve vcollector=0.0 vstep=1 vfinal=25.0 name=collector
#设置 ibase=6.e-9
load inf=lhl-BJT_2.str master
log outf=lhl-BJT_2.log
solve vcollector=0.0 vstep=1 vfinal=25.0 name=collector
#设置 ibase=8.e-9
load inf=lhl-BJT_3.str master
log outf=lhl-BJT_3.log
solve vcollector=0.0 vstep=1 vfinal=25.0 name=collector
#设置 ibase=10.e-9
load inf=lhl-BJT_4.str master
log outf=lhl-BJT_4.log
solve vcollector=0.0 vstep=1 vfinal=25.0 name=collector
#设置 ibase=12.e-9
load inf=lhl-BJT_5.str master
log outf=lhl-BJT_5.log
solve vcollector=0.0 vstep=1 vfinal=25.0 name=collector
#输出曲线族

tonyplot -overlay lhl-BJT_0.log lhl-BJT_1.log lhl-BJT_2.log lhl-BJT_3.log lhl-BJT_4.log lhl-BJT_5.log 

quit

用contact name=base current将基极定义为电流控制,给不同的基极电流,先保存在各个str文件里,
然后在不同的IB下解出出IC-VC曲线,用tonyplot的overlay功能把这些曲线显示在一张图上,最后得到下面的曲线族

编辑

在tonyplot-display-function中定义function2是collector current / base current,再在display中将y轴变量更改为定义的function。得到下面曲线

编辑


  • 恰好满足β大于等于30

得到上面的输出特性曲线和电流增益也经过了调校,最初的输出特性曲线只有在低电压的时候有理想输出特性曲线的样子,电压加大之后工作区斜率很大β很小,

①首先打算降低基区宽度调制效应,改变集电区宽度让BC结耗尽区更多的展宽到集电区。但是增大/减小集电区浓度发现,输出曲线几乎无影响。

②调节曲线斜率无果后,换个方向试着增大β,一开始β很小,只比1大一点点,这时候才从尼曼器件物理课本上看到可能是因为大注入效应/复合效应的影响(见下面左图),原先代码给的Ib过大,减小Ib,跑出来下面新的输出特性曲线,β在100到200之间,达到要求。

编辑


编辑

编辑

③回到最初的问题,饱和区和工作区斜率过大,基区调制效应太过明显,由于内建电势差V正比于ln(NBNC),考虑增大NBNC以增大BC结内建电势差,让器件更容易进入工作区(BC结更容易反偏),同时BC结耗尽区宽度也随掺杂增大降低,对基区的调制作用减小,得到下面的曲线,β恰好满足要求(课设要求β>30)

编辑

后面询问老师之后,这里饱和区斜率变得更平缓的原因是集电区电阻减小,削弱了电流的集边效应的原因。

编辑

三、输出放大工作状态时,双极型晶体管的电势电场分布,及能带。

代码,

go atlas
models bipolar print
contact name=emitter n.poly surf.rec
log off
solve init
contact name=base current
solve ibase=1.e-8 
solve vcollector=20
output band.param band.temp qfn qfp con.band val.band
save outf=bjtband.str master
tonyplot bjtband.str
quit

由上面的共发射极输出特性曲线,能看到,Vc=20V时三极管处在放大状态。

deckbuild输出的str文件在Tonyplot-Display-contours中能显示的量有下面三个层次,在唐龙谷教材tonyplot部分可以看到:

①solve init之前保存的str文件,只能显示少量参数。

②solve init之后使用outfile指令,输出的str文件可以保存更多参数。

③solve init后生成的结构文件,保存的contours仍然有限,使用output语句可以指定更多的量储存在.str文件中。

运行上面的代码,沿x=6方向cutline可以看到下面的电场分布

编辑分析:

理论上,Cutline field Y后应观察到①②两处电场尖峰,第一处是由于发射区基区的n+p结,由于掺杂浓度大,泊松方程求电势一阶导后场强更大,斜率也更大,方向沿Y轴正方向;第二处是由于基区和集电区的pn结,由于基区和集电区掺杂浓度都不是很高,所以电场强度较eb结更低,斜率也更小,方向沿Y轴负方向。电场峰值出现在两个冶金结处。但EB结耗尽区宽度应小于BC结,这是由于耗尽区宽度xd与掺杂浓度成反比,与反向电压和内建电势差之和成正比。

能带图

编辑




点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 16

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 0

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 0

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-4-26 11:05 , Processed in 0.021897 second(s), 15 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部