FPGA学习流水灯(板间实现)

    科技2022-08-05  122

    FPGA第一个例程

    简易流水灯 代码如下:

    module cy4( input ext_clk_25m, input ext_rst_n, output reg[7:0] led ); //------------------------------------- reg[24:0] cnt; always @ (posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n) cnt <= 25'd0; else cnt <= cnt+1'b1; //------------------------------------- // always @ (posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n) led <= 8'b0111_1111; //Ĭ else if(cnt == 25'h1ffffff) led <= {led[6:0],led[7]}; else ; endmodule

    代码分析

    reg[24:0] cnt;

    cnt是用来控制流水灯的闪烁频率的寄存器,这里设置的是25位 系统内部时钟频率为25MHz

    else if(cnt == 25'h1ffffff) led <= {led[6:0],led[7]};

    当cnt全为1时,流水灯变化一次,可以计算出流水灯的间隔时间为 1/25MHZ *(2^25),约为1.3秒。

    led <= {led[6:0],led[7]};

    这是控制led灯循环左移。

    烧录结果:

    Processed: 0.030, SQL: 8