FPGA新起点V1开发板(十)——按键控制LED

简介: FPGA新起点V1开发板(十)——按键控制LED

一、实验任务

二、代码展示

module key_led(
    input            sys_clk,
    input            rst_n,
    input      [3:0] key,
    
    output reg [3:0] led
    
);

// reg define
reg [23:0] cnt;
reg [1:0]  led_ctrl;

//0.2s计数器
always @ (posedge sys_clk or negedge rst_n) begin
    if(!rst_n)
        cnt <= 24'd0;
    else
        if(cnt < 24'd1000_0000)
            cnt <= cnt + 1'b1;
        else
            cnt <= 24'd0;

end

//每隔0.2s改变的四个状态
always @ (posedge sys_clk or negedge rst_n) begin
    if(!rst_n)
        led_ctrl <= 2'b0;
    else
        if(cnt == 24'd1000_0000)
            led_ctrl <= led_ctrl + 1'b1;
        else
            led_ctrl <= led_ctrl;

end

//按键控制
always @ (posedge sys_clk or negedge rst_n) begin
    if(!rst_n)
        led <= 4'b0000;
    else
        if(key[0] == 1'b0)
            case(led_ctrl)
                2'd0 : led <= 4'b1000;
                2'd1 : led <= 4'b0100;
                2'd2 : led <= 4'b0010;
                2'd3 : led <= 4'b0001;
            endcase
        else if(key[1] == 1'b0)
            case(led_ctrl)
                2'd0 : led <= 4'b0001;
                2'd1 : led <= 4'b0010;
                2'd2 : led <= 4'b0100;
                2'd3 : led <= 4'b1000;
            endcase
        else if(key[2] == 1'b0)
            case(led_ctrl)
                2'd0 : led <= 4'b1111;
                2'd1 : led <= 4'b0000;
                2'd2 : led <= 4'b1111;
                2'd3 : led <= 4'b0000;
            endcase
        else if(key[3] == 1'b0)
            led <= 4'b1111;
        else
            led <= 4'b0000;

end

endmodule

三、管脚分配

感悟

  1. 可以有下划线24'd000_0000
  2. LED是高电平点亮(共阴)
  3. key是为0时,为按下

key是线网,是根据之后的管脚分配,判断高低电平的,所以不能赋值

led被定义为寄存器,再之后管脚分配,输出高低电平,所以需要赋值,所以是寄存器类型

相关文章
|
4月前
|
异构计算
FPGA新起点V1开发板(八-语法篇)——状态机
FPGA新起点V1开发板(八-语法篇)——状态机
|
4月前
|
异构计算
FPGA新起点V1开发板(九)——流水灯
FPGA新起点V1开发板(九)——流水灯
|
4月前
|
异构计算
FPGA新起点V1开发板(七-语法篇)——程序框架+高级语法(选择性做笔记)
FPGA新起点V1开发板(七-语法篇)——程序框架+高级语法(选择性做笔记)
|
4月前
|
C语言 芯片 异构计算
FPGA新起点V1开发板(六-语法篇)——verilog简介+基础语法
FPGA新起点V1开发板(六-语法篇)——verilog简介+基础语法
|
4月前
|
异构计算
FPGA入门(5):控制LED灯
FPGA入门(5):控制LED灯
50 0
|
存储 算法 芯片
星嵌OMAPL138+国产FPGA工业开发板 中科亿海微 EQ6HL45系列FPGA 替代spartan-6
OMAPL138+FPGA工业开发板TI ARM9+C674x DSP 中科亿海微国产FPGA EQ6HL45LL-2CSG324G,基于OMAPL138+国产FPGA的DSP+ARM+FPGA三核评估套件。
|
测试技术 异构计算
Xines广州星嵌全新FPGA开发板—OMAPL138/C6748 DSP+ARM+FPGA
基于广州星嵌TI OMAP-L138(浮点DSP C6748+ARM9) +Xilinx Spartan-6 FPGA工业核心板
|
算法 网络协议 安全
m基于DE2-115开发板的网口UDP数据收发系统FPGA实现
m基于DE2-115开发板的网口UDP数据收发系统FPGA实现
263 0

热门文章

最新文章