cailiaoyige555 发表于 2011-6-4 22:45:15

哪个帮我看下代码,我新手,刚学verilog,先谢谢了

做一个FPGA频率计,但是用单片机处理数据,FPGA只做计数用。

module FQ_tester(test_clk,M_clk,rst,con_dataout,dataout);
input test_clk;//被测频率
input rst;
input M_clk;//标准频率
output dataout;//被测频率计数输出
inout con_dataout;//被测频率计数输出位控制信号
reg con_dataout;
reg on_clk=1'b1;//开门信号
reg dataout;
reg a;//D触发器输出
reg M_count;//标准频率计数器
reg test_count;//被测频率计数器

wire b,c;

assign b=a&M_clk;
assign c=a&test_clk;

always@(posedge test_clk)//D触发器
begin
        a<=on_clk;
end

always@(posedge 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

always@(posedge rst or posedge c)//被测频率计数输出位控制信号
begin
        if(rst)
                test_count<=32'b0;
        else
                test_count<=test_count+1'b1;
end

always@(con_dataout)//被测频率计数器输出,管脚个数不够,板子上引出管脚少,输出时得复用管脚
begin
        case(con_dataout)
        2'b00: dataout=test_count;
        2'b01: dataout=test_count;
        2'b10: dataout=test_count;
        2'b11:
                begin
                        dataout=test_count;
                        on_clk=~on_clk;
                end
        endcase
end
endmodule


谢谢帮我看下,指点下
页: [1]
查看完整版本: 哪个帮我看下代码,我新手,刚学verilog,先谢谢了