[HDLBits] Fsm serialdata

See also: Serial receiver

Now that you have a finite state machine that can identify when bytes are correctly received in a serial bitstream, add a datapath that will output the correctly-received data byte. out_byte needs to be valid when done is 1, and is don't-care otherwise.

Note that the serial protocol sends the least significant bit first.

复制代码
module top_module(
    input clk,
    input in,
    input reset,    // Synchronous reset
    output [7:0] out_byte,
    output done
); //
	reg [3:0] state,next;
    //0:还没接到起始位,1:接到起始位,...,9:接到最后一个数据位,10:接到终止位,11:没接到终止位
    always@(*) begin
        case(state)
            0:next<=in?0:1;
            1:next<=2;
            2:next<=3;
            3:next<=4;
            4:next<=5;
            5:next<=6;
            6:next<=7;
            7:next<=8;
            8:next<=9;
            9:next<=in?10:11;
            10:next<=in?0:1;
            //接到终止位后接到0即开始位,那就直接跳到1
            11:next<=in?0:11;
            //判断是否接到终止位。这里是设置了两种终止位状态来判断是否done
        endcase
    end

    always@(posedge clk) begin
        if(reset)
            state<=0;
        else
            state<=next;
    end
    assign done=(state==10);
    // Use FSM from Fsm_serial
    always@(posedge clk) begin
        case(state)
            1:out_byte[0]<=in;
            2:out_byte[1]<=in;
            3:out_byte[2]<=in;
            4:out_byte[3]<=in;
            5:out_byte[4]<=in;
            6:out_byte[5]<=in;
            7:out_byte[6]<=in;
            8:out_byte[7]<=in;            
        endcase
    end
    // New: Datapath to latch input bits.

endmodule
相关推荐
FPGA_ADDA5 小时前
RFSOC27DR+VU13P 6U VPX板卡
fpga开发·信号处理·adda射频采集·rfsoc27dr·vu13p
ARM+FPGA+AI工业主板定制专家5 小时前
【JETSON+FPGA+GMSL】实测分享 | 如何实现激光雷达与摄像头高精度时间同步?
人工智能·数码相机·机器学习·fpga开发·机器人·自动驾驶
白码王子小张5 小时前
FPGA实现CIC抽取滤波器
fpga开发·vivado·xilinx·cic滤波器
沉默_是金6 小时前
2024年江苏省大学生电子设计竞赛 || 无线传输信号模拟系统
fpga开发
ARM+FPGA+AI工业主板定制专家6 小时前
Jetson AGX Orin+GMSL+AI视觉开发套件,支持自动驾驶,机器人,工业视觉等应用
人工智能·机器学习·fpga开发·机器人·自动驾驶
ARM+FPGA+AI工业主板定制专家9 小时前
【JETSON+FPGA+GMSL+AI】自动驾驶与移动机器人的摄像头如何实现高精度时间同步?
网络·人工智能·机器学习·fpga开发·cnn·自动驾驶
cycf14 小时前
源同步接口(六)
fpga开发
电子凉冰14 小时前
FPGA强化-简易电压表的设计与验证
fpga开发
国科安芯18 小时前
抗辐照MCU芯片在低轨商业卫星原子钟中的适配与优化
单片机·嵌入式硬件·fpga开发·架构·risc-v
bnsarocket1 天前
Verilog和FPGA的自学笔记6——计数器(D触发器同步+异步方案)
笔记·fpga开发·verilog·自学·硬件编程