1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| `include "constants.vams"
`include "disciplines.vams"
module singlecpdis (vinp, vinm, voutp, voutm);
inout vinp, vinm, voutp, voutm;
electrical vinp, vinm, voutp, voutm, in, in1, in2, out, out1, out2;
//parameter real n=1;
// parameter real fsamp = 10e6; // Sampling frequency
//parameter real CL = 100e-12 from (0:inf); // Capacitance C
//parameter real CT = 100e-12 from (0:inf);
parameter real G = 0.002;
parameter real T = 0.1e-6; // Sampling period
analog begin
V(in) <+ V(vinp)-V(vinm);
V(in1) <+ zi_nd(V(in),{1},{1},T);
V(in2) <+ zi_nd(V(in),{0,1},{1},T);
V(out) <+ V(voutp) - V(voutm);
V(out1) <+ zi_nd(V(out),{1},{1},T);
V(out2) <+ zi_nd(V(out),{0,1},{1},T);
I(in) <+ zi_nd(I(in),{1},{1},T);
I(out) <+ zi_nd(I(out),{1},{1},T);
I(in) <+ G*(V(in1)-V(out2));
I(out) <+ G*(V(out1)-V(in2));
end
endmodule |