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

相关推荐
大磕学家ZYX8 分钟前
JavaScript学习笔记
javascript·笔记·学习
囚生CY8 小时前
【学习笔记】Langchain基础(二)
笔记·学习·langchain
tiantianuser10 小时前
RDMA简介7之RoCE v2可靠传输
服务器·fpga开发·verilog·xilinx·rdma·可编程逻辑
忘川w11 小时前
《网络安全与防护》知识点复习
笔记·安全·web安全·网络安全
zkinglin12 小时前
AORSA编译指南
笔记·其他·能源
FF-Studio12 小时前
万物皆数:构建数字信号处理的数学基石
算法·数学建模·fpga开发·自动化·音视频·信号处理·dsp开发
wu~97013 小时前
计算机网络-自顶向下—第一章概述重点复习笔记
笔记·计算机网络
李元豪15 小时前
【行云流水AI笔记】根据上面泳道图,请问如果加入强化学习,在哪些模块添加比较好,返回添加后的泳道图。
人工智能·笔记
羊小猪~~16 小时前
数据库学习笔记(十六)--控住流程与游标
数据库·笔记·学习
程序员Xu16 小时前
【大厂机试题解法笔记】恢复数字序列
笔记·算法·深度优先