irpas技术客

数字IC面试手撕代码(四)_FPGA硅农

网络 5456

奇偶校验

奇偶校验,意思是判断一个向量的若干比特中,1的个数是奇数个还是偶数个,所谓奇校验,是指加上校验位后,使得整个数据中1的个数为奇数个,而偶数校验是指加上校验位之后,整个数据中1的个数为偶数个。因此,奇偶校验的关键就是判断一个向量中,1的个数的奇偶性。 我们来看一个3位的向量101,它的1的个数是偶数个(2个),因此,如果是偶校验,那么校验位应该是0,如果是奇校验,校验位应该是1,而我们发现: 0=1^ 0 ^1 (偶校验) 1=~(1^ 0 ^ 1)(奇校验) 这不是巧合,而是一个普遍规律,因此,我们可以得到奇校验和偶校验校验位的计算公式: parity=^a (偶校验) parity=~(^a) (奇校验)

verilog描述

奇校验

module odd_parity( input logic [7:0] data, output logic parity ); assign parity=~(^data); endmodule

偶校验

module even_parity( input logic [7:0] data, output logic parity ); assign parity=^a; endmodule


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #数字IC面试手撕代码四 #1 #偶校验11