奇偶校验电路
1、奇偶校验码
奇偶校验码是比较简单的数据校验码,可以检测出一位错误,但是并不能确定错误的位置。
如果数据中发生多位数据错误就可能检测不出来,更检测不到错误发生在哪一位;
2、实现方法
将有效信息位和校验位读入,判断1 的个数为奇数还是偶数个,在奇校验时,正常的情况下个数应该为奇数个,偶校验正常情况下应该时偶数个。
校验码的生成:对于奇校验,判断有效信息的位1的个数,若为偶数,则校验位为1,奇数则校验位为0;偶校验则相反。
3、用verilog设计实现8bit奇偶校验电路。
奇偶校验电路,一般多用于Uart中接受数据位的检验等操作。
通信中发送一个字节的数据,8位,加上一个校验位,一共9位。
如果是奇校验,8位中1的个数加上,校验位为1的情况,最终1的个数为奇数。
如果是偶校验,8位中1的个数加上,校验位为1的情况,最终1的个数为偶数。
module Odd_Even_Check(
input [7:0] indata,
output odd_bit,
output even_bit
);
assign even_bit = ^indata; //偶校验位是所有数据为按位异或得到
assign odd_bit = ~even_bit;
endmodule
//assign even_bit = ^a;
//等效于 assign even_bit = a[0]^a[1]^a[2]^a[3]^a[4]^a[5]^a[6]^a[7];