// model of comparator with continous transfer function module continous_comparator(in,ref,out) input in,ref; output out; voltage in,ref,out; parameter real output_high = 5; parameter real output_low = 0 from (-inf:output_high); parameter real slope = 1k from (0:inf); real high_minus_low,high_plus_low,vout; analog begin if (analysis("static")) begin @(initial_step) begin high_minus_low = 0.5*(output_high - output_low); high_plus_low = 0.5*(output_high + output_low); end end V(out) <+ high_minus_low * tanh(slope*V(in,ref)) + high_plus_low; end endmodule