[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
相关推荐
第二层皮-合肥7 小时前
【数据采集专栏】利用TDC提高外部触发精度
fpga开发
尤老师FPGA8 小时前
HDMI数据的接收发送实验(十三)
fpga开发
博览鸿蒙13 小时前
[特殊字符]AI+FPGA 全栈学习大纲【就业版】定位
人工智能·学习·fpga开发
燎原星火*15 小时前
AD/DA硬件电路设计
fpga开发
GateWorld16 小时前
LCD显示技术完全指南:原理·制造·驱动·FPGA实现之点屏三
fpga开发·lcd显示·fpga点亮屏幕·minilvds
XINVRY-FPGA16 小时前
XC7Z035-2FFG900I Xilinx/AMD Zynq-7000 SoC FPGA
人工智能·嵌入式硬件·计算机视觉·fpga开发·硬件工程·dsp开发·fpga
zlinear数据采集卡1 天前
基准电压电路深度解析:从理论参数到ZLinear采集卡的精准参考实战
c语言·单片机·嵌入式硬件·fpga开发·自动化
ALINX技术博客2 天前
【黑金云课堂】FPGA技术教程Vitis开发:PS端SD读写
fpga开发·vitis·sd读写
泛联新安2 天前
VHawk-Lint——军工FPGA/ASIC设计质量自主可控的基石
fpga·芯片设计·eda
派勤电子2 天前
2026 支持 FPGA 工控机 AI 加速应用场景详解
gpu·fpga·npu·工控机·ai工控机·fpga工控机·工业级工控机