题解 | #奇偶校验#
奇偶校验
http://www.nowcoder.com/practice/67d4dd382bb44c559a1d0a023857a7a6
`timescale 1ns/1ns
module odd_sel(
input [31:0] bus,
input sel,
output check
);
//*************code***********//
//为了和波形相同,题目应改为:sel输出校验结果(1输出偶校验,0输出奇校验)
//结论:奇反偶同
//首先明确bus与check的1的总个数为偶,即偶校验。总个数为奇,即奇校验
//举个例子简单明了:
//奇校验:^bus:0且check:1,^bus:1且check:0
//偶校验:^bus:0且check:0,^bus:1且check:1
//奇反偶同:奇校验时:校验位与异或相反,偶校验时:校验位与异或相同
assign check = sel ? ^bus : ~(^bus);
//*************code***********//
endmodule
module odd_sel(
input [31:0] bus,
input sel,
output check
);
//*************code***********//
//为了和波形相同,题目应改为:sel输出校验结果(1输出偶校验,0输出奇校验)
//结论:奇反偶同
//首先明确bus与check的1的总个数为偶,即偶校验。总个数为奇,即奇校验
//举个例子简单明了:
//奇校验:^bus:0且check:1,^bus:1且check:0
//偶校验:^bus:0且check:0,^bus:1且check:1
//奇反偶同:奇校验时:校验位与异或相反,偶校验时:校验位与异或相同
assign check = sel ? ^bus : ~(^bus);
//*************code***********//
endmodule