做一个FPGA频率计,但是用单片机处理数据,FPGA只做计数用。 如图
file:///C:/Documents%20and%20Settings/lihua/Application%20Data/Tencent/Users/84272367/QQ/WinTemp/RichOle/MMXCIXLA}@J6S41RWPQRT~N.jpg
[img]file:///C:/Documents%20and%20Settings/lihua/Application%20Data/Tencent/Users/84272367/QQ/WinTemp/RichOle/6GCNV[1QTR6VS@KW1~K)(WK.jpg[/img]
代码如下:
module FQ_tester(test_clk,M_clk,rst,con_dataout,dataout);
input test_clk;//被测频率
input rst;
input M_clk;//标准频率
output dataout;//被测频率计数输出
inout[1:0] con_dataout;//被测频率计数输出位控制信号
reg con_dataout;
reg on_clk=1'b1;//开门信号
reg[7:0] dataout;
reg a;//D触发器输出
reg[24:0] M_count;//标准频率计数器
reg[31:0] test_count;//被测频率计数器
wire b,c;
assign b=a&M_clk;
assign c=a&test_clk;
[email=always@(posedge]always@(posedge[/email] test_clk)//D触发器
begin
a<=on_clk;
end
[email=always@(posedge]always@(posedge[/email] b)//标准频率计数器
begin
M_count<=M_count+1'b1;
if(M_count==25'd25000000)
begin
M_count<=25'b0000000000000000000000000;
on_clk<=~on_clk;
con_dataout<=2'b00;
end
end
[email=always@(posedge]always@(posedge[/email] rst or posedge c)//被测频率计数输出位控制信号
begin
if(rst)
test_count<=32'b0;
else
test_count<=test_count+1'b1;
end
[email=always@(con_dataout)//]always@(con_dataout)//[/email]被测频率计数器输出,管脚个数不够,板子上引出管脚少,输出时得复用管脚
begin
case(con_dataout)
2'b00: dataout=test_count[31:24];
2'b01: dataout=test_count[23:16];
2'b10: dataout=test_count[15:8];
2'b11:
begin
dataout=test_count[7:0];
on_clk=~on_clk;
end
endcase
end
endmodule
哪个朋友帮我看下,问题出在哪里,我是新手,刚学verilog语言 |