高手求救,verilog怎么实现变化的频率
高手求救,verilog怎么实现变化的频率?该模块的分频系数是有外部给定的。如一个八位的二进制数。部分程序代码如下:module clock(clk, divN,clkout);
input clk;
input divN;
output clkout;
reg clkout;
reg cnt;
always @(posedge clk)
begin
if (cnt == divN)
begin
cnt <=0;
clkout <= ~clkout;
end
else
begin
cnt <= cnt + 8'd1;
end
end
endmodule
现在的问题是,我的仿真结果和divN的值不一致。请大侠指点一二。多谢了。 Quartus II 的仿真波形不对啊 以上是不对的,你这样的分频数位divN * 2了
如果要分频数为divN,
则把这句"if (cnt == divN)"改成"if (cnt == divN)", (divN 相当于divN除以2)
但是不能保证完全正确,因为如果divN为奇数(即最低位为0),则就有一个时钟差了。因为除以2不能为整数;
如果是奇数分频,则考虑使用双沿时钟。
页:
[1]