海明码生成与校验电路的设计Word格式.docx

上传人:b****5 文档编号:19411151 上传时间:2023-01-06 格式:DOCX 页数:20 大小:376.53KB
下载 相关 举报
海明码生成与校验电路的设计Word格式.docx_第1页
第1页 / 共20页
海明码生成与校验电路的设计Word格式.docx_第2页
第2页 / 共20页
海明码生成与校验电路的设计Word格式.docx_第3页
第3页 / 共20页
海明码生成与校验电路的设计Word格式.docx_第4页
第4页 / 共20页
海明码生成与校验电路的设计Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

海明码生成与校验电路的设计Word格式.docx

《海明码生成与校验电路的设计Word格式.docx》由会员分享,可在线阅读,更多相关《海明码生成与校验电路的设计Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

海明码生成与校验电路的设计Word格式.docx

参考文献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环境:

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

图1.1Xilinxfoundationf3.1设计平台

第2章详细设计方案

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

顶层方案图实现海明码的生成与校验逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。

在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。

2.1.1创建顶层图形设计文件

顶层图形文件主要由一个SHENGCHENG元件,ERROR元件和JIAOYAN元件模块组装而成的一个完整的设计实体。

顶层图形文件结构如图所示。

图2.1SHENGCHENG模块

图2.2ERROR模块

图2.3JIAOYAN模块

2.1.2器件的选择与引脚锁定

(1)器件的选择

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

(2)引脚锁定

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

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

XCV200芯片引脚信号

ID1

P103

ID2

P102

ID3

P101

ID4

P100

ID5

P97

ID6

P96

ID7

P95

ID8

P94

K1

P87

K2

P86

K3

P85

OD1

P110

OD2

P111

OD3

P203

OD4

P185

OD5

P184

OD6

P178

OD7

P152

OD8

P147

OH1

P125

OH2

P124

OH3

P109

OH4

P108

OH5

P107

OH6

P99

OH7

P93

OH8

P78

OH9

P223

OH10

P222

OH11

P221

OH12

P220

2.2功能模块的设计与实现

海明码生成与校验设计电路是由2个模块组成,其中SHENGCHENG模块是由8个输入端输入海明码的8位数据位,经异或门求得校验位P1,P2,P3,P4,由此输出12位海明码;

JIAOYAN模块是由三八译码器来改变输入数据的正确性,从而实现海明码校验的功能。

2.2.1shengcheng模块的设计与实现

(1)元件的内部结构

海明码生成模块,原理是通过输入的数据ID1~ID8按照公式:

P1=D1⊕D2⊕D4⊕D5⊕D7,P2=D1⊕D3⊕D4⊕D6⊕D7,P3=D2⊕D3⊕D4⊕D8,P4=D5⊕D6⊕D7⊕D8,生成了4位校验码P1~P4,得出了12位海明码。

图2.4SHENGCHENG模块内部电路

(2)功能仿真

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

图2.5SHENGCHENG模块仿真

结果分析:

输入D1-D8为10011001,输出H1-H12为101000101001,结果是正确的海明码。

2.2.2ERROR模块的设计与实现

原理是通过3线8线译码器选择性的对8位输入数据的一位取反,得出一组错误的数据,然后送与校验模块进行校验。

图2.6ERROR模块内部电路

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

图2.7ERROR模块仿真

输入K1-K3为000,输入D1-D8为10011001,输出H3、H5、H6、H7、H9、H10、H11、H12为00011001,3线8线译码器使数据的第一位取反。

2.2.3JIAOYAN模块的设计与实现

原理是通过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.8JIAOYAN模块内部电路

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

图2.9JIAOYAN模块仿真

2.3仿真调试

仿真调试主要验证设计电路逻辑功能、时序的正确性,这里采用输入8位数据位生成12位海明码,并经三八译码器来故意输错一位海明码,经校验电路来进行修改,从而输出正确的8位数据位.仿真调试时采用两组数据:

D1~D8

第一组数据

10011001

第二组数据

10000001

(1)建立仿真波形文件及仿真信号选择

功能仿真时,输入数据位采用了两组数据。

其中前半部分为第一组数据,D1~D8为10011001,生成的海明码H12~H1为100010001111。

后半部分为第二组数据,D1~D8为10000001,生成的海明码H12~H1为100010001111。

其中这两组数据又经三八译码器变为有一位错的数据输入到校验电路里,经校验后输出正确的数据位,从而实现了海明码生成和校验的整个功能。

(2)功能仿真结果与分析

功能仿真波形结果如图2.2所示,仿真数据结果如表2.3所示。

对表2.3与表1.1的内容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。

表2。

3:

输入数据8位数据(ID1~ID8)

3线8线译码器输入(K1~K3)

输出海明码

(OH1~OH12)

输出校验后的数据(OD1~OD8)

000

101000101001

100

111100010001

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

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

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

3.1编程下载

利用XilinxISE的编程下载功能,将得到的*.bin文件下载到XCV200实验板的XCV200可编程逻辑芯片中。

3.2硬件测试及结果分析

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

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

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

XCV200实验板

ID1

K0

ID4

KA

KB

KC

OD1~OD8

LEDA

OH1~OH8

LEDB

OH9~OH12

七段数码管S0

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

表3.2硬件测试结果

输入信号

输出信号

K1

数码管S0

01000101

09

001

1000111

08

图3.1第一组数据cop2000仿真下载结果

输入K1-K3为000,输入ID1-ID8为10011001,输出A0-A7为10011001对应OD1-OD8,输出B0-B7为10100010对应OH1-OH8,输出SO为09化为二进制为1001对应OH12-OH9。

图3.2第二组数据cop2000仿真下载结果

输入K1-K3为001,输入ID1-ID8为10000001,输出A0-A7为10000001对应OD1-OD8,输出B0-B7为11110001对应OH1-OH8,输出SO为08化为二制为1000对应OH12-OH9。

参考文献

[1]白中英,计算机组成原理(第三版)。

北京:

科学出版社,2000

[2]王爱英.计算机组成与结构(第4版)[M].北京:

清华大学出版社,2006

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

总电路原理图

课程设计总结:

在做课程设计过程中,我遇到了很多问题和困难。

例如在第一画逻辑图时仿真的结果不完全正确,后来检查出是其中的线路有连接重复或连错的现象,经修改实现了电路的仿真。

第二是在下载到电路板时,原因是COP只能识别XCV200—4—PQ240的工程,而我的工程是XCV400—4—PQ240,所以下载时出错,把工程改为XCV200—4—PQ240后下载成功。

课设的目的是实现了海明码的生成与校验功能,成功地实现了对输入八位数据生成12位海明码,以及输入一位错的海明码,对其进行校验生成正确的海明码的功能。

通过本次课设,不仅增强了自己对信息的搜集与应用能力,增加了自己的计算机硬件知识,也培养了自己对计算机硬件的兴趣。

虽然在设计过程中遇到了许多困难和问题,但解决后也同时给自己带来了喜悦和成功感,这更让我对组原产生了兴趣。

在电路设计过程中自己独立思考,独立完成电路设计和连接,使自己的独立思考能力得到了很大的提高。

课程设计过程中遇到了一些问题,在指导老师的耐心帮助下均得到了解决。

在课程设计过程中自己逐渐意识到,做好一个项目不仅仅需要渊博的知识做基础,更要有一定的耐心和毅力。

指导教师评语:

指导教师(签字):

      年月日

课程设计成绩

忽略此处..

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

当前位置:首页 > 经管营销 > 财务管理

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

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