experiences with hicum0 - tu dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb cv/cbe...

29
Experiences with Hicum0 ... from a didactic point of view ... www.franz-sischka.de 1 From Wikipedia, Nov. 2013: DIDACTIC METHOD: The theory of Didactic Learning methods focuses on the baseline knowledge students possess, and seeks to improve upon and convey this information. It also refers to the foundation or starting point in a lesson plan, where the overall goal is knowledge.

Upload: others

Post on 22-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Experiences with Hicum0

... from a didactic point of view ...

www.franz-sischka.de 1

From Wikipedia, Nov. 2013:

DIDACTIC METHOD:

The theory of Didactic Learning methods focuses

on the baseline knowledge students possess,

and seeks to improve upon and convey this information.

It also refers to the foundation or starting point in a lesson plan,

where the overall goal is knowledge.

Page 2: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Agenda

• Comparing the Default Parameters Gummel-Poon ↔ VBIC ↔ Hicum0

• Hicum0: Questionable Verilog-Proposed Test Parameter Values

2

• Hicum0: Questionable Verilog-Proposed Test Parameter Values

Page 3: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Didactics About Device Modeling

- The success of SPICE in the early 1970’s is also related to its specific model implementation paradigm:

> get reasonable simulation results even if no model parameters are known> get better results the more parameters you know

3

- Knowing *no* parameters means: > simulate a device with its internal default parameters

Page 4: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Comparing The Default Parameters

Gummel-Poon ↔ VBIC ↔ Hicum0

... let’s see how this is reflected in Hicum0 ...

Gummel-Poon ↔ VBIC ↔ Hicum0

4

Page 5: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Where to get the Default and the Test Parameters

// Parameter initialization with default values

// Collector current

parameter real is = 1.0e-16 from [0:1] `P(spice:name="is" info="(Modified) saturation current" m:factor="yes" unit="A");

parameter real mcf = 1.00 from (0:10] `P(spice:name="mcf" info="Non-ideality coefficient of forward collector current");

parameter real mcrr = 1.00 from (0:10] `P(spice:name="mcr" info="Non-ideality coefficient of reverse collector current");

parameter real vef = `INF from (0:`INF] `P(spice:name="vef" info="forward Early voltage (normalization volt.)" unit="V" default:value="infinity");

parameter real ver = `INF from (0:`INF] `P(spice:name="ver" info="reverse Early voltage (normalization volt.)" unit="V" default:value="infinity");

parameter real aver = 0.0 from [0:100] `P(spice:name="aver" info="bias dependence for reverse Early voltage");

parameter real iqf = `INF from (0:`INF] `P(spice:name="iqf" info="forward d.c. high-injection toll-off current" unit="A" m:factor="yes" default:value="infinity");

parameter real fiqf = 0 from [0:1] `P(spice:name="fiqf" info="flag for turning on base related critical current" default:value="zero");

An Excerpt of the Verilog-A File:

5

parameter real fiqf = 0 from [0:1] `P(spice:name="fiqf" info="flag for turning on base related critical current" default:value="zero");

parameter real iqr = `INF from (0:`INF] `P(spice:name="iqr" info="inverse d.c. high-injection roll-off current" unit="A" m:factor="yes" default:value="infinity");

parameter real iqfh = `INF from (0:`INF] `P(spice:name="iqfh" info="high-injection correction current" unit="A" m:factor="yes");

parameter real tfh = 0.0 from [0:`INF) `P(spice:name="tfh" info="high-injection correction factor" test:value="2e-9" m:factor="yes");

parameter real ahq = 0 from [-0.9:`INF] `P(spice:name="ahq" info="Smoothing factor for the d.c. injection width");

// Base current

parameter real ibes = 1e-18 from [0:1] `P(spice:name="ibes" info="BE saturation current" unit="A" m:factor="yes");

parameter real mbe = 1.0 from (0:10] `P(spice:name="mbe" info="BE non-ideality factor");

parameter real ires = 0.0 from [0:1] `P(spice:name="ires" info="BE recombination saturation current" test:value="1e-16" unit="A" m:factor="yes");

...

...

...

Page 6: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Gu

mm

el-

Po

on

De

fau

lt

foutput_vb routput_vbrgummel (is=0) rgummel (is=0)

beta (dyn)

rbeta (dyn)

fgummel fgummel_beta_dynCV/CBE CV/CBC

6

S21 S22S11 S12

Page 7: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

VB

IC D

efa

ult

beta (dyn)

rbeta (dyn)

foutput_vb routput_vbrgummel (is=0) rgummel (is=0)

fgummel fgummel_beta_dynCV/CBE CV/CBC

7

S21 S22S11 S12

Page 8: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Hic

um

0 v

1.3

De

fau

lt

rbeta (dyn)

beta (dyn)

fgummel fgummel_beta_dynCV/CBE CV/CBC

foutput_vb routput_vbrgummel (is=0) rgummel (is=0)

8

S21 S22S11 S12

missing

Page 9: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Hic

um

0 v

1.3

De

fau

ltIB

CS

co

rre

cte

d

rbeta (dyn)

beta (dyn)

fgummel fgummel_beta_dynCV/CBE CV/CBC

foutput_vb routput_vbrgummel (is=0) rgummel (is=0)

Hic

um

0 v

1.3

9

S21 S22S11 S12

Page 10: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

The Proposed Default Parameter Correction

10

Note: 2 default parameter values should be changed

Page 11: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Agenda

• Comparing the Default Parameters Gummel-Poon ↔ VBIC ↔ Hicum0

• Hicum0: Questionable Verilog-Proposed Test Parameter Values

11

• Hicum0: Questionable Verilog-Proposed Test Parameter Values

Page 12: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Questionable Hicum0 v1.3 Test Parameter Values

in the Verilog File: Avalanche Effect Parameters

12

proposed new Test Parameter Values

Page 13: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Existing Verilog TestParameter Values w/o Avalanche Params

questionable

plot results,

not expected

when applying

test param’s !

conflict: since noTest Value is givenfor VR0E, its default VR0E=2.5

foutput_vb routput_vbrgummel (is=0) rgummel (is=0)

fgummel fgummel_beta_dynCV/CBE CV/CBC

13

its default VR0E=2.5 conflicts with the otherproposed Test Values

S21 S22S11 S12

Page 14: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Existing Verilog TestParameter Values w/o Avalanche Params

foutput_vb routput_vbrgummel (is=0) rgummel (is=0)

fgummel fgummel_beta_dynCV/CBE CV/CBC

VR0Enew= INF

VR0E = 2.5

14

S21 S22S11 S12

VR0E = 2.5

Page 15: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Proposed Test Parameter Value Correction

Plus Corrected VR0E Default Value Proposal

15

Note: 2 test parameter values should be changed,

and also the default parameter value of VR0E

Page 16: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Wrap-Up: The Corrected Values At A Glance

16

Page 17: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Proposal For More Realistic Test Parameter Values

� To ease the life of Hicum0 beginners,

an improved set of test parameter values is desirable.

The new values should represent a typical bipolar performance.

17

� For a better learning of the Hicum0 model,

the values of the 2nd order effects should be set such

that these effects ‘just’ begin to affect the simulation result.

Page 18: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

New Proposed Test ParametersIS = 1E-16 RBI0 = 50 CJS0 = 5f

IT_MOD = 0 VR0E = 1.000MEG VDS = 0.6

MCF = 1.00 VR0C = 1.000MEG ZS = .333

MCR = 1.00 FGEO = 0.656 VPTS = 50

VEF = 8.0 RBX = 10 CBCPAR = 1f

VER = 5.0 RCX = 5 CBEPAR = 2f

AVER = 0 RE = 1 T0 = 5p

IQF = 10.00m CJE0 = 20f DT0H = 2p

FIQF = 0 VDE = 0.9 TBVL = 4p

IQR = 1.000MEG ZE = 0.5 TEF0 = 1p

IQFH = 1.000MEG AJE = 2.5 GTE = 1.400

TFH = 10.00n VDEDC = 0.9 THCS = 20.00p

AHQ = 0 ZEDC = 0.5 AHC = 750.0m

18

AHQ = 0 ZEDC = 0.5 AHC = 750.0m

IBES = 1E-18 AJEDC = 2.5 TR = 1n

MBE = 1.0 CJCI0 = 5f RCI0 = 150

IRES = 1E-16 VDCI = .7 VLIM = .5

MRE = 2.0 ZCI = .333 VPT = 10

IBCS = 1E-17 VPTCI = 50 VCES = 0.1

MBC = 1.0 CJCX0 = 5f KF = 10.00n

ITSS = 1E-18 VDCX = .7 AF = 2.0

MSF = 1.0 ZCX = .333 FLSH = 2

ISCS = 1E-17 VPTCX = 50 RTH = 50

MSC = 1.0 FBC = .5 CTH = 0.1

EAVL = 40

KAVL = 1

Page 19: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Results With New Proposed Set Of Test Parameters

foutput_vb routput_vbrgummel (is=0) rgummel (is=0)

fgummel fgummel_beta_dynCV/CBE CV/CBC

19

S21 S22S11 S12

Page 20: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

BONUS SLIDES:

Model RobustnessModel Robustness

20

Page 21: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Gummel-Poon Default Parameters

f_gummel

ib(vb,vc) ic(vb,vc)

range extension:2x vbmax & 2x vcmax

MODEL ROBUSTNESS

21

Page 22: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Gummel-Poon Default Parameters

f_output

modeled modeled

MODEL ROBUSTNESS

22

modeled modeled

ic(vc,vb)ib(vc,vb)

Page 23: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

VBIC Default Parameters

f_gummelrange extension:2x vbmax & 2x vcmax

ib(vb,vc) ic(vb,vc)

MODEL ROBUSTNESS

23

Page 24: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

VBIC Default Parameters

f_output

modeled modeled

MODEL ROBUSTNESS

24

modeled modeled

ic(vc,vb)ib(vc,vb)

Page 25: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Hicum0 v1.3 - With Proposed Default Parameter Values MODEL ROBUSTNESS

f_gummel

ib(vb,vc) ic(vb,vc)

range extension:2x vbmax & 2x vcmax

25

Note: max ic and ib ~800 Ampere(!), due to other parameters than the previously discussed IBCS and VR0E

Page 26: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Hicum0 v1.3 - With Proposed Default Parameter Values

f_output

modeled

MODEL ROBUSTNESS

26

modeled

modeled

ic(vc,vb)

ib(vc,vb)

Note: max ic and ib ~800 Ampere(!), due to other parameters than the previously discussed IBCS and VR0E

Page 27: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

Wrap-Up

• The Default Parameter Values of Hicum0 should provide

> simulation results similar to those of the Gummel-Poon and the VBIC model.

• The Test Parameter Values should feature

27

• The Test Parameter Values should feature

> convergence in all simulators

> have values which represent the begin of their modeling effect,

so that beginners can learn the model easily.

Page 28: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

... and last not least ...

28

Page 29: Experiences with Hicum0 - TU Dresden · rgummel (is=0) rgummel (is=0) foutput_vb routput_vb CV/CBE CV/CBC fgummel fgummel_beta_dyn VR0E new = INF VR0E = 2.5 14 S11 S12 S21 S22. Proposed

29

Consulting for Electronic

Device Measurement

Data Verification

and Modeling

www.franz-sischka.deEngineering Office

SPQR

Deutsch – English – Français – Latinum