一个FPGA小白的艰辛历程,独自摸索,大家一起讨论、一起进步。
本文基于DE-10standard开发板实现花样流水灯,其他类型的开发板一样的,话不多说上代码:
module flash_led(
input clk,
input rst_n,
output reg[9:0]led
);
reg [24:0] cnt;//50MHZ时钟,计数0.5秒500000000/20
always@(posedge clk or negedge rst_n)
if(!rst_n)
cnt <= 25'd0;
else if(cnt == 25'd24_999_999)
cnt <= 25'd0;
else
cnt <= cnt + 1'b1;
always@(posedge clk or negedge rst_n)
if(!rst_n)
led <= 10'b0000_0000_01;
else if(cnt == 25'd24_999_999)
led <= {led[8:0],led[9]};
else
led <= led;
endmodule
在写代码的过程中出现了很多低级错误:引脚配置出错、计数器计数时把1‘b1写成了1'b0导致计数不成功。太低级的错误了。这只是简单的流水灯,可以根据需求更改led灯的逻辑代码实现。