[HDLBits] Fsm hdlc

Synchronous HDLC framing involves decoding a continuous bit stream of data to look for bit patterns that indicate the beginning and end of frames (packets). Seeing exactly 6 consecutive 1s (i.e., 01111110) is a "flag" that indicate frame boundaries. To avoid the data stream from accidentally containing "flags", the sender inserts a zero after every 5 consecutive 1s which the receiver must detect and discard. We also need to signal an error if there are 7 or more consecutive 1s.

Create a finite state machine to recognize these three sequences:

  • 0111110: Signal a bit needs to be discarded (disc).
  • 01111110: Flag the beginning/end of a frame (flag).
  • 01111111...: Error (7 or more 1s) (err).

When the FSM is reset, it should be in a state that behaves as though the previous input were 0.

Here are some example sequences that illustrate the desired operation.

复制代码
module top_module(
    input clk,
    input reset,    // Synchronous reset
    input in,
    output disc,
    output flag,
    output err);
	//0-5识别为1,5为0跳discard,为1跳6.6为1跳error,为0跳flag
    reg [3:0]state,next;
    parameter discard=7,flagg=8,error=9;
    always@(*)begin
        case(state)
            0:next<=in?1:0;
            1:next<=in?2:0;
            2:next<=in?3:0;
            3:next<=in?4:0;
            4:next<=in?5:0;
            5:next<=in?6:discard;
            6:next<=in?error:flagg;
            discard:next<=in?1:0;
            flagg:next<=in?1:0;
            error:next<=in?error:0;
        endcase
    end
    always@(posedge clk) begin
        if(reset)
            state<=0;
        else
            state<=next;
    end
    assign disc=state==discard;
    assign flag=state==flagg;
    assign err=state==error;
endmodule
相关推荐
ThreeYear_s37 分钟前
基于FPGA的PID算法学习———实现PI比例控制算法
学习·算法·fpga开发
ThreeYear_s5 小时前
基于FPGA的PID算法学习———实现PID比例控制算法
学习·算法·fpga开发
第二层皮-合肥9 小时前
实战案例-FPGA如何实现JESD204B可重复的延迟
fpga开发
9527华安19 小时前
国产安路FPGA实现图像视频采集转HDMI输出,提供5套TD工程源码和技术支持
fpga开发·音视频·安路·安路fpga·tangdynasty
DQI-king1 天前
ZYNQ学习记录FPGA(二)Verilog语言
学习·fpga开发·zynq
9527华安1 天前
国产安路FPGA纯verilog图像缩放,工程项目解决方案,提供5套TD工程源码和技术支持
fpga开发·verilog·图像缩放·双线性插值·安路fpga
俺不是西瓜太郎´•ﻌ•`2 天前
实验四:图像灰度处理
fpga开发
GateWorld2 天前
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析(四)DPHY ECC
fpga开发·mipi csi2
贝塔实验室2 天前
FPGA 的硬件结构
arm开发·fpga开发·职场和发展·硬件架构·硬件工程·fpga·安全架构
GateWorld2 天前
《深入解析SPI协议及其FPGA高效实现》-- 第三篇:FPGA实现关键技术与优化
fpga开发·开源协议