Circuits--Sequential--Finite4

  1. Simple FSM3 asy

    module top_module(
    input clk,
    input in,
    input areset,
    output out); //

    复制代码
     parameter A=2'd0;
     parameter B=2'd1;
     parameter C=2'd2;
     parameter D=2'd3;
     
     reg[1:0] state;
     reg[1:0] next_state;
     
     // State transition logic
     always@(*)
         begin
             case(state)
                 A:
                     begin
                         if(in==0) next_state = A;
                         else next_state = B;
                     end
                 B:
                     begin
                         if(in==0) next_state = C;
                         else next_state = B;
                     end
                 C:
                     begin
                         if(in==0) next_state = A;
                         else next_state = D;
                     end
                 D:
                     begin
                         if(in==0) next_state = C;
                         else next_state = B;
                     end
             endcase
         end
    
     // State flip-flops with asynchronous reset
     always@(posedge clk or posedge areset)
         begin
             if(areset)
                 state = A;
             else
                 state = next_state;
         end
    
     // Output logic
     assign out = (state == D);

    endmodule

  2. Simple FSM3 sy

    module top_module(
    input clk,
    input in,
    input reset,
    output out); //

    复制代码
     parameter A=2'd0;
     parameter B=2'd1;
     parameter C=2'd2;
     parameter D=2'd3;
     
     reg[1:0] state;
     reg[1:0] next_state;
     
     // State transition logic
     always@(*)
         begin
             case(state)
                 A:
                     begin
                         if(in==0) next_state = A;
                         else next_state = B;
                     end
                 B:
                     begin
                         if(in==0) next_state = C;
                         else next_state = B;
                     end
                 C:
                     begin
                         if(in==0) next_state = A;
                         else next_state = D;
                     end
                 D:
                     begin
                         if(in==0) next_state = C;
                         else next_state = B;
                     end
             endcase
         end
    
     // State flip-flops with asynchronous reset
     always@(posedge clk )
         begin
             if(reset)
                 state = A;
             else
                 state = next_state;
         end
    
     // Output logic
     assign out = (state == D);

    endmodule

相关推荐
Ccjf酷儿12 分钟前
操作系统 李治军 4 设备驱动与文件系统
笔记
Saniffer_SH1 小时前
【每日一题】PCIe答疑 - 接大量 GPU 时主板不认设备或无法启动和MMIO的可能关系?
运维·服务器·网络·人工智能·驱动开发·fpga开发·硬件工程
大白的编程日记.1 小时前
【计算网络学习笔记】Socket编程UDP实现简单聊天室
网络·笔记·学习
会编程是什么感觉...1 小时前
硬件 - 常见通信协议整合
单片机·嵌入式硬件·fpga开发
Saniffer_SH1 小时前
【每日一题】讲讲PCIe链路训练和枚举的前后关系
运维·服务器·网络·数据库·驱动开发·fpga开发·硬件工程
中屹指纹浏览器2 小时前
2025技术综述:指纹浏览器与国内IP适配的核心技术优化与实践
经验分享·笔记
im_AMBER2 小时前
weather-app开发手记 02 JSON基础 | API 调用 400 错误修复 | JWT 认证问题
笔记·学习·json·axios·jwt
阿蒙Amon2 小时前
JavaScript学习笔记:1.JavaScript简介
javascript·笔记·学习
Vincent_Zhang2333 小时前
专题:通过时间轴解释区分各种时态
笔记
爪洼守门员4 小时前
前端性能优化
开发语言·前端·javascript·笔记·性能优化