* SPICE netlist
D1 bv P001 De0
D2 bv ev De
D3 bv ev Der
Vae P001 ev 0
D4 bv N001 Dc0
Vac N001 cv 0
D5 bv cv Dc
D6 bv cv Dcr
B2 ev bv I=uramp(i(vac))*fa(br,v(ev,bv),var)*2/(1-(limit(v(ev,bv),0,Vebmax)/Vebmax)**nMe) rpar=1000Meg tripdt={10m*tr}
L1 C cv {Lc} Rser={Rc} Rpar={Rc*100}
L2 ev E {Le} Rser={Re} Rpar={Re*100}
L3 B bv {Lb} Rser={Rb} Rpar={Rb*100}
C2 x 0 {tr} Rser=0
B3 cv bv I=max(a1*v(x),v(y))
B4 y 0 v=(uramp(i(vae)*2)*fc(bf,v(cv,bv),bVcb)+(0.1*is+isc))/MM(v(cv,bv),bVcb,nMc)-(0.1*is+isc) tripdt={100m*tf} tripdv=.1
R1 x y 1
.param af=bf/(bf+1) ar=br/(br+1)
.func fa1(x) x/(1+x)
.func fb(x,y,z) (1+x*(1+y/z))
.param Lc=10n Le=10n Lb=10n a1=1 ; a1<=1.
.param i0=1m ft=25.8m vx=ft*log(1+i0/is*af)
.param ix=ise*(exp(vx/(ft*ne))-1)
.param Bfx=(1/(1-af+ix/i0)-1)*(1+bVce/Vaf)
.param Vebmax=max((bVec-0.6)*fb(br,bVec-0.6,var)**(1/nMe),bVeb)
.param nMc=log(1+Bfx)/log(bVcb/bVce)
.func fa(x,y,z) 1-1/(1+x*(1+y/z))
.func MM(x,y,z) 1+1f-(limit(x,0,y)/y)**z
.func fc(x,y,z) Fa1(x*(1+y/z))
.param bVce=40 bVcb=100 bVeb=7 bVec=6 nMc=3 nMe=1.2 BF=100 BR=2 RE=1 RC=5 RB=100
.param is=100f ise=20p isc=600p ne=1.8 nc=2 vaf=60 var=20
.param tf=400p tr=2.50n mje=0.4 mjc=0.3 cje=20p cjc=15p kFt=5

* LTspice schematic (.asc)
Version 4
SHEET 1 880 976
WIRE 200 -472 152 -472
WIRE 344 -472 280 -472
WIRE 440 -472 344 -472
WIRE 152 -440 152 -472
WIRE 152 -408 152 -440
WIRE -24 -376 -24 -408
WIRE -72 -184 -152 -184
WIRE -24 -184 -24 -296
WIRE -24 -184 -72 -184
WIRE 56 -184 -24 -184
WIRE 152 -184 56 -184
WIRE 152 -104 152 -184
WIRE -152 -56 -152 -104
WIRE -24 -56 -24 -184
WIRE 56 -56 56 -184
WIRE -408 72 -440 72
WIRE -152 72 -152 8
WIRE -152 72 -328 72
WIRE -72 72 -152 72
WIRE -24 72 -24 8
WIRE -24 72 -72 72
WIRE 56 72 56 8
WIRE 56 72 -24 72
WIRE 152 72 152 -24
WIRE 152 72 56 72
WIRE -24 104 -24 72
WIRE -152 120 -152 72
WIRE 56 120 56 72
WIRE 152 136 152 72
WIRE -152 280 -152 264
WIRE -72 280 -152 280
WIRE -24 280 -24 168
WIRE -24 280 -72 280
WIRE 56 280 56 184
WIRE 56 280 -24 280
WIRE 152 280 152 216
WIRE 152 280 56 280
WIRE -24 376 -24 280
WIRE -24 488 -24 456
FLAG -24 -408 C
IOPIN 960 -400 Out
FLAG -24 488 E
IOPIN 960 496 Out
FLAG -440 72 B
IOPIN 544 80 In
FLAG -72 72 bv
FLAG -72 -184 cv
FLAG -72 280 ev
FLAG 152 -328 0
FLAG 344 -408 0
FLAG 440 -472 x
FLAG 152 -440 y
SYMBOL diode -168 120 R0
SYMATTR Value De0
SYMATTR InstName D1
SYMBOL diode -40 104 R0
SYMATTR InstName D2
SYMATTR Value De
SYMBOL diode 40 120 R0
SYMATTR InstName D3
SYMATTR Value Der
SYMBOL voltage -152 168 R0
SYMATTR InstName Vae
SYMATTR Value 0
SYMBOL diode -136 8 R180
SYMATTR InstName D4
SYMATTR Value Dc0
SYMBOL voltage -152 -88 R180
SYMATTR InstName Vac
SYMATTR Value 0
SYMBOL diode -8 8 R180
SYMATTR InstName D5
SYMATTR Value Dc
SYMBOL diode 72 8 R180
SYMATTR InstName D6
SYMATTR Value Dcr
SYMBOL bi 152 216 M180
SYMATTR InstName B2
SYMATTR Value I=uramp(i(vac))*fa(br,v(ev,bv),var)*2/(1-(limit(v(ev,bv),0,Vebmax)/Vebmax)**nMe)  rpar=1000Meg  tripdt={10m*tr}
SYMBOL ind -40 -392 R0
SYMATTR InstName L1
SYMATTR Value {Lc}
SYMATTR SpiceLine Rser={Rc} Rpar={Rc*100}
SYMBOL ind -40 360 R0
SYMATTR InstName L2
SYMATTR Value {Le}
SYMATTR SpiceLine Rser={Re} Rpar={Re*100}
SYMBOL ind -424 88 R270
SYMATTR InstName L3
SYMATTR Value {Lb}
SYMATTR SpiceLine Rser={Rb} Rpar={Rb*100}
SYMBOL cap 328 -472 R0
SYMATTR InstName C2
SYMATTR Value {tr}
SYMATTR SpiceLine Rser=0
SYMBOL bi 152 -104 R0
SYMATTR InstName B3
SYMATTR Value I=max(a1*v(x),v(y))
SYMBOL bv 152 -424 R0
SYMATTR InstName B4
SYMATTR Value v=(uramp(i(vae)*2)*fc(bf,v(cv,bv),bVcb)+(0.1*is+isc))/MM(v(cv,bv),bVcb,nMc)-(0.1*is+isc)  tripdt={100m*tf} tripdv=.1
SYMBOL res 296 -488 R90
SYMATTR InstName R1
SYMATTR Value 1