海明码生成与校验电路设计与实现范本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
海明码生成与校验电路设计与实现
沈阳航空航天大学
课程设计报告
课程设计名称:计算机组成原理课程设计
课程设计题目:海明码生成与校验电路设计与实现
院(系):
专业:
班级:
学号:
姓名:
指导教师:
完成日期: 1月14日
目录
第1章总体设计方案 ................................................ 错误!未定义书签。
1.1设计原理.............................................................. 错误!未定义书签。
1.2设计思路.............................................................. 错误!未定义书签。
1.3设计环境.............................................................. 错误!未定义书签。第2章详细设计方案 (3)
2.1顶层方案图的设计与实现 (3)
2.2功能模块的设计与实现 (4)
2.2.1海明码SHENGCHENG模块的设计与实现 (4)
2.2.2海明码ERROR模块的设计与实现 (6)
2.2.3海明码JIAOYAN模块的设计与实现 (8)
3.1编程下载 ............................................................. 错误!未定义书签。
3.2硬件测试及结果分析 .......................................... 错误!未定义书签。参考文献 . (15)
附录(程序清单或电路原理图) (16)
第1章总体设计方案
1.1 设计原理
海明校验码是由理查得·海明(Richard Hanmming)于1950年提出的,它不但具有检测错误的能力,同时还具有给出错误所在的准确位置的能力,这在通信领域有着很广泛的应用。
海明码是奇偶校验的一种扩充。它采用多位校验码的方式,在这些校验位中的每一位都对不同的信息数据位进行奇偶校验,经过合理地安排每个校验位对原始数据进行校验位组合,能够达到发现错误,纠正错误的目的。
(1)数据位和校验位的关系
假设数据位有m位,如何设定校验位k的长度才能满足纠正一位错误的要求呢?我们这里做一个简单的推导。k位的校验码能够有2^k个值。如果能够满足: 2^k–1>=m + k (m+ k为编码后的总长度),在理论上k个校验码就能够判断是哪一位(包括信息码和校验码)出现问题。
(2)海明码的编码规律
若海明码的最高位号为m,最低位号为1,即H m H m-1…H2H1,则海明码的编码规律一般是:
a.校验位与数据位之和为m,每个校验位P i在海明码中被分在 2i-1的位置,其余各位为数据位,并按从低向高逐位依次排列的
关系分配各数据位。
b.海明码的每一位H i(包含数据位和校验位本身)由多个校验位校验,其关系是被校验的每一位位号要等于校验它的各校验位的位号之和。这样安排的目的,是希望校验的结果能正确反映出出错位的位号。
1.2 设计思路
每个字节由8个二进制位组成,此处的k为8,按照数据位和校验位的对应关系,r应为5,由于总校验位只是检测两位出错还是一位出错,因此设计时不必考虑它的值,设r为4,故海明码的总位数为12,可表示为:H12H11…H3H2H1,4个校验位P4~P1对应的海明码位号分别为:H8,H4,H2,H1。其余为数据位Di,则有如下排列关系:D8D7D6D5P4D4D3D2P3D1P2P1
由上表可得出:
P1=D2⊕D4⊕D5⊕D7⊕D8
P2=D2⊕D3⊕D5⊕D6⊕D8
P3=D1⊕D5⊕D6⊕D7
P4=D1⊕D2⊕D3⊕D4
海明码的校验:
S1=P1⊕D2⊕D4⊕D5⊕D7⊕D8
S2=P2⊕D2⊕D3⊕D5⊕D6⊕D8