[资料分享] Quartus_II计数器常用的例程与工程模版

Aguilera   2018-9-22 21:22 楼主
文件夹模版
prj为工程文件存放目录
rtl为verilog可综合代码
img为设计相关图片存放目录(主要为了方便后期写文档)
doc为设计相关文档存放目录
testbench为对应的testbench存放目录

prj文件夹下的ip文件夹存放quartus ii中生成的ip核文件


计数器
LED,每500ms,状态翻转一次。
系统时钟为50M,对应周期为20ns
500ms = 500_000_000ns/20 = 25_000_000;

计数器每500ms清零一次。


Quartus_II源程序如下:
module counter(Clk50M,Rst_n,led);

        input Clk50M;        //系统时钟,50M
        input Rst_n;        //全局复位,低电平复位

        output reg led;        //led输出

        reg [24:0]cnt;        //定义计数器寄存器

//计数器计数进程        
        always@(posedge Clk50M or negedge Rst_n)
        if(Rst_n == 1'b0)
                cnt <= 25'd0;
        //else if(cnt == 25'd24_999_999)
        else if(cnt == 25'd24_999)
                cnt <= 25'd0;
        else
                cnt <= cnt + 1'b1;

//led输出控制进程
        always@(posedge Clk50M or negedge Rst_n)
        if(Rst_n == 1'b0)
                led <= 1'b1;
        //else if(cnt == 25'd24_999_999)
        else if(cnt == 25'd24_999)
                led <= ~led;
        else
                led <= led;

endmodule


回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复