您的当前位置:首页正文

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

2020-05-08 来源:步旅网
沈阳航空航天大学

课 程 设 计 报 告

课程设计名称:课程设计题目:

院(系):专 业:班 级:学 号:姓 名:指导教师:完成日期:

计算机组成原理课程设计 海明码生成与校验电路设计与实

年1月14日

2016沈阳航空航天大学课程设计报告

目 录

第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.1 设计原理

海明校验码是由理查得·海明(Richard Hanmming)于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 P1 H2 P2 H3 D8 H4 P4 H5 D7 H6 D6 H7 D5 H8 P8 H9 D4 H10 D3 H11 D2 H12 D1 由上表可得出: P1=D2⊕D4⊕D5⊕D7⊕D8 P2=D2⊕D3⊕D5⊕D6⊕D8 P3=D1⊕D5⊕D6⊕D7 P4=D1⊕D2⊕D3⊕D4 海明码的校验:

- 1 -

沈阳航空航天大学课程设计报告 错误!未指定书签。第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

1.3 设计环境

·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;

·EDA环境:Xilinx foundation f3.1设计软件、COP2000仿真软件。

- 2 -

沈阳航空航天大学课程设计报告 第2章 详细设计方案

第2章 详细设计方案

2.1 设计与实现

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

原理图主要由生成,错误模块和校验三个模块组装而成的一个完整的设计实体,分别为:生成模块、校验模块、错误模块

图2.1 生成模块

- 3 -

沈阳航空航天大学课程设计报告 第2章 详细设计方案

图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 -

沈阳航空航天大学课程设计报告 第2章 详细设计方案

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

图2.4 生成模块内部电路

(2)功能仿真

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

- 5 -

沈阳航空航天大学课程设计报告 第2章 详细设计方案

图2.5 SHENGCHENG模块仿真

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

2.2.2 错误模块的设计与实现

(1)元件结构

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

- 6 -

沈阳航空航天大学课程设计报告 第2章 详细设计方案

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

(2)功能仿真

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

- 7 -

沈阳航空航天大学课程设计报告 第2章 详细设计方案

图2.7 ERROR模块仿真

结果分析:输入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

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

- 8 -

沈阳航空航天大学课程设计报告 第2章 详细设计方案

图2.8 校验模块内部电路

(2)功能仿真

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

图2.9 校验模块仿真

- 9 -

沈阳航空航天大学课程设计报告 第2章 详细设计方案

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 10010001

000 001 101101000000 001000110001 10100000 10010001

- 10 -

沈阳航空航天大学课程设计报告 第2章 详细设计方案

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

- 11 -

沈阳航空航天大学课程设计报告 第2章 详细设计方案

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

- 12 -

沈阳航空航天大学课程设计报告 第3章 编程下载与硬件测试

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

3.1 编程下载

利用Xilinx ISE的编程下载功能,下载编译我的工程,从而得到的*.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。

- 13 -

沈阳航空航天大学课程设计报告 第3章 编程下载与硬件测试

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

结果分析:输入K1:1-K1:3为000,对应L1-L3,输入I1-I8为10010010,输出B7-A4为111100110010对应O1-O12。

- 14 -

沈阳航空航天大学课程设计报告

参考文献

[1] 曹昕燕.EDA技术实验与课程设计[M].北京:清华大学出版社,2006

[2] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006

[3] 唐朔飞.计算机组成原理(第2版)[M].北京:高等教育出版社,2008

- 15 -

沈阳航空航天大学课程设计报告

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

电路原理总图

- 16 -

沈阳航空航天大学课程设计报告

课程设计总结: 通过本次课设,我更深入的学习和了解了海明码,加强了我对海明码的认识,而且还学习了Xilinx foundation f3.1设计平台的应用,对我以后的学习很有帮助。增强了自己对信息的搜集与应用能力,增加了自己的计算机硬件知识,也培养了自己对计算机硬件的兴趣。虽然在设计过程中遇到了许多困难和问题,但解决后也同时给自己带来了喜悦和成功感,这更让我对组原产生了兴趣。在电路设计过程中自己独立思考,独立完成电路设计和连接,使自己的独立思考能力得到了很大的提高。课程设计过程中遇到了一些问题,在指导老师的耐心帮助下均得到了解决。在课程设计过程中自己逐渐意识到,做好一个项目不仅仅需要渊博的知识做基础,更要有一定的耐心和毅力。 指导教师评语: 指导教师(签字): 年 月 日 课程设计成绩

- 17 -

因篇幅问题不能全部显示,请点此查看更多更全内容