第一章 在DE2-115上用状态机思想实现LED流水灯
1.1 状态机设计思路
- 状态定义:定义多个状态,每个状态对应一个LED亮起。
- 状态转移:按顺序从一个状态转移到下一个状态。
- 计数器:用于控制每个状态的持续时间。
1.2 Verilog代码实现
- 环境配置

- 代码
module led_fsm(
input wire clk,
input wire reset,
output reg [7:0] leds
);
parameter STATE0 = 3'b000;
parameter STATE1 = 3'b001;
parameter STATE2 = 3'b010;
parameter STATE3 = 3'b011;
parameter STATE4 = 3'b100;
parameter STATE5 = 3'b101;
parameter STATE6 = 3'b110;
parameter STATE7 = 3'b111;
reg [2:0] current_state, next_state;
reg [25:0] cnt;
always @(posedge clk or posedge reset) begin
if (reset) begin
current_state <= STATE0;
cnt <= 0;
end else begin
if (cnt == 25'd10000000) begin
cnt <= 0;
current_state <= next_state;
end else begin
cnt <= cnt + 1</