HDLBits刷题Day24,3.2.5.9 Design a Moore FSM

3.2.5.9 Design a Moore FSM

问题描述

分析:

1.s=000时,打开fr1,fr2,fr3和补充水dfr

2.s=001时,打开fr1,fr2

3.s=011时,打开fr1

4.s=111时,关闭

5.当水位下降时,打开dfr

绘制一下状态转移图

代码:

cs 复制代码
module top_module (
    input clk,
    input reset,
    input [3:1] s,
    output fr3,
    output fr2,
    output fr1,
    output dfr
); 
	parameter A=0,B=1,C=2,D=3,E=4,F=5;
    reg [2:0] state,next_state;
    always @(posedge clk) begin
        if(reset) state <= A;
        else state <= next_state;
    end
    
    
    always @(*) begin
        case(state)
            A:next_state = s[1]?B:A;
            B:next_state = s[2]?D:(s[1]?B:A);
            C:next_state = s[2]?D:(s[1]?C:A);
            D:next_state = s[3]?F:(s[2]?D:C);
            E:next_state = s[3]?F:(s[2]?E:C);
            F:next_state = s[3]?F:E;
        endcase
    end
    always @(*) begin
        case(state)
            A:{fr3,fr2,fr1,dfr} = 4'b1111; 
            B:{fr3,fr2,fr1,dfr} = 4'b0110;
            C:{fr3,fr2,fr1,dfr} = 4'b0111;
            D:{fr3,fr2,fr1,dfr} = 4'b0010;
            E:{fr3,fr2,fr1,dfr} = 4'b0011;
            F:{fr3,fr2,fr1,dfr} = 4'b0000;
        endcase
    end
endmodule
相关推荐
cpp_250122 分钟前
P1540 [NOIP 2010 提高组] 机器翻译
数据结构·c++·算法·队列·noip·洛谷题解
晚笙coding24 分钟前
LeetCode 98:验证二叉搜索树 —— 从局部判断到全局范围约束的递归思想
算法·leetcode·职场和发展
学计算机的计算基39 分钟前
回溯算法下篇:四道经典题讲透约束剪枝、原地标记、预计算与状态压缩
java·笔记·算法
霸道流氓气质1 小时前
SpringBoot中实现告警判定算法-位报警与模拟量阈值-技术详解
spring boot·算法·jquery
行者全栈架构师1 小时前
混元 Hy3 Agent 实战:季度报告 3 小时变 40 分钟
算法·架构·代码规范
兰令水2 小时前
hot100【acm版】【2026.7.21打卡-java版本】
java·开发语言·算法·leetcode·面试
好好沉淀2 小时前
主键选择(自增 vs UUID vs 雪花算法)
java·算法
屈服强度拉满2 小时前
SolidWorks草图绘制技巧大全
硬件工程
退休倒计时3 小时前
【每日一题】LeetCode 131. 分割回文串 TypeScript
算法·leetcode·typescript
小白说大模型3 小时前
AI Agent 调试实战:链路追踪、Prompt 可视化与异常定位的系统方法
java·人工智能·python·算法·prompt