首页 > 其他分享 >奇偶校验

奇偶校验

时间:2022-09-22 23:34:20浏览次数:66  
标签:发送 校验位 个数 校验 奇偶校验 数据

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

相关文章