海明码生成与校验电路设计与实现.docx

上传人:b****3 文档编号:1383456 上传时间:2022-10-21 格式:DOCX 页数:16 大小:345.97KB
下载 相关 举报
海明码生成与校验电路设计与实现.docx_第1页
第1页 / 共16页
海明码生成与校验电路设计与实现.docx_第2页
第2页 / 共16页
海明码生成与校验电路设计与实现.docx_第3页
第3页 / 共16页
海明码生成与校验电路设计与实现.docx_第4页
第4页 / 共16页
海明码生成与校验电路设计与实现.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

海明码生成与校验电路设计与实现.docx

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

海明码生成与校验电路设计与实现.docx

海明码生成与校验电路设计与实现

沈阳航空航天大学

 

课程设计报告

 

课程设计名称:

计算机组成原理课程设计

课程设计题目:

海明码生成与校验电路设计与实现

 

院(系):

专业:

班级:

学号:

姓名:

指导教师:

完成日期:

2016年1月14日

第1章总体设计方案

1.1设计原理

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

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

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

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

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

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

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

如果能够满足:

2^k–1>=m+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环境:

Xilinxfoundationf3.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,从而得出了12位海明码。

图2.4生成模块内部电路

(2)功能仿真

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

图2.5SHENGCHENG模块仿真

结果分析:

输入I1-I8为10100000,输出O1-O12为101101000000,结果是正确的海明码。

2.2.2错误模块的设计与实现

(1)元件结构

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

图2.6错误产生模块内部电路

(2)功能仿真

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

图2.7ERROR模块仿真

结果分析:

输入L1-L3为000,输入I1-I8为10100000,输出K1为0,产生一位错误。

2.2.3校验模块的设计与实现

(1)元件的内部结构

原理是通过公式:

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

连成的电路对数据进行校验,判断数据是那一位出错,并对出错的那一位与错误数据异或,从而得出正确的数据。

图2.8校验模块内部电路

(2)功能仿真

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

图2.9校验模块仿真

2.3仿真调试

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

仿真调试时采用两组数据

I1~I8

第一组数据

10100000

第二组数据

10010001

 

(1)创建仿真信号

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

第一组数据,I1~I8为10100000,生成的海明码O1~O12为10110100000

第二组数据,I1~I8为10010001,生成的海明码O1~O12为001000110001

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

(2)仿真结果

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

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

输入数据8位数据(I1~I8)

3线8线译码器输入(L1~L3)

输出海明码

(O1~O12)

输出校验后的数据(D1~D8)

10100000

000

101101000000

10100000

10010001

001

001000110001

10010001

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

 

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

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

3.1编程下载

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

3.2硬件测试及结果分析

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

海明码数据位的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现。

输入数据得到下图的数据:

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

结果分析:

输入K1:

1-K1:

3为000,对应L1-L3,输入I1-I8为10010001,输出B7—A4为001000110001对应O1-O12。

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

 

结果分析:

输入K1:

1-K1:

3为000,对应L1-L3,输入I1-I8为10010010,输出B7-A4为111100110010对应O1-O12。

参考文献

[1]曹昕燕.EDA技术实验与课程设计[M].北京:

清华大学出版社,2006

[2]范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:

北京邮电大学出版社,2006

[3]唐朔飞.计算机组成原理(第2版)[M].北京:

高等教育出版社,2008

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

电路原理总图

课程设计总结:

通过本次课设,我更深入的学习和了解了海明码,加强了我对海明码的认识,而且还学习了Xilinxfoundationf3.1设计平台的应用,对我以后的学习很有帮助。

增强了自己对信息的搜集与应用能力,增加了自己的计算机硬件知识,也培养了自己对计算机硬件的兴趣。

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

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

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

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

指导教师评语:

 

指导教师(签字):

      年月日

课程设计成绩

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

当前位置:首页 > 党团工作

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

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