状态机-重叠序列检测

题目描述
设计一个状态机,用来检测序列 1011,要求:

1、进行重叠检测 即10110111 会被检测通过2次

2、寄存器输出,在序列检测完成下一拍输出检测有效

注意rst为低电平复位

信号示意图

画出状态转移图

`timescale 1ns/1nsmodule sequence_test2(input wire clk  ,input wire rst  ,input wire data ,output reg flag
);
//*************code***********//parameter idle   = 5'b00001;parameter state1 = 5'b00010;parameter state2 = 5'b00100;parameter state3 = 5'b01000;parameter state4 = 5'b10000;reg[4:0] c_state,n_state;always@(posedge clk or negedge rst)beginif(!rst)c_state <= idle;elsec_state <= n_state;endalways@(*)begincase(c_state)idle:beginif(data == 1'b1)n_state = state1;elsen_state = idle;endstate1:beginif(data == 1'b0)n_state = state2;elsen_state = state1;endstate2:beginif(data == 1'b1)n_state = state3;elsen_state = idle;endstate3:beginif(data == 1'b1)n_state = state4;elsen_state = state2;endstate4:beginif(data == 1'b1)n_state = state1;elsen_state = state2;enddefault:n_state = idle;endcaseendalways@(posedge clk or negedge rst)beginif(!rst)flag <= 1'b0;else if(c_state == state4)flag <= 1'b1;elseflag <= 1'b0;end
//*************code***********//
endmodule

方法二

`timescale 1ns/1nsmodule sequence_test2(input wire clk  ,input wire rst  ,input wire data ,output reg flag
);
//*************code***********//parameter S0=0, S1=1, S2=2, S3=3, S4=4;reg [2:0] state, nstate;always@(posedge clk or negedge rst) beginif(~rst)state <= S0;elsestate <= nstate;endalways@(*) beginif(~rst)nstate <= S0;elsecase(state)S0     : nstate <= data? S1: S0;S1     : nstate <= data? S1: S2;S2     : nstate <= data? S3: S0;S3     : nstate <= data? S4: S2;S4     : nstate <= data? S1: S2;default: nstate <= S0;endcaseendalways@(posedge clk or negedge rst) beginif(~rst)flag <= 0;elseflag <= state==S4;end//*************code***********//
endmodule

状态机-重叠序列检测相关推荐

  1. Verilog训练笔记(1)——非重叠序列检测

    非重叠序列检测器 1.要求: (1)检测非重叠的4位1101序列,当检测到一次该序列时o_en信号拉高一个时钟周期,o_cnt信号加一: (2)o_cnt信号最大值为7 (3)当i_valid拉高时为 ...

  2. 【Verilog HDL 训练】第 05 天(序列检测)

    1. dff和latch有什么区别. 锁存器是一种对脉冲电平(也就是0或者1)敏感的存储单元电路,而触发器是一种对脉冲边沿(即上升沿或者下降沿)敏感的存储电路. "触发器" 泛指一 ...

  3. 有重叠与无重叠序列之序列检测与序列产生

    目录 前言 无重叠序列产生 移位寄存器实现 状态机实现 有重叠序列产生 移位寄存器方式实现 状态机方式实现 博文推荐 前言 序列检测与序列产生是一对对称的设计,就像有微分就有积分一样. 序列检测分为有 ...

  4. 三段式状态机_FPGA笔试题——序列检测(FSM状态机)

    FSM有限状态机,是FPGA和数字IC相关岗位必须要掌握的知识点,在笔试和面试中都非常常见. (1)了解状态机:什么是摩尔型状态机,什么是米利型状态机,两者的区别是什么?一段式.二段式.三段式状态机的 ...

  5. 序列检测(FSM状态机)

    序列产生和检测(FSM状态机) 提示:FSM有限状态机,是FPGA和数字IC相关岗位必须要掌握的知识点,在笔试和面试中都非常常见. 文章目录 序列产生和检测(FSM状态机) 前言 一.状态机基本概念 ...

  6. IC/FPGA校招笔试题分析(四)再看Moore状态机实现序列检测器

    参加了几次笔试,发现序列检测器是常考的内容,而之前认为序列检测器真的很简单,但是这次X疆的笔试题做完之后,我怀疑自己了. 画状态转移图的时候,我开始犹豫了,我怕我会没考虑全,甚至有点晕. 人家又问: ...

  7. FPGA实现序列检测(训练testbench写法)

    电路设计与状态机 FPGA的基础概念 Cyclone IV器件采用了M9K的嵌入式块RAM,即每个嵌入式存储器块的容量为9216bit.4个PLL,一个PLL可以最多支持5路输出. cyclone I ...

  8. HDLBits 系列(32)Sequence recognition(序列检测)

    目录 原题复现 审题 状态转移图 我的设计 原题复现 原题复现: Synchronous HDLC framing involves decoding a continuous bit stream ...

  9. 输入序列不连续的序列检测

    输入序列不连续的序列检测 题目描述 请编写一个序列检测模块,输入信号端口为data,表示数据有效的指示信号端口为data_valid.当data_valid信号为高时,表示此刻的输入信号data有效, ...

最新文章

  1. codeforce A. Design Tutorial: Learn from Math
  2. 初创公司谁来当你们的运维
  3. java 内存_java节省内存的几条建议
  4. 多线程之 CreateThread与_beginthreadex本质区别
  5. android BLE Peripheral 手机模拟设备发出BLE广播 BluetoothLeAdvertiser
  6. CCS3的过渡、变换、动画以及响应式布局、弹性布局
  7. 可自由扩展的圆角矩形制作方法
  8. 操作系统大内核和微内核_操作系统中的内核I / O子系统
  9. 怎么检测不到我的音频_新专利显示未来的AirPods可能会检测手势 并具有旋转式音量控制功能...
  10. 微信分享接口 略缩图 php
  11. directdraw显示yuv视频,出现屏保时,yuv显示不出来,表面丢失
  12. java考试系统倒计时的实现_(Java程序设计)第11章设计考试系统中的倒计时.ppt
  13. 点击验证码时候自动刷新功能
  14. 杭州电信域名解析服务器,浙江电信的DNS是多少?
  15. TF卡座的工作原理,TF卡座的内部结构,详图,自弹式TF卡座的内部结构原来是这么回事
  16. C语言——顺序结构训练题
  17. 小米手环6 获取amaztools key(windows版)
  18. 助推建筑业数字化转型升级,紫光云再出招
  19. 基于微信小程序的校园食堂窗口自助点餐系统#毕业设计
  20. Trac - Trac Links

热门文章

  1. 51CTO的技术门诊谈OSSIM
  2. 转-用qemu-nbd实现mount虚拟硬盘到Host上的功能
  3. js预览待上传的本地图片
  4. Ext Ajax:如何调用Ext.Ajax.request方法和使用Java Servlet进行处理
  5. android mvp 作用,Android MVP与MVC的区别和理解
  6. php直接的模块接口,api(接口)模块
  7. 手机配件实体店好做不_装修不做踢脚线可以吗?银川昌禾告诉你不做踢脚线有多好...
  8. Assigning to Classes CodeForces - 1300B
  9. HTML5的入门教程
  10. 如何设置 homestead zhong redis 开机自启_CentOS安装Redis