海明码的生成和校验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

航空航天大学

课程设计报告

课程设计名称:计算机组成原理课程设计

课程设计题目:海明码生成与校验电路的设计

院(系):计算机学院

专业:计算机科学与技术(物联网方向)班级:

学号:

姓名:

指导教师:

完成时间:2016年1月4日-2016年1月15日

目录

第1章总体设计方案 (1)

1.1设计原理 (1)

1.2设计思路 (1)

1.3设计环境 (1)

第2章详细设计方案 (1)

2.1顶层方案图的设计与实现 (1)

2.1.1设计方案 (1)

2.1.2器件的选择与引脚锁定 (1)

2.2底层模块的设计与实现 (1)

2.2.1产生模块的设计与实现 (1)

2.2.2出错模块的设计与实现 (1)

2.2.3 纠正模块的设计与实现 (1)

2.3仿真调试 (1)

第3章编程下载与硬件测试 (1)

3.1编程下载 (1)

3.2硬件测试及结果分析 (1)

参考文献 (1)

附录(程序清单或电路原理图) (1)

第1章总体设计方案

1.1 设计原理

海明校验码是由理查得·海明(Richard Hanmming)于1950年提出的,它不仅具有检测错误的能力,同时还具有给出错误所在的准确位置的能力,这在通信领域有着很广泛的应用。

海明码是奇偶校验的一种扩充。它采用多位校验码的方式,在这些校验位中的每一位都对不同的信息数据位进行奇偶校验,通过合理地安排每个校验位对原始数据进行校验位组合,可以达到发现错误,纠正错误的目的。

(1)数据位和校验位的关系

假设数据位有m位,如何设定校验位k的长度才能满足纠正一位错误的要求呢?我们这里做一个简单的推导。k位的校验码可以有2k个值。如果能够满足:2k>=m + k+1,在理论上k个校验码就可以判断是哪一位(包括信息码和校验码)出现问题。

(2)海明码的编码规律

若海明码的最高位号为m,最低位号为1,即H m H m-1…H2H1,则海明码的编码规律通常是:

a.校验位与数据位之和为m,每个校验位P i在海明码中被分在2i-1的位置,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。

b.海明码的每一位H i(包含数据位和校验位本身)由多个校验位校验,其关系是被校验的每一位位号要等于校验它的各校验位的位号之和。这样安排的目的,

是希望校验的结果能正确反映出出错位的位号。

1.2 设计思路

(一)海明码的生成:因为要求的是8位的二进制数据,所以此处的m为8,按照数据位和校验位的对应关系,k应为4,故海明码的总位数为12,可表示为:H12——H1,4个校验位P4~P1对应的海明码位号分别为:H8/H4/H2/H1,则有如下排列关系:D8D7D6D5P4D4D3D2P3D1P2P1

按照海明码的原理得出如下的表格:

P1=D1⊕D2⊕D4⊕D5⊕D7

P2=D1⊕D3⊕D4⊕D6⊕D7

P3=D2⊕D3⊕D4⊕D8

P4=D5⊕D6⊕D7⊕D8

(二)海明码的校验:

海明码校验函数(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.1Xilinx foundation f3.1设计平台

第2章详细设计方案

2.1 顶层方案图的设计与实现

实现海明码的生成与校验逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。完成原理图的设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。

2.1.1设计方案

顶层图形文件是由产生(如图2.1),出错(如图2.2)和纠正(如图2.3)三个模块元件组装而成的一个完整的设计实体组成。

图2.1 产生模块

图2.2 出错模块

图2.3 纠正模块

2.1.2器件的选择与引脚锁定

(1)器件的选择

由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为Xlinx XCV200可编程逻辑芯片。

(2)引脚锁定

把顶层图形文件中的输入/输出信号安排到Xlinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定。

2.2 底层模块的设计与实现

海明码生成与校验设计电路是由3个模块组成,其中产生模块是由8个输入端输入海明码的8位数据位,经异或门求得校验位P1,P2,P3,P4,由此输出12位海明码;出错模块是由三八译码器来改变输入数据的某一位,从而产生错误的海明码;纠正模块是对错误的数据进行纠正修改。

2.2.1产生模块的设计与实现

(1)元件结构

海明码产生模块,原理是通过输入的数据IN1~IN8按照公式:

P1=D1⊕D2⊕D4⊕D5⊕D7,

P2=D1⊕D3⊕D4⊕D6⊕D7,

P3=D2⊕D3⊕D4⊕D8,

P4=D5⊕D6⊕D7⊕D8,

生成了4位校验码P1/P2 /P3/P4,从而得出了12位海明码。

相关文档
最新文档