Difference: Tutorial5thTCADDay3 (8 vs. 9)

Revision 92020-05-26 - AtlasjSilicon

Line: 1 to 1
 
META TOPICPARENT name="Tutorial4thTCADWorkshop"

3日目(デバイスシミュレーション)

Line: 269 to 269
  基本的にシミュレーション時間が長すぎる場合は、このステップが細かすぎる、もしくは、各点の収束がうまくいっていないために、小さなステップでやり直すという作業を繰り返しているからです。
Changed:
<
<
より安定した電場ができる構造体に直すか、必要ない場合はステップを粗くしてみるとよいです。最初に見たInspectorのIVカーブのプロットに測定点のマーカーを付けてみると測定点がわかります。
>
>
より安定した電場ができる構造体に直すか、必要ない場合はステップを粗くしてみるとよいです。

最初に見たInspectorのIVカーブのプロットに測定点のマーカーを付けてみると測定点がわかります。Curvesの中からプロットを選択、Editボタン、MarkerタブのShapeをcircleにする。OKをクリック。

もしくは、node 51のinspectを実行してみてください。

IVmarker.png

最初の部分は細かくだんだん粗くなっていき収束しない場合は再び細かくなっていることがわかります。

また、この例だと、Vop=-200Vと設定していますが、-150V付近で終わってしまっています。これは、BreakCriteria を使って電流が1e-7A(100nA)を超えたときに停止するようにしているからです。

node 51を実行して、inspectを閉じたときにWorkbenchの最初の行の一番右にBVakという変数ができて、154.9となっているのがわかります。これはブレークダウンを電流<-1e-7Aと定義したときの電圧の値を示しています。

ただし、うえで説明したStepごとにしか計算を行っていないのでブレークダウンを起こした最初の電圧ステップを表示していることになります。

 

Plot Section

Line: 297 to 312
  }
Deleted:
<
<
 
Added:
>
>

様々なデバイスシミュレーション

静電容量のシミュレーション (C-Vシミュレーション)

まずは node 57を走らせてみましょう。C-Vシミュレーションです。

しばらく時間がかかるのでCV_des.cmdファイルの中身を見てみましょう。

IV_des.cmd と違う点は 新たに system sectionが導入されたことと、Solve sectionにACCoupled()が定義されたことです。

System section

System sectionは一般的に回路を定義することに使います。SPICEという、回路シミュレータの構文が使われます。

しかし、ここでは基本的にanode とcathodeに a, c1,c2,c3という名前を付けて、

それぞれの電極にかける電圧を va,vc1,vc2,vc3と定義しているだけです。

system {
        DIODE D1 ("anode"=a
        !(
        for {set i 1} {$i<=@NumStripes@} {incr i} {
                                        puts "\"cathode${i}\"=c${i}"    
        }
        )!
        ) {}
        
        Vsource_pset va (a gnd) {dc=0}

        !(
        for {set i 1} {$i<=@NumStripes@} {incr i} {
                                        puts "Vsource_pset vc${i} (c${i} gnd) \{dc=0\}"         
        }
        )!
        
        
        set(gnd=0)
}

Solve section

次にSolve sectionですが、二つのQuasistationaryが定義されています。

   Quasistationary (            DoZero
                        MaxStep=0.1  MinStep=5e-6 InitialStep=1e-2
                        Increment=1.6 Decrement=4.0
                                Goal { Parameter="va"."dc" Voltage=0.6 } 
                                )
                  { Coupled {  Poisson Electron Hole } } 

最初のQuasistationaryはIVの時と同様でCoupled{}のシミュレーションを行っています。

ただし、電圧の方向が順バイアスになっていることに注意。0.6Vまでの順バイアスをかけています。

 NewCurrent="CV_"    

    Quasistationary (           DoZero
                        MaxStep=0.02  MinStep=5e-6 InitialStep=1e-4
                        Increment=1.6 Decrement=4.0
                                Goal { Parameter="va"."dc" Voltage=-100 } 
                                )
                  { 
                          ACCoupled (
                                StartFrequency=1.0 EndFrequency=1.0
                                NumberOfPoints=1 Decade
                                        !(
                                        set nodelist "a"
                                        set sourcelist "va"
                                        for {set i 1} {$i<=@NumStripes@} {incr i} {
                                                        set nodelist "$nodelist c${i}"
                                                        set sourcelist "$sourcelist vc${i}"     
                                        }
                                        puts "Node($nodelist) Exclude($sourcelist)"     
                                        )!

                                ) {  Poisson Electron Hole } 
                  } 

新しくCV_という名前でプロットを定義した方のQuasistationaryは静電容量の電圧依存性をシミュレーションします。

system sectionで定義したva変数を -100Vまで変化させます。ステップの定義の仕方は既に学習した通りです。

ACCoupled(){}が今回新しく出てきたものです。ACシミュレーションではLCRメータと同様にある周波数の電圧をかけることで測定します。

その周波数は StartFrequencyEndFrequency で定義されます。(単位は[Hz]) この例では1Hzの周波数、1点でシミュレーションを行っています。

AC解析はNode()でセットされた電極間での容量をシミュレーションします。この場合v*で定義したSourceのlistを除くすべての電極間でシミュレーションを行っています。

CV測定結果

走り終わったCV測定の結果を見てみてください。CV_n57_ac_des.pltをinspectorで開きます。

X軸を v(a) Y軸を c(a,c2) としてプロットさせるとC-V特性が見られます。


CVmarker.png

(inspectorでのプロットの扱い方をあまり知らないので... ) sdeviceで 1/c^2の電圧依存性を見てみましょう。

同じファイル(CV_n57_ac_des.plt)をsvisualで開きます。

NewValueとして、c(a,c1) + c(a,c2) + c(a,c3) をSumCapacitanceという変数にします。

(実際は、 <c(a,c1):CV_n57_ac_des>+<c(a,c2):CV_n57_ac_des>+<c(a,c3):CV_n57_ac_des> )

次に!NewValueとして 1/(SumCapacitance*SumCapacitance)を 1overCsqという変数名で作ります。

(実際は、1/(<SumCapacitance:CV_n57_ac_des>*<SumCapacitance:CV_n57_ac_des>))

1overCsqをv(a)の関数でプロットしてみてください。
1overC2marker.png

電圧に比例するはずですが、シミュレーションではちょっといびつな形をしています。

おそらく今回のシミュレーションのデバイスの大きさが小さいこと、cathode電極に対してanodeが広いことで、上に凸の形になったのかもしれません。

荷電粒子通過のシミュレーション (MIPシミュレーション)

まずは node 81を走らせてみましょう。MIP粒子通過のシミュレーションです。

しばらく時間がかかるのでMIP_des.cmdファイルの中身を見てみましょう。

IV_des.cmdと異なる点は Physicsモデルに HeavyIonが加わっていることと、Quasistationaryではなく、Transientが使われていることです。

HeavyIonのPhysicsモデル

Physics sectionに以下が追加されています。

これは単に時刻5e9s後に長さL幅whiの形に、1umあたり0.01pCの一様な電荷を置いているだけです。

        HeavyIon("ion1") (
                Direction=(@dirX@,@dirY@)
                Location=(@posX@,@posY@)
                Time=@<0.0 + 5e-9>@
                Length = @L@
                LET_f = 0.01
                Wt_hi = @whi@
                Gaussian
                PicoCoulomb
                )


Solve section

最初の部分は電圧を-100Vまでかけています。

(いきなり-100Vの初期値を与えるのではなくIVの時と同様小さいステップで上げて言っています。)

   Quasistationary (            DoZero
                        MaxStep=0.1  MinStep=1e-8 InitialStep=1e-3
                        Increment=2.0 Decrement=4.0
                                Goal { Name="anode" Voltage=@<-HV>@ } 
                        ##BreakCriteria {Current (Contact = "anode" minval = -1e-9 )}
                                )
                  { Coupled {  Poisson Electron Hole } } 
         #endif
         
         #if 1==0
         load(FilePrefix="n@node|IRRADIATION@")
         #endif

いかが、電圧-100Vに固定して電荷を置いた時に時間とともに電場分布や電荷がどのように動くかをシミュレーションする部分です。

 NewCurrent="MIP_"    
                
   Transient (          
                        initialtime=0 finaltime=@<0.0+100.0e-9>@
                        ##initialtime=0 finaltime=100.0e-9

                        ###MaxStep=1e-8
                        MaxStep=10 
                        MinStep=1e-18 InitialStep=1e-10
                        Increment=1.6 Decrement=4.0
                        TurningPoints(
                        (  condition ( Time( range=( 0 @<0.0 + 5e-9 - 5e-11>@ )))   value=1e-10 )               
                        (  condition ( Time( @<0.0 + 5e-9 - 5e-11>@) )    value=2e-12 )
                        (  condition ( Time( range=( @<0.0 + 5e-9 - 5e-11>@ @<0.0 + 5e-9 + 5e-11>@ )))   value=2e-12 )          
                        )
                 )
                  { 
                         Coupled {  Poisson Electron Hole } 
                  Plot(FilePrefix="n@node@_" time=(@<0.0 + 5e-9>@;@<0.0 + 5.02e-9>@;@<0.0 + 5.1e-9>@;@<0.0 + 5.2e-9>@;@<0.0 + 5.5e-9>@) nooverwrite )
                  } 
  -- Atlasj Silicon - 2020-05-21

META FILEATTACHMENT attachment="iv_break.png" attr="" comment="" date="1590030718" name="iv_break.png" path="iv_break.png" size="8871" user="AtlasjSilicon" version="1"
META FILEATTACHMENT attachment="iv_break_ly.png" attr="" comment="" date="1590030951" name="iv_break_ly.png" path="iv_break_ly.png" size="8683" user="AtlasjSilicon" version="1"
META FILEATTACHMENT attachment="field.png" attr="" comment="" date="1590051226" name="field.png" path="field.png" size="104903" user="AtlasjSilicon" version="1"
Added:
>
>
META FILEATTACHMENT attachment="IVmarker.png" attr="" comment="" date="1590503136" name="IVmarker.png" path="IVmarker.png" size="11552" user="AtlasjSilicon" version="1"
META FILEATTACHMENT attachment="CVmarker.png" attr="" comment="" date="1590506383" name="CVmarker.png" path="CVmarker.png" size="10828" user="AtlasjSilicon" version="1"
META FILEATTACHMENT attachment="1overC2marker.png" attr="" comment="" date="1590507303" name="1overC2marker.png" path="1overC2marker.png" size="68760" user="AtlasjSilicon" version="1"
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback