海明码生成与校验电路设计与实现.doc
文本预览下载声明
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:计算机组成原理课程设计
课程设计题目:海明码生成与校验电路设计与实现
院(系):
专 业:
班 级:
学 号:
姓 名:
指导教师:
完成日期: 2016年1月14日
目 录
第1章 总体设计方案 - 1 -
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= + k (m+ k为编码后的总长度),在理论上k个校验码就可以判断是哪一位(包括信息码和校验码)出现问题。
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 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 P1 P2 D8 P4 D7 D6 D5 P8 D4 D3 D2 D1
由上表可得出:
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
S3=P3⊕D1⊕D5⊕D6⊕D7
S4=P4⊕D1⊕D2⊕D3⊕D4
1.3 设计环境
·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;
·EDA环境:Xilinx foundation f3.1设计软件、COP2000仿真软件。
第2章 详细设计方案
2.1 设计与实现
实现海明码的生成与校验逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。完成原理图的设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
原理图主要由生成,错误模块和校验三个模块组装而成的一个完整的设计实体,分别为:生成模块、校验模块、错误模块
图2.1 生成模块
图2.2 错误模块
图2.3 校验模块
2.2 功能模块的设计与实现
2.2.1 生成模块的设计与实现
(1)元件结构
海明码生成模块,原理是通过输入的数据I1~I8按照公式:
P1=D2⊕D4⊕D5⊕D7⊕D8
P2=D2⊕D3⊕D5⊕D6⊕D8
P3=D1⊕D5⊕D6⊕D7
P4=D1⊕D2⊕D3⊕D4
生成了4位校验码P1/P2 /P3/P4,从而得
显示全部