一.电路架构
二. 代码
`include "constants.vams"
`include "disciplines.vams"
module cp_model(vin,vclk,en,vout);
input vin,vclk,en;
output vout;
electrical vin,vclk,en,vout;
parameter real vout_max=21 from (0:inf];
parameter real deltv=0.3 from (0:inf];
parameter real vdd=3 from (0:inf];
parameter real iload=1.2u from [0:inf);
parameter real cstep=2p from [0:inf);
parameter real fclk=10M from [0:inf);
real vout_val;
analog begin
@(initial_step)begin
vout_val=V(vin);
end
@(cross(V(vclk)-vdd/2,1))begin
if(V(en)==0)begin
vout_val=0;
end
else begin
if(iload==0)begin
if(vout_val<vout_max)begin
vout_val=vout_val+deltv;
end
else begin
vout_val=vout_max;
end
end
else begin
if(vout_val<vout_max)begin
vout_val=vout_val+deltv-(iload/(2*fclk*cstep));
end
else begin
vout_val=vout_max-(iload/(2*fclk*cstep));
end
end
end
end
V(vout)<+vout_val;
end
endmodule
三. 仿真
1.testbench
2.仿真结果