沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:计算机组成原理课程设计
课程设计题目:海明码生成与校验电路的设计
院(系):计算机学院
专 业:计算机科学与技术
班 级:
学 号:
姓 名:
指导教师:
指导教师评语:
课设成绩:
签名:
年
月
日
沈阳航空航天大学
课程设计任务书
课程名称 计 算 机 组 成 原 理 课 程 设 计
专 业 计 算 机 科 学 与 技 术
学生姓名
班级
学号
题目名称 海 明 码 生 成 与 校 验 电 路 的 设 计
起止日期
年
月
日起至
年
月
日止
课设内容和要求:
一、课程设计内容
采用 Xilinx Foundation F3.1 可编程器件开发工具软件,伟福 COP2000 实验箱,
设计并实现海明码生成与校验电路功能。
二、课程设计要求
1.采用自上而下的设计方法,顶层设计使用原理图设计输入方式;底层设计输
入方式自行选定;
2.数据位数为八位;
3.对设计电路进行仿真并验证其正确性,仿真数据由指导教师给出;
4.实现编程下载和硬件测试;
5.独立设计、调试、仿真、下载和硬件测试并通过指导教师现场验收;
6.撰写课程设计报告。
参考资料:
[1] 唐朔飞. 计算机组成原理(第 2 版)[M]. 北京:高等教育出版社,2008
[2] 王爱英.计算机组成与结构(第 4 版)[M].北京:清华大学出版社,2006
[3] 白中英.计算机组成原理(第 4 版)[M].北京:科学出版社,2008
教研室审核意见: 同意立题
教研室主任签字:
指导教师(签名)
学生签名
年
年
月
月
日
日
I
沈阳航空航天大学课程设计报告
课设总结
这次课程设计完成了要求中的全部内容,实现了海明码生成与校验电路所具
备的所有功能,从收到课题到提交报告历时十天,虽说最后成功完成题目要求,
但是在这期间仍有很多问题的出现,同时通过对问题的逐一解决也提升了自身的
各项能力。
在收到课题以后,我就翻查课本回顾海明码一节所讲的内容,并且加深对海
明码生成与校验过程的认识,然后根据原理构建基本框架,根据题目要求对电路
进行模块划分,在理清思路之后,我便开始实现各个模块的内部设计,最后实现
电路的组装工作。但是这个过程并没有我开始想的一样简单,首先是对虚拟机及
仿真软件的安装与学习,这一步骤相对于之后工作并不算难,依照实验教材的讲
解很快的时间我就会了仿真软件的基本操作,之后就是完成对单个模块的封装任
务,海明码生成阶段和错误位检验阶段是很容易的,根据书中的原理我便完成了
连接工作,但是在对错误位的纠错阶段我却遇到了困难,首先是不知道应该如何
根据错误的具体位置来实现对错误位的数据取反,这一部分困扰了我很长时间,
我便根据以往数字逻辑学到的知识,逐个查看各种元器件,并且思考如何借助该
类器件完成我所需要的功能,最终在 4 线-16 线译码器处,其特点为在输出端只
会存在一个为“1”,而 1 与任何数相异或均可实现对数据的取反,0 与任何数相
异或均为数据本身,根据这一原理,我便成功完成了纠错模块的封装,最后对多
个电路图进行连接,我便自以为完成了这次课设。但是在我完成管脚的映射后,
进行波形图测试时却不能正确显示波形,在对出现问题的部分进行检查后,发现
该处电路连线很混乱,出现重复与错连现象,最终通过对该处线路重新连接解决
了这个问题。
在这次课程设计中,成功完成了题目的要求,有了好的结果同时也有了值得
回味的制作过程。在这次课设中,既有根据已有知识经验顺利完成的步骤,也存
在经过多番努力查找资料才完成的步骤,同时也不乏出错改错出错改错循环往复
的时候。而正是这些过程让我更能明白这次课设的意义,一方面通过对电路的设
计加深了我对海明码的理解,也提高了我搜集资料,通过自己努力解决问题的能
II
沈阳航空航天大学课程设计报告
力。在完成任务的过程中遇到的种种问题也正印证了以后我进入工作岗位中所面
临的种种问题,既有得心应手的,也有稍有难度但是加以努力就可以克服的,更
会有因为自己的粗心与不细致而制造出来的错误,我也明白了,遇到简单的事不
能不细致,遇到难得问题也要努力克服!
III
沈阳航空航天大学课程设计报告
目录
1.引言............................................................................................................................... 1
1.1 题目介绍........................................................................................................... 1
1.2 题目要求........................................................................................................... 1
1.3 开发环境............................................................................................................ 1
2.设计方案....................................................................................................................... 2
2.1 设计原理........................................................................................................... 2
2.2 设计思路........................................................................................................... 3
3.详细设计....................................................................................................................... 5
3.1 顶层电路设计.................................................................................................... 5
3.2 功能模块设计.................................................................................................... 7
3.2.1 GETHAN 模块设计............................................................................. 7
3.2.2 ERROR 模块设计............................................................................... 9
3.2.3 CHECKHAN 模块设计....................................................................... 10
3.2.4 CURRECTHAN 模块设计................................................................... 11
4.编程下载与硬件测试................................................................................................. 13
4.1 编程下载.......................................................................................................... 13
4.2 硬件测试.......................................................................................................... 13
参考文献......................................................................................................................... 16
附 录(关键部分程序清单)................................................................................... 17
沈阳航空航天大学课程设计报告
1.引言
1.1 题目介绍
该题目为海明码生成与校验电路的设计,采用 Xilinx Foundation F3.1 可编程
器件开发工具软件,伟福 COP2000 试验箱设计电路,使其具有对八位二进制数生
成对应海明码、对一位出错海明码校验并纠错功能。
1.2 题目要求
(1).采用自上而下的设计方法,顶层设计使用原理图设计输入方式;
(2).可以实现八位数据输入;
(3).电路设计应确保功能的完整性与正确性,即电路可以完成海明码的生
成与出错数据的校验工作,指明出错位置并输出正确数据;
(4).实现编程下载和硬件测试。
1.3 开发环境
·硬件环境:伟福 COP2000 型计算机组成原理实验仪、XCV200 实验板。
·EDA 环境:Xilinx foundation f3.1 设计软件(Xilinx foundation f3.1 设计平
台如图 1.1 所示)、COP2000 仿真软件。
图 1.1 Xilinx foundation f3.1 设计平台
1
沈阳航空航天大学课程设计报告
2.设计方案
2.1 设计原理
由编码纠错理论得知,任何一种编码是否具有检测能力和纠错能力,都与编
码的最小距离有关。所谓编码最小距离,就是指在一种编码系统中,任意两组合
法代码之间的最少二进制位数的差异。
根据纠错理论得
L-1=D+C 且 D>=C
即编码最小距离 L 越大,则其检测错误的位数 D 越大,纠正错误的位数 C 也越大,
且纠错能力恒小于或等于检错能力。例如,当编码最小距离 L=3 时,这种编码可
视为最多能检错二位,或能检错一位、纠错一位。可见,倘若能在信息编码中增
加若干位检测位,增大 L,显然能提高检错和纠错能力。海明码就是根据这一理
论提出的具有一位纠错能力的编码。
(1)数据位和校验位的关系
设欲检验的二进制代码为 n 位,为使其具有纠错能力,需增添 k 位检测位(它
能表示 2k 个信息,用其中的一个信息指出“没有错误”,其余的 2k-1 个信息指出错
误发生在哪一位),组成 n+k 位的代码。为了能准确对错误定位以及指出代码没
错,新增添的检测位数 k 应满足:
2k>=n+k+1
由此关系可求得不同代码长度 n 所需检验位的位数 k,代码长度与检验位位
数关系如表 2.1 所示。
表 2.1 代码长度与检验位位数关系
n
1
2~4
5~11
12~26
k(最小)
2
3
4
5
2
沈阳航空航天大学课程设计报告
(续)表 2.1 代码长度与检验位位数关系
27~57
58~120
6
7
k 的位数确定后,便可由它们所承担的检测任务设定它们在被传送代码中的
位置以及它们的取值。
(2)海明码的编码规律
设 n+k 位代码自左至右依次编为第 1,2,3,…,n+k 位,而将 k 位检测位记为 Ci
(i=1,2,4,8,…),分别安插在 n+k 位代码编号的第 1,2,4,8,…位上。这些检测
位的位置设置是为了保证它们能分别承担 n+k 位信息中不同数位所组成的“小组”
的奇偶检测任务,使检测位和它所负责检测的小组中 1 的个数为奇数或为偶数,
具体分配如下:
C1 检测的 g1 小组包含 1,3,5,7,9,11,…位。
C2 检测的 g2 小组包含 2,3,6,7,10,11,14,15,…位。
C4 检测的 g3 小组包含 4,5,6,7,12,13,14,15,…位。
C8 检测的 g4 小组包含 8,9,10,11,12,13,14,15,24,…位。
其余检测位的小组所包含的位也可类推。这种小组的划分有如下特点:
①每个小组 gi 有一位且仅有一位为它所独占,这一位是其他小组所没有的,
即 gi 小组独占第 2i-1 位(i=1,2,3,…)。
②每两个小组 gi 和 gj 共同占有一位是其他小组没有的,即每两个小组 gi 和
gj 共同占有第 2i-1+2j-1 位(i,j=1,2,…)。
③每三个小组 gi、gj 和 gl 共同占有第 2i-1+2j-1+2l-1 位,是其他小组所没有的。
依次类推,便可确定每组所包含的各位。
2.2 设计思路
(1)海明码的生成
根据 2.1 所述原理,设欲检测的二进制代码为 8 位,此处 n=8,按照数据位
和校验位的关系,由 2k>=8+k+1 得出 k=4,故海明码的位数为 n+k=12 位,可以
表示为 H1H2H3……H12,四个检测位 C1,C2,C4,C8 对应于海明码的 H1,H2,H4,
3