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周期。

本文介绍了一种在FPGA中精确测试时钟频率的方法,通过将时钟频率降低1000倍来提高测试精度。利用Verilog代码实现了一个计数器,每500个输入时钟周期计数器归零并使输出时钟取反,从而得出原始时钟频率。
652

被折叠的 条评论
为什么被折叠?



