1、什么是奇偶校验
校验其实就是为了验证数据正确性,奇偶校验就是计算发送的二进制数据中1的个数;
奇校验:发送的二进制数中1的个数为奇数个1;
偶校验:发送的二进制数中1的个数为偶数个1;
2、例子举例
如果发送方需要发送一个8bit的数据,我们采用奇校验的方式去校验数据的正确性
发送方
发送8bit数据:10101010
发送方校验位:1
计算发送数据中的1的个数有偶数个1,则发送方的校验位设置为1,目的是让其发送的数据1的个数为奇数个;
接收方
接收方通过计算接收下数据:数据位10101010+校验位1
如果数据个数为奇数个1,则数据正确,否则数据有误
偶校验则相反,1中的个数为偶数个
3、Verilog如何计算数据中1的个数的奇偶性
module check_bit( input clk, input rst, input [ 7 : 0 ] data, output reg odd ); always@(posedge clk) begin if(rst == 1'b1) begin odd <= 1'b0; end else begin odd <= ^odd; //^ -- 按位异或 end end endmodule按位异或说明
二进制数值 | 异或值 | 备注 | |
0 | 0 | 0 |
数据相同为0 数据不同为1 |
0 | 1 | 1 | |
1 | 0 | 1 | |
1 | 1 | 0 |
例如 data = 10101010
对数据data进行按位异或:
1^0^1^0^1^0^1^0 = 0
如果上述哪儿有不对的还请指正
标签:发送,校验位,个数,校验,奇偶校验,数据 From: https://www.cnblogs.com/chyeveryday/p/16721194.html