一个简单的CPLD分频问题
//16.384M有源晶振module clk_div(clk1M,clk16M);
output clk1M;
input clk16M;
reg cnt;
reg clk1M;
initial
begin
cnt = 0;
clk1M = 0;
end
always @(negedge clk16M)
begin
if(cnt==4b'1000)
begin
clk1M <= ~clk1M;
cnt <= 4'b0;
end
cnt <= cnt+1'b1;
end
//assign clk1M=clk16M;
endmodule
仿真可以通过,但不知为何出来的都是125K的方波。如果程序主体只用“assign clk1M=clk16M;”,才看到16M正弦波。
补充:硬件是MAXII的EPM1270 俺对Verilog不熟,不过搅得“cnt <= cnt+1'b1;”这句的位置不太对劲,似应放在else里。
否则当满足if条件时,又清零又加一,有二义性了。 if(cnt==4b'1000)
页:
[1]