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
没有成帧错误。奇偶校验通过第一个字节,通过第二个字节失败&