Simple FSM 3(synchronous reset)

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

parameter A=2'b00,B=2'b01,C=2'b10,D=2'b11;
reg [1:0]state,next_state;
// State transition logic
always@(*)begin
    case(state)
        A:begin
            next_state=(in)?B:A;
        end
        B:begin
            next_state=(in)?B:C;
        end
        C:begin
            next_state=(in)?D:A;
        end
        D:begin
            next_state=(in)?B:C;
        end
    endcase
end
// State flip-flops with synchronous reset
always@(posedge clk)begin
    if(reset)begin
        state<=A;
    end
    else begin
        state<=next_state;
    end
end
// Output logic
assign out=(state==D)?1:0;

endmodule

posted @   江左子固  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示