序列检测器(Moore型)

目录

描述

输入描述:

输出描述:

参考代码


描述

请用Moore型状态机实现序列"1101"从左至右的不重叠检测。

电路的接口如下图所示。当检测到"1101",Y输出一个时钟周期的高电平脉冲。

接口电路图如下:

输入描述:

input clk ,

input rst_n ,

input din ,

输出描述:

output reg Y

参考代码

cpp 复制代码
`timescale 1ns/1ns

module det_moore(
   input                clk   ,
   input                rst_n ,
   input                din   ,
 
   output	reg         Y   
);
    reg [4:0] state, next_state;
    parameter S0 = 5'b00001,
              S1 = 5'b00010,
              S2 = 5'b00100,
              S3 = 5'b01000,
              S4 = 5'b10000;
    
    always@(posedge clk or negedge rst_n)
        if(!rst_n)
            state <= S0;
        else
            state <= next_state;
    
    always@(*)
        case(state)
            S0: next_state <=  din ? S1 : S0;
            S1: next_state <=  din ? S2 : S0;
            S2: next_state <= ~din ? S3 : S2;
            S3: next_state <=  din ? S4 : S0;
            S4: next_state <=  din ? S1 : S0;
            default: next_state <= S0;
        endcase
    
    always@(posedge clk or negedge rst_n)
        if(!rst_n)
            Y <= 1'b0;
        else if(state == S4)
            Y <= 1'b1;
        else
            Y <= 1'b0;

endmodule     
相关推荐
ooo-p3 小时前
FPGA学习篇——Verilog学习之寄存器的实现
学习·fpga开发
北京青翼科技5 小时前
【PCIE711-214】基于PCIe总线架构的4路HD-SDI/3G-SDI视频图像模拟源
图像处理·人工智能·fpga开发·信号处理
G皮T13 小时前
【弹性计算】异构计算云服务和 AI 加速器(四):FPGA 虚拟化技术
阿里云·fpga开发·云计算·虚拟化·fpga·异构计算·弹性计算
落笔太慌张~19 小时前
[FPGA基础学习]实现流水灯与按键暂停
fpga开发
坚持每天写程序21 小时前
Processor System Reset IP 核 v5.0(vivado)
fpga开发
相醉为友21 小时前
001 使用单片机实现的逻辑分析仪——吸收篇
笔记·单片机·嵌入式硬件·fpga开发·嵌入式
【云轩】1 天前
《哪吒的混天绫FPGA》
笔记·嵌入式硬件·fpga开发
热爱学习地派大星1 天前
FPGA调试笔记
笔记·fpga开发
落笔太慌张~1 天前
[FGPA基础学习]分秒计数器的制作
学习·fpga开发
国科安芯2 天前
汽车电气架构中的电源架构
人工智能·嵌入式硬件·fpga开发·架构·汽车