本文主要是介绍FPGA学习流水灯(板间实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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灯循环左移。
烧录结果:
这篇关于FPGA学习流水灯(板间实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!