|
发表于 2019-3-22 17:00:58
|
显示全部楼层
写了个20分频的例子给你,输出时正负电压输出,已经仿真验证过了, 如果需要0 1输出自己改动一下代码
`include "constants.vams"
`include "disciplines.vams"
module pll_clk(clk_in, clk_out);
parameter real period = 20;
parameter clk_vth = 0.75;
parameter div_factor = 50;
input clk_in;
output clk_out;
electrical clk_in, clk_out;
real clk_amplitude;
integer cnt;
analog begin
@(initial_step or initial_step("dc", "tran")) begin
clk_amplitude = 1;
cnt = 0;
end
@( cross (V (clk_in ) - clk_vth, 1, 10p) ) begin
cnt = cnt + 1;
if( cnt > period ) begin
clk_amplitude = clk_amplitude*-1;
cnt = 0;
end
end
V(clk_out) <+ transition( clk_amplitude, 10p, 10p, 10p);
end
endmodule
|
|