//VerilogA for laser,dfb,veriloga `include "constants.vams" `include "disciplines.vams" module dfb(Vin,Vlam,Gnd,OpowL,OpowR,OphaseL,OphaseR,OlamL,OlamR); parameter real L = 300u from [0:inf); parameter real W = 1.5u from [0:inf); parameter real D = 0.2u from [0:inf); parameter real GAM = 0.3 from [0:1); parameter real T = 10n from [0:inf); parameter real BEATsp = 5e-5 from [0:inf); parameter integer ID = 0 from [0:1]; parameter real G0 = 25000 from [0:inf); parameter real Ntr = 1e24 from [0:inf); parameter real EPS = 6e-23 from [0:inf); parameter real B = 1e-16 from [0:inf); parameter real A = 7.5E-41 from [0:inf); parameter real Rl = 1e-8 from [0:1); parameter real Rr = 1E-8 from [0:1); parameter real ALFA0 = 5000 from [0:inf); parameter real Q1 = 1.9998 from [0:inf); parameter real Q2 = 1.4391E-4 from [0:inf); parameter real Rat = 1 from [0:inf); parameter real Ng = 3.6 from [0:inf); parameter real N0 = 6.5e13 from [0:inf); parameter real Vbi = 1.13 from [0:inf); parameter real EIT = 2 from [0:inf); parameter real Rs = 1E-5 from [0:inf); parameter real Cp = 0p from [0:inf); parameter real Rd = 1E15 from [0:inf); parameter real Csc0 = 0p from [0:inf); input Vin,Vlam; inout Gnd; output OpowL,OpowR,OphaseL,OphaseR,OlamL,OlamR; electrical Vin,Vlam,Gnd,OpowL,OpowR,OphaseL,OphaseR,OlamL,OlamR; electrical Nin1,Ns,Nph; real VT=`P_K*$temperature/`P_Q; real Vact; real Cg; real CPL,CPR,Tph,QV,Cph,Rph; real Cd,Csc; real N,G; real UL,UW,UD; real UN0,UG0,UNtr,UEPS; real UA,UB,UALFA0,ULAMBDA,ULSPEED,UQ2; branch (Nin1,Gnd) R2,C1,C2,C3,B1,B2,B3,B4; branch (Gnd,Ns) B5,B6,R3,C4; branch (Gnd,Nph) B7,C5; analog begin UL=L*1e6; UW=W*1e6; UD=D*1e6; UG0=G0*1e-6; UN0=N0*1e-18; UNtr=Ntr*1e-18; UEPS=EPS*1e18; UA=A*1e36; UB=B*1e18; UALFA0=ALFA0*1e-6; ULAMBDA=V(Vlam)*1e6; ULSPEED=`P_C*1e6; UQ2=Q2*1e6; Vact=UL*UW*UD; Cg=ULSPEED/Ng; CPL=`P_H*Cg*Vact*Rat*ULSPEED*(1-Rl)/ULAMBDA/UQ2; CPR=`P_H*Cg*Vact*Rat*ULSPEED*(1-Rr)/ULAMBDA/UQ2; Tph=Ng/(ULSPEED*(UALFA0+Q1/UQ2)); QV=`P_Q*Vact; Cph=QV; Rph=Tph/QV; N=UN0*(exp(V(Nin1,Gnd)/EIT/VT)-1.0); if (N