题解 | #奇偶校验#
奇偶校验
http://www.nowcoder.com/practice/67d4dd382bb44c559a1d0a023857a7a6
下表是8421BCD码的奇偶效验码。偶校验:数据和校验位中“1”的个数总和为偶数个;其中校验位even = ^bus(缩减运算,即even=bus[0]^bus[1]……bus[31]); 奇校验:数据和校验位中“1”的个数总和位奇数个;其中校验位odd = ~even(即对偶校验位进行按位取反); 经过计算奇校验位odd和偶校验位even皆是一位二进制数。 参考代码如下: `timescale 1ns/1ns module odd_sel( input [31:0] bus, input sel, output check ); //*************code***********// wire even ; wire odd ; assign even = ^bus ; assign odd = ~even ; assign check = (sel) ? even : odd; //*************code***********// endmodule