//VerilogA for passive,jointer2,veriloga `include "constants.vams" `include "disciplines.vams" module jointer2(Ipow1,Iphase1,Ilam1,Ipow2,Iphase2,Ilam2,Opow,Ophase,Olam); parameter real n1 = 0.5 from [0:1]; parameter real n2 = 0.5 from [0:1]; input Ipow1,Iphase1,Ilam1,Ipow2,Iphase2,Ilam2; output Opow,Ophase,Olam; electrical Ipow1,Iphase1,Ilam1,Ipow2,Iphase2,Ilam2,Opow,Ophase,Olam; real r1,i1,r2,i2,ro,io; real iph1,iph2,oph; analog begin iph1=V(Iphase1)/360.0*2*`M_PI; iph2=V(Iphase2)/360.0*2*`M_PI; r1=sqrt(n1*V(Ipow1))*cos(iph1); i1=sqrt(n1*V(Ipow1))*sin(iph1); r2=sqrt(n2*V(Ipow2))*cos(iph2); i2=sqrt(n2*V(Ipow2))*sin(iph2); ro=r1+r2; io=i1+i2; oph=atan2(io,ro)/(2*`M_PI)*360.0; V(Opow) <+ pow(ro,2)+pow(io,2); V(Ophase) <+ oph; //Only same lambda can have correct outcom! V(Olam) <+ (V(Ilam1)+V(Ilam2))/2; end endmodule