香菜跟葱都不要 2019-12-09 18:21 采纳率: 100%
浏览 1260
已结题

verilog用状态机实现循环彩灯控制器(含清零功能)

用状态机实现循环彩灯控制器(含清零功能)000→001→010→100→010→001→000→111→000→111→(循环)

  • 写回答

2条回答 默认 最新

  • zhaoyang_yt 2019-12-11 14:45
    关注

    module led
    (
    input clk,
    input rst_n,

    output led_000,
    output led_001,
    output led_010,
    output led_100,
    output led_111
    );

    parameter LED_000 = 5'b00001,
    LED_001 = 5'b00010,
    LED_010 = 5'b00100,
    LED_100 = 5'b01000,
    LED_111 = 5'b00010;

    reg [4:0] cnt;
    reg [4:0] cur_state;
    reg [4:0] nxt_state;

    always @(posedge clk or negedge rst_n)
    begin
    if(~rst_n)
    cur_state <= LED_000;
    else
    cur_state <= nxt_state;
    end

    always @(*)
    begin
    nxt_state = cur_state;
    case(cur_state)
    LED_000 : if(cnt==5'h1f)
    nxt_state = LED_001;
    LED_001 : if(cnt==5'h1f)
    nxt_state = LED_010;
    LED_010 : if(cnt==5'h1f)
    nxt_state = LED_100;
    LED_100 : if(cnt==5'h1f)
    nxt_state = LED_111;
    LED_111 : if(cnt==5'h1f)
    nxt_state = LED_000;
    endcase
    end

    always @(posedge clk or negedge rst_n)
    begin
    if(~rst_n)
    cnt <= 5'd0;
    else
    cnt <= cnt + 1'd1;
    end

    assign led_000=cur_state[0];
    assign led_001=cur_state[1];
    assign led_010=cur_state[2];
    assign led_100=cur_state[3];
    assign led_111=cur_state[4];

    endmodule

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月28日
  • 已采纳回答 7月28日

悬赏问题

  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services