odule clk_div_1000(
input clk_i,
output reg clk_o
);
reg [9:0] c ;
always @ (posedge clk_i) if ( c >= 499 ) c<=0;else c<=c+1;
always @ (posedge clk_i) if (c==499) clk_o<= ~clk_o;
endmodule
测试FPGA内部的时钟频率,比如100M,直接印出来测试不准确,可以降低1000倍后再测试。使用上述的代码。
C从0-499每500个clk_i周期循环一次。
clk_o则每500个clk_i周期取反一次。两次取反就是clk_o的周期,就是1000个clk_i周期。