这段代码~~输入一个时钟,默认情况下对clk10分频后从clkout输出
fdown来一个上升沿那么变成12分频,再来一个变成14分频。
fup来一个上升沿~~就减少分频比,比如原来是12分频,来一个fup的上升沿变成10分频
module text(clk,clkout,fdown,fup);
input clk;
input fdown;
input fup;
wire clk;
wire fdown;
wire fup;
output clkout;
reg clkout;
integer count;
integer countcp;
initial
begin
count = 0;
countcp = 4;
end
always @(posedge clk)
begin
if(count == countcp)
begin
count = 0;
clkout = ~clkout;
end
else
begin
count = count + 1;
end
end
always @(posedge fdown,posedge fup)
begin
if(fdown)
begin
countcp = countcp + 1;
end
else
begin
countcp = countcp - 1;
end
end
endmodule
但是用quartus仿真出来后~~fup可以实现功能,但是如果用fdown不能实现预想的功能
能分析下为什么么~~谢谢大家~~弄了一个下午了~ |