1、首先声明,TCAD 对于本人来说是副业,前几天小伙伴找我帮忙玩一下 ESD,由于之前有些 TCAD 的经验就试着玩了一下,本人对 ESD 里理解还是很肤浅的,望各路大神指教。关于 ESD 仿真,见过有些文章用 medici 的,silvaco 还有例子。之前也用过 medici 做过 SEL,但是用起来都不如 sentaurus 顺手。sentaurus 是个入门时间比较长的东西,但是掌握了那些软件的相互关系,再改几个例子玩玩就能上手了,swb 神器不解释首先是器件建模,能拿到 foundry 厂 recipe 然后做 sprocess 大神可以高冷的嘲笑一下我等摸黑前进的苦逼了。我也曾经试过
2、用 sprocess 跑过,但是实在是搞不定,感觉 hold 不住最后的 mesh。根据我的实践,有两种自定义的方法:第一种是 process emulator,不知道的去 sde 手册里搜,一个很实用的工具,可以读版图,根据各层做掺杂,但是没有物理过程,相当于一个“伪”工艺仿真。好处就是根据版图做三维结构很方便。还可以根据版图做 refinement,不过这一块我还没有玩过第二个就是写 sde 的 command file 了。很多同志喜欢用 sde 手动画结构,我之前也手动画过,但是手动画的话在之后校准或者调参数会带来一些麻烦。我自己喜欢写好 command file 之后直接在 sde里
3、面 mesh 好,觉得做完结构再加一个 snmesh 来 mesh 还是太啰嗦了。关于 mesh,根据我的仿真,加一个 MaxTransDiff 的 refinement function,multibox 一定要加一些。我见过暴力的直接整个结构按 0.001 来 mesh,简直就是找死。之前我是小白的时候也试过把结深附近的全做成一个尺寸的 mesh,作死不解释。还有就是定义结构的时候适当定义一些中间变量,会方便很多。顺便吐槽一下 sde 里面,做运算居然是(define A (+ B D) ) 这种丧心病狂的格式。最后要注意 heatsink 要做,而且衬底不能太薄以至于和真实的热血条件相差
4、太大,几 um 就行。最关键的就是 sdevice 了,江湖盛传用 continuation 才能仿出 snapback,不过经本人的实践,continuation 仿出来的结果和 TLP 做出来的差别比较大,用来定性分析一下还不错,我记得我仿的时候居然做出了 9000K 的温度,当时都吓出汗了。从来没试过加电压,估计很不容易收敛吧。我一般都是加一个 TLP 电流(比如在 GGNMOS 的 drain 加一个上升时间 10ns,20mA,衰减时间 140ns 的电流) 。这个方法结果是可以仿出来的,但是设置不好很容易不收敛。有关细节实在说太多了。sentaurus 在这些地方很鸡贼,高端的全部
5、都放在 solvenet,想看例子就得交钱,没钱去扣手册估计得整个小半年才搞的清楚。在这里再膜拜一下有 solvenet id 的大神。具体来说解法用 ILS 就行了,有关热的和击穿的能加的都加上。贴个某本书里面的脚本吧* Electrothermal Simulation of a ggNFET (0.13 um CMOS)* under TL Pulse conditions: duration 150 ns 5 mA/u* specification of the electrodes con ect drain to a piecewise linear* current source
6、 with 5 mA/u 1 ns risetime a d 150 ns durationElectrode name=“drain“ voltage=0 current= (0,5.e-15)(10.e-9,25e-3)(150e-9,1e-6) name=“source“ voltage=0.0 name=“substrate“ voltage=0.0 name=“gate“ voltage=0 * specification of thermodes pin metal connect on to 300 K Thermode name= “heatsink“ temperature=
7、300* specify file namesFile *Input FilesGrid = “tdr“* Output FilesPlot= “tdrdat“Current=“plot“Output= “log“* specify physical modelsPhysics Recombination ( SRH(DopingDep) Auger Avalanche(vanOverstraeten)Mobility ( DopingDependence CarrierCarrierScattering HighFieldSaturation(GradQuasiFermi) ) Effect
8、iveIntrinsicDensity ( BennettWilson ) Thermodynamic * specify output valuesplot eDensity hDensity eCurrent hCurrent TotalcurrentElectricField Potential Doping SpaceCharge SRH Auger Avalanche EffectiveIntrinsicDensity LatticeTemperature * numerical settingsMath Derivatives Avalderivative NoCheckTrans
9、ientError NewDiscretization RelErrControl Digits=5 Number_of_Threads = maximum* specify equations to be solved solve PoissonCoupled Poisson Electron Hole Coupled poisson electron hole temperatureTransient (InitialStep=5e-13 MaxStep=1e-8 MinStep=1e-16 Increment=1.5 InitialTime=0 FinalTime=150e-9 plot
10、 range=(0,150e-9) intervals=3 ) Coupled poisson electron hole temperature 这个是可以出结果的,但是收敛性一般,跑一组数据基本上最后都会红掉,但是 snapback 还是可以看得到的。再贴个 continuation 的脚本,当时也是在 eetop 一个隐蔽的位置找到的*SDEVICE*File *Input FilesGrid = “tdr“* Output FilesPlot= “tdrdat“Current=“plot“Output= “log“Electrode Name=“source“ Voltage=0.0
11、Name=“drain“ Voltage= 0 Resist=600 Name=“gate“ Voltage=0 Name=“substrate“ Voltage= 0.0 Thermodename=“heatsink“ Temperature=300 SurfaceResistance=0.01 Physics Recombination (SRHAugerAvalanche(Okuto)Mobility (DopingDependenceEnormalHighFieldSaturation PhuMob)Hydrodynamic(hTemperature)Plot*-Density and
12、 Currents, etceDensity hDensityTotalCurrent/Vector eCurrent/Vector hCurrent/VectoreMobility hMobilityeVelocity hVelocityeQuasiFermi hQuasiFermi*-Temperature eTemperature Temperature*hTemperature*-Fields and chargesElectricField/Vector Potential SpaceCharge*-Doping ProfilesDoping DonorConcentration A
13、cceptorConcentration*-Generation/RecombinationSRH Auger * Band2Band AvalancheGeneration eAvalancheGeneration hAvalancheGeneration*-Driving forceseGradQuasiFermi/Vector hGradQuasiFermi/VectoreEparallel hEparallel eENormal hENormal*-Band structure/CompositionBandGap BandGapNarrowing* AffinityConductio
14、nBand ValenceBand* eQuantumPotential hQuantumPotentialeQuantumPotential*-Gate Tunneling* eBarrierTunneling hBarrierTunneling BarrierTunneling* eDirectTunnel hDirectTunnelMath DrForceRefDens= 1e12ExtrapolateDigits=6Notdamped= 50Iterations= 15CNormPrintErrRef(electron) = 1e5ErrRef(hole) = 1e5Number_of
15、_Threads = maximumSolve *- Creating initial guess:Coupled(Iterations= 100 LineSearchDamping= 1e-4) Poisson Coupled Poisson Electron Hole hTemperature Continuation(Name=“drain“ Normalized Increment= 2.0Decrement= 2.0InitialVstep= 0.01Incrementangle= 30Decrementangle= 60MaxVoltage= 50MinVoltage= 0MaxC
16、urrent= 0.5MinCurrent= 0.0Iadapt= 1e-11) Coupled Poisson Electron Hole hTemperature这个收敛性很不错的机缘巧合看到的一个脚本,比较高端,收敛性很好,把干货都贴在下面了Plot :Doping # AcceptorConcentration DonorConcentrationPotential eQuasiFermi hQuasiFermi# ConductionBandEnergy ValenceBandEnergyElectricField/Vector # eGradQuasiFermi hGradQuas
17、iFermiConductionBand ValenceBandeDensity hDensity SpaceChargeeCurrent/Vector hCurrent/Vector Current/VectorConductionCurrent/Vector DisplacementCurrent/VectorSRHRecombination SurfaceRecombinationAugerRecombination TotalRecombinationAvalancheGeneration eAvalanche hAvalanche eEparallel hEparalleleIonI
18、ntegral hIonIntegral meanIonIntegralEffectiveIntrinsicDensity IntrinsicDensityeLifeTime hLifeTime eMobility hMobilityeVelocity/Vector hVelocity/VectorLatticeTemperature Temperature # eTemperature hTemperatureTotalHeat RecombinationHeat hJouleHeat eJouleHeatMath:Method = ILStransient = BEWallclockExt
19、rapolateDerivativesAvalDerivativesDigits = 6Iterations= 20Notdamped= 50RhsFactor = 1e20Physics:EffectiveIntrinsicDensity ( OldSlotboom )Mobility ( DopingDep ( UniBo )HighFieldSaturation ( GradQuasiFermi )CarrierCarrier ( ConwellWeisskopf )Recombination ( SRH ( DopingDependence TempDependence )Avalan
20、che ( UniBo2 GradQuasiFermi )Auger)ThermodynamicAnalyticTEP看到这个还不知道 sdevice command file 怎么写的可以去面壁了剩下的用 SVisual 或者 inspect 提参数有兴趣的大神自己研究一下吧sde 的脚本就不能给了,你懂的。不过跟着 CMOS 例子里面那个走一下基本上就 OK 了,不过例子里面是做一般然后最后 mirror 的,个人很不喜欢这种方法,这个例子也不太好改,当时我就怒写了一个全新的。最后说一下环境,我 64 位 i7 8G 小本,虚拟机里给了 4G 内存模型 mesh 出来差不多是这样的The
21、final mesh has: 9684 points.19034 elements.10 regions.Max. connectivity = 10 located at (2.15244;1.88363)minAngle: 0.0240401 maxAngle: 127.498nVerts = 9684 nTris = 19034 nMats = 5max connectivity (tris per node): 10bmin: -0 -0bmax: 5.58 2.10572min edgeLength: 9.14551e-06 near (2.15789 2.00572)min vo
22、lume: 2.76866e-09 max volume: 0.00286863 Total volume: 11.2079之前也有江湖传言说 PC 机的最多只能跑 8000 个 point,还要跑大半天。我反正基本上不到一个小时搞定。仿 3D 的最好还是去工作站吧,或者顶配 PC 不用虚拟机祝大家仿真多多收敛。顺便宣传一下一个群, 33934490,里面有大神,你懂的最后对 ESD 工程师致以崇高的敬意,我感觉 ESD 设计真是神出鬼没千变万化,辛苦了有些问题想请教一下,我用 sprocess 做了一个 2D 的 NMOS 管,在 sdevice 里,我用 device 语句,把 NMOS
23、管做成了一个 device,在漏极上串联一个 1e5 欧姆的大电阻做直流仿真,仿真出了回滞曲线,但是仿真不出失效点,仿真后看晶格温度,温度最高的地方在源极和栅极交界处;TLP 也仿了,在漏极用Isource_pbset 加了一个脉冲电流,但是很难收敛,用了 LZ 写的收敛性很好的 sdevice,收敛性解决了,但是仿真出的曲线很奇怪,之前没有用过 sde,也没做过温度方面的仿真,我不知道是不是我的thermode 设置的对不对,我在 sprocess 里用 contact 语句做好 source、drain、gate、substrate后,直接用的 substrate 作为热电极,不知道这样做
24、对不对,下面是我写的直流仿真的 sdeviceDevice NmosFile * input files:Grid = “ESD_sp_fps.tdr“* output files:Plot = “n1_des.tdr“Current = “n1_des.plt“Electrode Name=“source“ Voltage=0.0 Name=“drain“ Voltage=0.0 Name=“gate“ Voltage=0.0 Name=“substrate“ Voltage=0.0 Thermode Name = “substrate“ Temperature = 300 Physics
25、HydrodynamicRecGenHeateQCvanDort AnalyticTEPEffectiveIntrinsicDensity (BandGapNarrowing (OldSlotboom)Mobility(DopingDepCarrierCarrierScattering HighFieldSaturation Enormal )Recombination(SRH( DopingDependence Tempdep ) Auger Avalanche(ElectricField)System Nmos nmos (drain=d source=0 gate=0 substrate
26、=0)Resistor_pset r ( in d ) resistance = 1e5 Vsource_pset vd ( in 0 ) dc = 0 File Output = “n1_des.log“ Plot *-Density and Currents, etceDensity hDensityTotalCurrent/Vector eCurrent/Vector hCurrent/VectoreMobility hMobilityeVelocity hVelocityeQuasiFermi hQuasiFermi*-Temperature Temperature *-Fields
27、and chargesElectricField/Vector Potential SpaceCharge*-Doping ProfilesDoping DonorConcentration AcceptorConcentration*-Generation/RecombinationSRH Band2Band * AugerAvalancheGeneration eAvalancheGeneration hAvalancheGeneration*-Driving forceseGradQuasiFermi/Vector hGradQuasiFermi/VectoreEparallel hEparallel eENormal hENormal*-Band structure/CompositionBandGap BandGapNarrowingAffinityConductionBand ValenceBandeQuantumPotentialMath ExtrapolateDerivativesIterations=300RelErrControlDigits=6method= ILS(set= 2)WallClockNumber_of_Threads = 4 Notdamped =330