Verilog专题(三十)Serial receiver with parity checking(有奇偶校验的串口协议)

本文介绍了如何在串行接收器中添加奇偶校验功能,使用奇数奇偶校验确保接收到的9位数据中有奇数个1。设计包括一个FSM,用于检测起始位、数据位、奇偶校验位和停止位,并在正确接收并验证奇偶校验后发出完成信号。同时提供了一个用于计算输入流奇偶校验的Verilog模块,并展示了波形图和设计代码。
摘要由CSDN通过智能技术生成

HDLBits网址:https://hdlbits.01xz.net/wiki/Main_Page

 

题目

    我们要向串行接收器添加奇偶校验。奇偶校验在每个数据字节后增加一个额外的位。将使用奇数奇偶校验,其中接收到的9位中1的数量必须为奇数。例如,101001011满足奇偶校验(有5个1),而001001011不满足。

    更改上面的FSM和数据路径以执行奇偶校验。仅当正确接收到一个字节且其奇偶校验通过时,才声明完成信号。像串行接收器FSM一样,该FSM需要标识起始位,等待所有9位(数据和奇偶校验),然后验证终止位是否正确。如果在预期的情况下没有出现停止位,则FSM必须等待直到找到停止位,然后再尝试接收下一个字节。

    提供了以下模块,该模块可用于计算输入流的奇偶校验(这是带复位的TFF)。预期的用途是应该为它提供输入位流,并在适当的时间进行重置,以便它计算每个字节中1位的数目。

    请注意,串行协议首先发送最低有效位,然后在8个数据位之后发送奇偶校验位。

module parity (
   input clk,
   input reset,
   input in,
   output reg odd);

   always @(posedge clk)
       if (reset) odd <= 0;
       else if (in) odd <= ~odd;

endmodule

 

    没有成帧错误。奇偶校验通过第一个字节,通过第二个字节失败&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值