`include "constants.vams" `include "disciplines.vams" module opa_fd1(inp, inn, outp, outn); inout inp, inn; inout outp, outn; electrical inp, inn, outp, outn; real vin, voutp, voutn, vout0, ioutp, ioutn; parameter real GAIN = 10000 from (0:inf), // open loop gain POLE_FREQ = 1M from (0:inf), // cut-off frequency Rout = 100 from (0:inf); // output Resistance analog begin vin = V(inp, inn); voutp = V(outp); voutn = V(outn); // dominant pole vout0 = laplace_nd(GAIN*vin, {1},{1,1/(`M_TWO_PI*POLE_FREQ)}); // output current ioutp = (vout0 - voutp)/Rout; ioutn = (-vout0 - voutn)/Rout; // output curent I(outp) <+ -ioutp; I(outn) <+ -ioutn; end endmodule