以往测频都是用各种单片机,为了提高测量范围,总是想尽各种办法啊,接触到FPGA后才发现,范围只是小菜啊,信号发生器才是关键,由于本人信号发生器比较一般最大只能输出15MHz的信号故上限频率无法测得,不过估计有25M吧, 50M的时钟频率。用
的是DE0的开发板.
module Freq_measure(clk,rst_n,SCE,RESET,DC,SDIN,SCLK,in_clk );
input clk;
input rst_n;
input in_clk; //AB11
output SCE;
output RESET;
output DC;
output SDIN;
output SCLK;
wire SDIN; //AB17
wire SCLK; //AA18
wire RESET; //AB20
wire SCE; //AA20
wire DC; //AB19
//**********测频模块***********************//
reg[24:0]in_clk_cnt;//sendnum
reg[25:0] one_s;
reg[25:0] sendnum;
reg ko_flag;
always @(posedge in_clk or negedge ko_flag)
if(ko_flag==0) in_clk_cnt<=0;
else in_clk_cnt<=in_clk_cnt+1;
always @(posedge clk or negedge rst_n)
if(!rst_n) begin one_s<=0;sendnum<=0;end
else if(one_s==26'd50000000)begin
sendnum<=in_clk_cnt;
one_s<=0;
ko_flag<=0;
end
else begin
one_s<=one_s+1;
ko_flag<=1;
end
Nokia5110 Nokia5110(
.clk(clk),
.rst_n(rst_n),
.SCE(SCE),
.RESET(RESET),
.DC(DC),
.SDIN(SDIN),
.SCLK(SCLK),
.sendnum(sendnum));
endmodule
示波器输出频率
实测频率:
用户427211 2012-11-20 13:01
用户785117 2012-11-20 10:32