FPGA点灯

源码下载

请到 github 下载全部工程,地址为 https://github.com/Lichee-Pi/Tang_FPGA_Examples/

Verilog代码

module led
(
    input wire CLK_IN, //时钟输入,24MHz
    input wire RST_N, //复位按键输入,低有效
    output wire [2:0]RGB_LED //RGB led输出
);

parameter time1 = 24’d24_000_000;//晶振为24Mhz,这里表示计数一秒

reg [2:0]rledout;
reg [23:0] count;
reg [1:0]shift_cnt;

initial
begin
    count=24’b0;
    rledout=3’b1;
    shift_cnt=2’b0;
end

always @(posedge CLK_IN)begin
    if(RST_N==0)begin //复位按键按下就清空计数并清空输出
        count <= 24’b0;
        rledout <= 3’b1;
        shift_cnt <=2’b0;
    end

    if(count == time1) //计数时间到
    begin
        count<= 24’d0; //清空计数值

        if(shift_cnt==2’b10)begin //移位3次
            rledout <= 3’b1;
            shift_cnt <=2’b0;
        end
        else begin
            rledout <= {rledout[1:0],1’b0}; //led输出移位
            shift_cnt <= shift_cnt + 1’b1;
        end
    end
    else
        count <= count + 1’b1; //计数累加
end

assign RGB_LED = rledout;
endmodule

上面的代码输入完且保存后,综合一下,接着自己对照板子原理图进行管脚约束。在生成比特流下载到fpga,可以看到板上的rgb led会移位闪烁。(emmm,闪烁效果太差,如果你有更好的可以发过来。(╯︵╰)