vhdl汉明码编码如何加上时序

vhdl汉明码编码如何加上时序,第1张

不知道你是要加时序,还是要加编码,我只会加时序,引进一个时钟就行了,还请雅正。

USE IEEE.STD_LOGIC_1164.ALL

ENTITY hamenc is

port(CLK:in std_logic

datain:in bit_vector(0 to 3)

hamout:out bit_vector(0 to 7))

end hamenc

architecture a of hamenc is

signal p: bit_vector(0 to 3)

begin

process (CLK)

begin

if(CLK'event and CLK = '1') then

p(0) <= (datain(0) xor datain(1)) xor datain(2)

p(1) <= (datain(0) xor datain(1)) xor datain(3)

p(2) <= (datain(0) xor datain(2)) xor datain(3)

p(3) <= (datain(1) xor datain(2)) xor datain(3)

end if

end process

hamout(4 to 7)<= p

hamout(0 to 3)<= datain(0 to 3)

end a

汉明码的目的是能够纠正一位误码,假设信息码共有n位。

汉明码共有r位,那么总共的码长为n+r位.为能检测出n+r位编码中其中一位的错误。

汉明码必须能够表示至少n+r+1种状态,其中n+r种表示n+r位编码中有一位错误,另外还需要一种来表示整个编码正确无误。则汉明码的长度需要满足下列关系。

2r>=n+r+1k个校验位是通过对m+k位复合码字进行奇偶校而确定的。其中,P1位负责校验海明码的第1、3、5、7、?(P1、D1、D2、D4、?)位,(包括P1自己)。

P2负责校验海明码的第2、3、6、7、?(P2、D1、D3、D4、?)位,(包括P2自己)。P3负责校验海明码的第4、5、6、7、?(P3、D2、D3、D4、?)位,(包括P3自己)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12008845.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存