Circuits--Sequential--Finite6

1. Lemmings2

module top_module (
    input clk,
    input areset,
    input bump_left,
    input bump_right,
    input ground,
    output walk_left,
    output walk_right,
    output aaah
);
    parameter left = 2'b0;
    parameter right = 2'b1;
    parameter hleft = 2'b10;
    parameter hright = 2'b11;
    reg[1:0] state;
    reg[1:0] next_state;
    wire[1:0] p;

    assign p = {bump_left,bump_right};

    always @(*) begin
        case(state)
            left: 
                begin
                    if (ground == 1'b0) begin
                        next_state = hleft;
                    end
                    else if ((p == 2'b10)||(p == 2'b11)) begin
                        next_state = right;
                    end
                    else begin
                        next_state = left;
                    end

                end
            right:
                begin
                    if (ground == 1'b0) begin
                        next_state = hright;
                    end
                    else if ((p == 2'b01)||(p == 2'b11)) begin
                        next_state = left;
                    end
                    else begin
                        next_state = right;
                    end
                
                end
            hleft:
                begin
                    if (ground == 1'b0) begin
                        next_state = hleft;
                    end
                    else begin
                        next_state = left;
                    end
                
                end
            hright:
                begin
                    if(ground == 1'b0)
                        next_state = hright;
                	else
                    	next_state = right;
 				end
        endcase
    end

    always @(posedge clk or posedge areset) begin
        if (areset) begin
            state <= left;
        end
        else state <= next_state;
    end

    assign walk_left = (state == left);
    assign walk_right = (state == right);
    assign aaah  =((state == hleft)|(state == hright));

endmodule

相关推荐

  1. Circuits--Sequential--Finite6

    2024-04-30 06:06:04       32 阅读
  2. CIrcuits--Sequential--Finite_1

    2024-04-30 06:06:04       28 阅读
  3. Circuits--Sequential--Finite_2

    2024-04-30 06:06:04       29 阅读
  4. Circuits--Sequential--Finite4

    2024-04-30 06:06:04       31 阅读
  5. Circuits--Sequential--Finite5

    2024-04-30 06:06:04       30 阅读
  6. Circuits--Sequential--Finite7

    2024-04-30 06:06:04       35 阅读
  7. Circuits--Sequential--Finite--one hot

    2024-04-30 06:06:04       33 阅读
  8. Circuits--Sequential--More circuits

    2024-04-30 06:06:04       41 阅读
  9. Circuits--Sequential--Registers_1

    2024-04-30 06:06:04       31 阅读
  10. Circuits--Sequential--Registers_2

    2024-04-30 06:06:04       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-30 06:06:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-30 06:06:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-30 06:06:04       82 阅读
  4. Python语言-面向对象

    2024-04-30 06:06:04       91 阅读

热门阅读

  1. 记录一下初次使用linux服务器的问题解决

    2024-04-30 06:06:04       32 阅读
  2. Visual Studio 2019 远程调试工具

    2024-04-30 06:06:04       33 阅读
  3. MySQL 高级 - 第四章 | 配置文件与系统变量

    2024-04-30 06:06:04       24 阅读
  4. 清理 Conda 和 pip 缓存

    2024-04-30 06:06:04       28 阅读
  5. 【 深度可分离卷积】

    2024-04-30 06:06:04       29 阅读
  6. 设计模式(四)、策略模式

    2024-04-30 06:06:04       33 阅读