题解 | #奇偶校验#
奇偶校验
https://www.nowcoder.com/practice/67d4dd382bb44c559a1d0a023857a7a6
奇偶校验的学习记录
简单理解就是,奇校验就是数据中1的个数是加上奇偶校验位位1,一共奇数个1;此时判断奇偶校验结果为正确;
如数据是10101010共8位有4个1,加上奇校验位是1,一共奇数个1,此时奇偶校验判断结果输出为0,即奇偶校验输出没问题。
偶校验一样。
`timescale 1ns/1ns
module odd_sel(
input [31:0] bus,
input sel,
output check
);
reg check;
//*************code***********//
wire reg_check;
assign reg_check = ^bus;
// assign check = sel?reg_check:~reg_check;
always@(*) begin
if (sel==1'b1)
check = reg_check;
else
check = ~reg_check;
end
//*************code***********//
endmodule
知识点:
- 判断数据中有奇数个1还是偶数个1,用异或。如进入的数据data_in=8'b0101_0101;
r_check = ^data_in = data_in[7]^data_in[6]^data_in[5]^data_in[4]^data_in[3]^data_in[2]^data_in[1]^data_in[0]
结果为1,则有奇数个1;
结果为0,则有偶数个1;
- 判断数据中是否有1,用与逻辑;
有1,相与后结果为1;否则为0
- 判断数据中是否有0,用或逻辑;
有0,相与后结果为0;否则为1
#刷题#

查看14道真题和解析