海明码生成与校验电路的设计1.doc
文本预览下载声明
目 录
第1章 总体设计方案 1
1.1 设计原理 1
1.2 设计思路 1
1.3 设计环境 2
第2章 详细设计方案 4
2.1 顶层方案图的设计与实现 4
2.1.1创建顶层图形设计文件 4
2.1.2器件的选择与引脚锁定 6
2.2 功能模块的设计与实现 7
2.2.1海明码SHENGCHENG模块的设计与实现 7
2.2.2海明码ERROR模块的设计与实现 7
2.2.3海明码JIAOYAN模块的设计与实现………………………………………9
3.1 编程下载 13
3.2 硬件测试及结果分析 13
参考文献 14
附 录(程序清单或电路原理图) 15
第1章 总体设计方案
1.1 设计原理
海明校验码是在数据中加入几个校验位,并把数据的每一个二进制位分配在几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验组的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为自动纠错提供了证据。海明码能检测出2位错误,并能纠正1位错误。
(1)数据位和校验位的关系
假设校验位的个数为r,则它能表示2r个信息,用其中的一个信息指出“没有错误”,其余的2r-1个信息指出错误发生在哪一位。然而错误也可能发生在校验位,因此只有k=2r-1-r个信息能用于纠正被传送数据的位数,也就是说要满足关系:
2r=k+r+1 ?(发现一位错)
? 2r-1=k+r (发现与自动校正一位错,并发现两位错)
数据位与校验位的对应关系
K值 最小的r值 1~4
5~11
12~26
27~57
58~120 4
5
6
7
8 (2)海明码的编码规律
若海明码的最高位号为m,最低位号为1,即HmHm-1…H2H1,则海明码的编码规律通常是:
?a.校验位与数据位之和为m,每个校验位Pi在海明码中被分在?2i-1的位置,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。
?b.海明码的每一位Hi(包含数据位和校验位本身)由多个校验位校验,其关系是被校验的每一位位号要等于校验它的各校验位的位号之和。这样安排的目的,是希望校验的结果能正确反映出出错位的位号。
1.2 设计思路
(一)海明码的生成:上述规律讨论一个字节的海明码。每个字节由8个二进制位组成,此处的k为8,按照数据位和校验位的对应关系,r应为5,由于总校验位只是检测两位出错还是一位出错,因此设计时不必考虑它的值,设r为4,故海明码的总位数为12,可表示为: H12H11…H3H2H1, 4个校验位P4~P1对应的海明码位号分别为:H8,H4,H2,H1。其余为数据位Di,则有如下排列关系: D8D7D6D5P4D4D3D2P3D1P2P1
每个海明码的位号要等于参与校验它的几个校验位的位号之和,因此得出如下的表格:
出错的海明码位号和校验位位号的关系
海明码位号
数据位/校验位
参与校验的校验位位号 被校验位的海明码位号=校验位位号之和 H1 P1 1 1=1 H2 P2 2 2=2 H3 D1 1,2 3=1+2 H4 P3 4 4=4 H5 D2 1,4 5=1+4 H6 D3 2,4 6=2+4 H7 D4 1,2,4 7=1+2+4 H8 P4 8 8=8 H9 D5 1,8 9=1+8 H10 D6 2,8 10=2+8 H11 D7 1,2,8 11=1+2+8 H12 D8 4,8 12=4+8
P1=D1⊕D2⊕D4⊕D5⊕D7
P2=D1⊕D3⊕D4⊕D6⊕D7
P3=D2⊕D3⊕D4⊕D8
P4=D5⊕D6⊕D7⊕D8
在这种安排中,每一位数据位,都至少出现3个Pi值的形成关系中,当任一位数据码发生变化时,必将引起3个或4个Pi值跟着变化,该海明码的码距为4。
(二)海明码的校验:
海明码校验函数(S函数)及校验过程?偶校验?
S1=P1⊕D1⊕D2⊕D4⊕D5⊕D7
S2=P2⊕D1⊕D3⊕D4⊕D6⊕D7
S3=P3⊕D2⊕D3⊕D4⊕D8
S4=P4⊕D5⊕D6⊕D7⊕D8
1.3 设计环境
·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;
·EDA环境:Xilinx foundation f3.1设计软件、COP2000仿真软件。
图1.1 Xilinx foundation f3.1设计平台
第2章 详细设计方案
2.1 顶层方案图的设计与实现
顶层方案图实现海明码的生成与校验逻辑功能,采
显示全部