目录

奇偶校验

Parity Check:在数据位后添加一个校验位,使得所有数位中1的个数为奇数或者偶数。

奇校验

添加校验位后,数位中的1总数是奇数。
比如:0110,奇校验位为1,变为01101。

偶检验

添加校验位后,数位中的1总数是偶数。
比如:0110,偶校验位为0,变为01100。

代码

`timescale 1ns/1ns
module odd_sel(
    input [31:0] bus,
    input sel,
    output check
);
//*************code***********//
    wire tmp;
    assign tmp = ^bus[31:0];
    assign check = sel? tmp:~tmp;
//*************code***********//
endmodule

简析

tmp = ^bus[31:0]等价于tmp = bus[31]^bus[30]^...^bus[0]。如果bus有奇数个1,tmp=1;反之,tmp=0