海明码的生成和校验Word文件下载.docx

上传人:b****2 文档编号:14149954 上传时间:2022-10-19 格式:DOCX 页数:17 大小:366.49KB
下载 相关 举报
海明码的生成和校验Word文件下载.docx_第1页
第1页 / 共17页
海明码的生成和校验Word文件下载.docx_第2页
第2页 / 共17页
海明码的生成和校验Word文件下载.docx_第3页
第3页 / 共17页
海明码的生成和校验Word文件下载.docx_第4页
第4页 / 共17页
海明码的生成和校验Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

海明码的生成和校验Word文件下载.docx

《海明码的生成和校验Word文件下载.docx》由会员分享,可在线阅读,更多相关《海明码的生成和校验Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

海明码的生成和校验Word文件下载.docx

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

2.3仿真调试1

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

3.1编程下载1

3.2硬件测试及结果分析1

参考文献1

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

第1章总体设计方案

1.1设计原理

海明校验码是由理查得·

海明(RichardHanmming)于1950年提出的,它不仅具有检测错误的能力,同时还具有给出错误所在的准确位置的能力,这在通信领域有着很广泛的应用。

海明码是奇偶校验的一种扩充。

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

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

假设数据位有m位,如何设定校验位k的长度才能满足纠正一位错误的要求呢?

我们这里做一个简单的推导。

k位的校验码可以有2k个值。

如果能够满足:

2k>

=m+k+1,在理论上k个校验码就可以判断是哪一位(包括信息码和校验码)出现问题。

(2)海明码的编码规律

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

a.校验位与数据位之和为m,每个校验位Pi在海明码中被分在 

2i-1的位置,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。

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

这样安排的目的,是希望校验的结果能正确反映出出错位的位号。

1.2设计思路

(一)海明码的生成:

因为要求的是8位的二进制数据,所以此处的m为8,按照数据位和校验位的对应关系,k应为4,故海明码的总位数为12,可表示为:

H12——H1,4个校验位P4~P1对应的海明码位号分别为:

H8/H4/H2/H1,则有如下排列关系:

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

(二)海明码的校验:

海明码校验函数(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环境:

Xilinxfoundationf3.1设计软件、COP2000仿真软件。

图1.1Xilinxfoundationf3.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实验板,故采用的目标芯片为XlinxXCV200可编程逻辑芯片。

(2)引脚锁定

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

图形文件中的输入/输出信号

XCV200芯片引脚信号

CHANSHENGT.IN1

P94

CHANSHENGT.IN2

P95

CHANSHENGT.IN3

P96

CHANSHENGT.IN4

P97

CHANSHENGT.IN5

P100

CHANSHENGT.IN6

P101

CHANSHENGT.IN7

P102

CHANSHENGT.IN8

P103

CHUCUO.IN1

P79

CHUCUO.IN2

P80

CHUCUO.IN3

P81

JIUZHENG.O1

P170

JIUZHENG.O2

P169

JIUZHENG.O3

P168

JIUZHENG.O4

P149

JIUZHENG.O5

P153

JIUZHENG.O6

P154

JIUZHENG.O7

P155

JIUZHENG.O8

P156

CHANSHENG.O1

P78

CHANSHENG.O2

P93

CHANSHENG.O3

P99

CHANSHENG.O4

P107

CHANSHENG.O5

P108

CHANSHENG.O6

P109

CHANSHENG.O7

P124

CHANSHENG.O8

P125

CHANSHENG.O9

P147

CHANSHENG.O10

P152

CHANSHENG.O11

P178

CHANSHENG.O12

P184

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位海明码。

图2.4产生模块部电路

(2)功能仿真

对产生模块进行功能仿真,验证其功能的正确性。

图2.5产生模块仿真

结果分析:

输入IN1-IN8为10011001,输出O1-O12为1,结果是正确的海明码。

2.2.2出错模块的设计与实现

本模块的原理是通过3线8线译码器的3进1出,输出一个1,与8位输入数据中的一位异或,使之发生错误,从而得出一组错误的数据。

图2.6出错模块部电路

对创建的出错元件进行功能仿真,验证其功能的正确性

图2.7出错模块仿真

输入IN1-IN3为000,输入IN1-IN8为10011001,输出O1-O8为1,其中O1为出错位,产生了一位错误。

2.2.3纠正模块的设计与实现

(1)元件的部结构

原理是通过公式:

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,连成的电路对数据进行校验,判断数据是哪一位出错,并对出错的那一位与错误数据异或,从而得出正确的数据。

图2.8纠正模块部电路

对纠正模块进行功能仿真,验证其功能的正确性

图2.9纠正模块仿真

2.3仿真调试

仿真调试是为了验证设计电路逻辑功能的正确性,输入8位二进制数据位生成12位海明码,中间经三八译码器来改变一位数据位,经校验电路修改,最后输出正确的8位二进制数据位。

仿真调试时采用两组数据

IN1~IN8

第一组数据

10011001

第二组数据

11001100

(1)创建仿真信号

在进行仿真时,输入数据位用了上面的两组数据。

第一组数据,IN1~IN8为10011001,生成的海明码O1~O12为1。

第二组数据,IN1~IN8为11001100,生成的海明码O1~O12为0。

这两组数据又经三八译码器改变其中一位错的数据输入到纠正电路里,经纠正校验后输出原本的数据位,最终实现了海明码生成和校验功能。

(2)仿真结果

功能仿真结果如图2.10、图2.11所示,仿真数据结果如表2.3所示。

对表中容进行计算,可以看出功能仿真结果是正确的,进而说明此次电路设计成功。

表2.3:

输入数据8位数据(CS.IN1~IN8)

3线8线译码器输入(CC.IN3~IN1)

输出海明码

(CS.O1~O12)

错误的数据(CC.O1~O8)

000(第一位)

00011001

001第二位)

10001100

图2.10第一组数据功能仿真结果

图2.11第二组数据功能仿真结果

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

3.1编程下载

利用XilinxISE的编程下载功能,下载编译我的工程,从而得到的*.bin文件,即可下载到XCV200实验板的XCV200可编程逻辑芯片中,完成编译下载。

3.2硬件测试及结果分析

利用XCV200实验板进行硬件功能测试。

海明码数据位的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。

表3.1XCV200实验板信号对应关系

XCV200实验板

CHANSHENG.IN1

K0:

CHANSHENG.IN2

CHANSHENG.IN3

3

CHANSHENG.IN4

CHANSHENG.IN5

5

CHANSHENG.IN6

6

CHANSHENG.IN7

7

CHANSHENG.IN8

K1:

CHUCUO.IN2

CHUCUO.IN3

CHANSHENG.O1—CHANSHENG.O12

B7—A4

输入数据,逐个测试输出结果,即用XCV200实验板的开关K0、K1输入数据,同时观察LEDA和LEDB的输出,得到如表3.2所示的硬件测试结果。

表3.2硬件测试结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1