//VerilogA for lightsource,cw_realimageinput,veriloga `include "constants.vams" `include "disciplines.vams" module cw_realimageinput(Vreal,Vimag,Vlam,Opow,Ophase,Olam); parameter real GainCoeff = 1 from [0:inf); parameter real PhaseCoeff = 0 from (-360:360); input Vreal,Vimag,Vlam; output Opow,Ophase,Olam; electrical Vreal,Vimag,Vlam,Pout,Opow,Ophase,Olam; real mag,phase; analog begin mag=sqrt(pow(V(Vreal),2)+pow(V(Vimag),2)); phase=acos(V(Vreal)/mag); V(Opow) <+ pow(mag*GainCoeff,2); V(Ophase) <+ (PhaseCoeff+phase)/(2*`M_PI)*360.0; V(Olam) <+ V(Vlam); end endmodule