用几何级数法设计代码检验位的方案如下:原代码共4位, 从左到右取权16,8,4,2;对乘积和以11为模取余作
原 代 码:6 1 3 7
各乘以权:16,8,4,2
乘积之和:96+8+12+14=130
以11为模取余作为校验码:130/11=11…9
校验位应是:9
构成的代码应是: 61379
校验位计算
原码:3 5 8 0 0 7 7
权:1 3 5 7 9 11 13
乘积:3 15 40 0 0 77 91
乘积之和:226
模11结果:226/11····余数=6
校验位:6
新码:
LIBRARY IEEE
USE IEEE.STD_LOGIC_1164.ALL
ENTITY parity_check IS
PORT (a:IN STD_LOGIC_VECTOR (7 DOWNTO 0)
y:OUT STD_LOGIC)
END parity_check
ARCHITECTURE arch OF parity_check IS
BEGIN
PROCESS(a)
VARIABLE temp:STD_LOGIC
BEGIN
temp:='0' --偶校验初始值设为0,奇校验初始值设为1
FOR i IN 0 TO 7 LOOP
temp:=temp XOR a(i)
END LOOP
y<=temp
END PROCESS
END arch
源代码 6 1 3 7
全因子 16 8 4 2
乘积和96+8+12+14=130
130/11=11······余数:9
因此,其校验位为:9 带校验位的代码(新代码)为61379(把余数作为校验位)