//VerilogA for modulator,basicea,veriloga `include "constants.vams" `include "disciplines.vams" `define MAX_ARRAY 1000 module basicea(V1,V2,Gnd,Ipow,Iphase,Ilam,Opow,Ophase,Olam); parameter real Gam_c = 0 from (-inf:inf); parameter integer tau_L = 6 from [1:inf); parameter integer num_carriler = 2 from [1:inf); parameter integer num_voltage = 6 from [1:inf); //TODO: file for multinomial coefficients parameter string tau_file = "./tau_mat.in"; parameter string alpha_file = "./alpha_mat.in"; parameter string gamma_file = "./gamma_mat.in"; //Use LF!!! input Ipow,Iphase,Ilam; output Opow,Ophase,Olam; inout V1,V2,Gnd; electrical V1,V2,Ipow,Iphase,Ilam,Opow,Ophase,Olam,Gnd,Nph,Ns; real Vcalc; real Gamma=0,Alpha=0; real tau=0; real opow,ophase; integer file_tau,file_alpha,file_gamma; integer i,j; real f=1e-18; real readfile=0; real tau_array[0:`MAX_ARRAY]; real alpha_array[0:`MAX_ARRAY]; real gamma_array[0:`MAX_ARRAY]; branch (Gnd,Ns) Cs,Is; branch (Ns,Gnd) It; branch (Gnd,Nph) Cph,Iph; analog begin if (readfile==0) begin file_tau=$fopen(tau_file,"r"); file_alpha=$fopen(alpha_file,"r"); file_gamma=$fopen(gamma_file,"r"); if (file_tau==0 || file_alpha==0 || file_gamma==0) begin $display("Error: Could not open file"); $finish; end for (i=0;i