Q2b:Another FSM

题目网站
啊
参考的CSDN网站

module top_module (
    input clk,
    input resetn,    // active-low synchronous reset
    input x,
    input y,
    output f,
    output g
); 
    parameter A=0, B=1, C=2, D1=3, D2=4, D3=5, E=6, KEEP_1=7, KEEP_0=8;
    reg [3:0] state, next_state;
    
    always @(*) begin
        case(state)
            A: next_state = B;
            B: next_state = C;
            C: next_state = x ? D1:C;
            D1: next_state = x ? D1:D2;
            D2: next_state = x ? D3:C;
            D3: next_state = y ? KEEP_1:E;
            E: next_state = y ? KEEP_1:KEEP_0;
			KEEP_1: next_state = KEEP_1;
            KEEP_0: next_state = KEEP_0;
            default: next_state = A;
        endcase
    end
    
    always @(posedge clk) begin
        if(~resetn) state <= A;
        else state <= next_state;
    end
    
    assign f = (state==B);
    assign g = (state==D3) || (state==E) || (state==KEEP_1);
 
endmodule
posted @   江左子固  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示