Circuits--Building--FSM1101

  1. FSM1101

    module top_module (
    input clk,
    input reset, // Synchronous reset
    input data,
    output start_shifting);

    复制代码
     parameter s0 = 3'd0;
     parameter s1 = 3'd1;
     parameter s2 = 3'd2;
     parameter s3 = 3'd3;
     parameter s4 = 3'd4;
     
     reg[2:0] state;
     reg[2:0] next_state;
     
     always@(*)
         begin
             case(state) 
                s0:
                    begin
                        if(data) next_state = s1;
                        else     next_state = s0;
                    end
                 s1:
                    begin
                        if(data) next_state = s2;
                        else     next_state = s0;
                    end
                 s2:
                    begin
                        if(data) next_state = s2;
                        else     next_state = s3;
                    end
                 s3:
                    begin
                        if(data) next_state = s4;
                        else     next_state = s0;
                    end
                 s4: next_state = s4;
                    
             endcase
         end
     
     always@(posedge clk)
         begin
             if(reset)
                 state <= s0;
             else
                 state <= next_state;
         end
     
     assign start_shifting = (state == s4);

    endmodule

相关推荐
又菜又爱玩的东哥39 分钟前
【Verilog 3-8译码器设计与仿真:深入理解case语句与组合逻辑】
fpga开发
fengxin_rou1 小时前
JVM 核心笔记:对象创建、生命周期与类加载器详解
java·jvm·笔记
weixin_704266051 小时前
Spring Cloud Gateway 完整版笔记
笔记
Risehuxyc1 小时前
<= 是Verilog中的非阻塞赋值操作符
fpga开发
qeen871 小时前
【算法笔记】二分查找与二分答案
c语言·c++·笔记·学习·算法·二分
脆皮炸鸡7551 小时前
进程的程序替换
linux·经验分享·笔记·vim·学习方法
扣脑壳的FPGAer1 小时前
傅里叶级数、傅里叶变换、Z变换、数字滤波器
fpga开发·信号处理
萌新小码农‍2 小时前
机器学习概述 学习笔记day2
笔记·学习·机器学习
daanpdf2 小时前
大一《中国近代史纲要》题库及答案PDF知识点整理笔记
笔记·pdf
曦月逸霜2 小时前
区块链技术与应用学习笔记(持续更新中)
笔记·学习·区块链