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

相关推荐
3有青年4 分钟前
HPS cold reset pin和AVST configuration的功能和作用
fpga开发
saoys7 分钟前
Opencv 学习笔记:图像膨胀 / 腐蚀(附滑块动态调节腐蚀核大小)
笔记·opencv·学习
丝斯201113 小时前
AI学习笔记整理(42)——NLP之大规模预训练模型Transformer
人工智能·笔记·学习
凉、介15 小时前
深入 QEMU Guest Agent:虚拟机内外通信的隐形纽带
c语言·笔记·学习·嵌入式·虚拟化
njsgcs15 小时前
SIMA2 论文阅读 Google 任务设定器、智能体、奖励模型
人工智能·笔记
3有青年16 小时前
Altera FPGA操作系统支持的情况分析
fpga开发
云半S一16 小时前
pytest的学习过程
经验分享·笔记·学习·pytest
AI视觉网奇17 小时前
ue5.7 配置 audio2face
笔记·ue5
国科安芯17 小时前
卫星通讯导航FPGA供电单元DCDC芯片ASP4644S2B可靠性分析
单片机·嵌入式硬件·fpga开发·架构·安全性测试
崎岖Qiu19 小时前
【OS笔记35】:文件系统的使用、实现与管理
笔记·操作系统·存储管理·文件系统·os