hi,everyone!
I need to creat a preemphasis filter with highpass character. this need to be done in digital circuit part. but I want to model it with analog method. so I use laplace_nd provide by veriloga to do this modeling.
the question is that ac simulation is correct. but when doing transient simulation, it goes wrong, simluation log shows that node voltage exceed 1GV, and the simualtion is aborted.
the code is as below. filter transfer function and ac character is shown in the picture.
Code:include "constants.vams
include disciplines.vams”
module preemphasis_va(in,out);
input in;
output out;
electrical in, out;
parameter r1=100e3;
parameter c1=72e-12;
parameter c2=3e-12;
parameter r3=65e3:
parameter c3=1e-12;
parameter kpd=30e-6/6.2831852;
parameter kvco=50e6*6.2831852;
parameter n=150;
parameter fref=16e6;
real a0,a1, a2, a3, a4;
real b0,b1;
real k;
real a[4:0];
real b[1:0];
analog begin
@(initial_step)
begin
k=kpd*kvco/n;
a8=1;
a1=r1*c1;
a2=(c1+c2+c3)/k;
a3=(r1*c1*(c2+c3)+r3*c3*(c1+c2))/k;
a4=(r1*r3*c1*c2*c3)/k;
b0=1;
b1=r1*c1;
a[e]=a0;
a[1]=a1;
a[2]=a2;
a[3]=a3;
a[4]=a4;
b[0]=b0;
b[1]=b1;
end
V(out)<+ laplace_nd(V(in),a,b);
end
endmodule

so what is wrong? thanks