题解 | #奇偶校验#
奇偶校验
http://www.nowcoder.com/practice/67d4dd382bb44c559a1d0a023857a7a6
目录
奇偶校验
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
。
Verilog篇题解 文章被收录于专栏
本人对牛客网verilog篇题目一些理解