[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
相关推荐
传感器与混合集成电路10 小时前
1/16砖电源模块使能逻辑解析与上电时序设计
fpga开发
FPGA_小田老师16 小时前
ZYNQ7020笔记:MIO、EMIO、GPIO的区别及应用
fpga开发·gpio·zynq·外设·mio·emio
不会武功的火柴16 小时前
SystemVerilog语法(7)-接口(interface)
嵌入式硬件·fpga开发·仿真·ic验证·rtl
高速上的乌龟16 小时前
Lattice LFCPNX-100 Fpga开发+源码:基于I2c协议的IMU驱动控制
fpga开发
GateWorld17 小时前
LCD显示技术完全指南:原理·制造·驱动·FPGA实现之基础三
fpga开发·lcd显示·minilvds·fpga点屏
cjie22117 小时前
图像缩放因子的计算
计算机视觉·fpga开发
XINVRY-FPGA1 天前
XC7Z010-2CLG400I Xilinx Zynq-7000 FPGA
arm开发·嵌入式硬件·算法·fpga开发·硬件工程·dsp开发·fpga
XINVRY-FPGA1 天前
XCZU11EG-2FFVC1156I Xilinx Zynq UltraScale+ MPSoC EG FPGA
图像处理·嵌入式硬件·计算机视觉·fpga开发·硬件工程·dsp开发·fpga
unicrom_深圳市由你创科技2 天前
USB通信在FPGA上怎么实现?
fpga开发
深圳市尚想信息技术有限公司2 天前
可编程逻辑器件(CPLD/FPGA) 5CEBA4U15I7N电子元器件Altera半导体芯片IC
fpga·电子元器件·集成电路ic·逻辑芯片·逻辑ic