海明码生成与校验电路的设计.docx
- 文档编号:2705873
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:16
- 大小:284.74KB
海明码生成与校验电路的设计.docx
《海明码生成与校验电路的设计.docx》由会员分享,可在线阅读,更多相关《海明码生成与校验电路的设计.docx(16页珍藏版)》请在冰点文库上搜索。
海明码生成与校验电路的设计
沈阳航空航天大学
课程设计报告
课程设计名称:
计算机组成原理课程设计课程设计题目:
海明码生成与校验电路的设计
院(系):
计算机学院
专业:
计算机科学与技术
班级:
学号:
姓名:
指导教师:
完成日期:
2013年01月11日
第1章总体设计方案-2-
1.1设计原理-2-
1.2设计思路-2
1.2设计环境-2-
第2章详细设计方案-3-
2.1顶层方案图的设计与实现-3-
2.1.1创建顶层图形设计文件-3-
2.2功能模块的设计与实现.-.5
2.2.1生成模块的设计与实现-5-
2.2.2校验模块的设计与实现-7-
2.2.3校验模块的设计与实现-10-
第3章编程下载与硬件测试-11-
3.1编程下载-.11-
3.2硬件测试及结果分析-.11-
参考文献-13-
附录(电路原理图)-14-
第1章总体设计方案
1.1设计原理
海明码校验的原理是在原来的数据中加入对应的校验位,通过校验位反应出
错位。
海明码只能纠正一位出错的数据位。
(1)校验位的产生:
数据位个数为n,校验位个数为k,二者关系满足不等式:
2n>=k+n+1,由此得出校验位个数k(一般取最小值)。
(2)海明码编码:
设数据位由b1,b2bn表示,校验位由c1,c2ck表示,
校验位放在第2m位(m=1,2……),数据位的位号等于几个校验位位号之和,校验位的数值是由所有需要其位号参与相加得到位号的数据位的数值相异或产生的。
(3)海明码校验:
海明码的出错位数是校验位的数值与对应产生该检验位的数据位数值经异或后得到的数值组成的二进制组合。
1.2设计思路
1.海明码的生成:
八位数据位对应的校验位是四位,用b1,b2……b8表示数据位,c1,c2,c3,c4表示校验位,构成的海明码表示为C1c2b1c3b2b3b4c4b5b6b7b8校验位数值与数据位数值关系为:
c仁b1©b2®b4®b5®b7,c2=b1©b3©b4®
b6©b7,c3=b2©b3©b4©b8,c4=b5©b6©b7©b8
2.海明码的校验:
采用偶校验,出错位由四位二进制数P1,P2,P3,P4组成
P1=c1©b1©b2©b4©b5©b7,P2=c2©b1©b3©b4©b6©b7
P3=c3©b2©b3©b4©b8,P4=c4®b5©b6©b7©b8
出错位是P4P3P2P1
1.2设计环境
硬件环境:
伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;
EDA环境:
Xilinxfoundationf3.1设计软件、COP2000仿真软件。
第2章详细设计方案
2.1顶层方案图的设计与实现
顶层方案图实现海明码的生成与校验逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件
顶层图形文件主要由生成元件,校验元件和出错元件模块组装而成的一个完整的设计实体。
图2.1.1生成模块
2.1.2器件的选择与引脚锁定
(1)器件的选择
由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和
XCV200实验板,故采用的目标芯片为XlinxXCV200可编程逻辑芯片。
(2)引脚锁定
把顶层图形文件中的输入/输出信号安排到XilinxXCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及XilinxXCV200芯片引脚对应关系如下表。
表2.1.2信号和芯片引脚对应关系
图形文件中的输入/输出信号
XCV200芯片引脚信号
C1
P83
C2
P84
C3
P85
C4
P86
C5
P70
C6
P71
C7
P72
C8
P73
C9
P79
C10
P80
C11
P81
C12
P82
SI1
P94
SI2
P95
SI3
P96
SI4
P97
SI5
P100
SI6
P101
SI7
P102
SI8
P103
SO1
P4
SO2
P5
SO3
P6
SO4
P7
SO5
P224
SO6
P228
SO7
P229
SO8
P230
S09
P231
SO10
P232
S011
P234
S012
P235
J01
P220
J02
P221
J03
P222
J04
P223
2.2功能模块的设计与实现
海明码生成与校验电路是由生成与校验两个模块组成。
生成模块是从8个输
入端输入8位数据位,经异或门得到校验位,然后依照海明码编码规律输出12
位的海明码;校验模块的出错电路作用是使正确的海明码的其中一位取反得到有一位出错的海明码,并作为校验电路的十二个输入加到输入端,经过校验电路中
的四个异或门得到出错的位号输出到四个输出端,实现海明码校验的功能。
2.2.1生成模块的设计与实现
(1)元件的内部结构
生成模块的电路是由八个输入端,十二个输出端及四个异或门组成,按照公式:
c1=b1®b2®b4®b5®b7,c2=bl®b3®b4®b6®b7,c3=b2®b3®b4®b8,c4=b5®b6®b7®b8,生成四个校验位c1~c4,再与八个输入的数据位按编码顺序Clc2b1c3b2b3b4c4b5b6b7b8俞出12位海明码。
图2.2.1生成模块内部电路
(2)仿真调试
采用功能仿真方法对生成电路进行仿真,验证其功能正确性。
图2.2.1生成模块仿真
仿真结果分析:
表2.2.1海明码生成电路的数据输入与输出表
输入的8位数据
输出的海明码
01101010
100011001010
10101011
111001011011
10101010
111101001010
00101101
100001011101
11101010
011011001010
00011000
010*********
11001101
101010011101
01000110
000110000110
10010001
001000110001
00101011
000001011011
仿真得出的海明码与之前经计算正确的海明码一致,所以生成电路是正确的。
222校验模块的设计与实现
校验模块由出错电路和校验电路两部分够成,共同实现校验功能。
(1)出错电路的内部结构
出错电路的原理是根据二进制数与1异或取反,与0异或为自身的规律设计的,电路由12个控制输入端,12个正确海明码数据输入端,12个一位出错的海明码输出端和12个异或门构成。
12位海明码中使一位取反即一位出错,输出到输出端。
(2)出错电路功能仿真
采用功能仿真方法对出错电路进行仿真,验证其功能正确性。
仿真结果分析:
从仿真结果可直接看出当输入的控制端某一位为1其他
位都为0时可使得输入的海明码对应位取反,所以出错电路是正确的。
(3)校验电路的内部结构
校验电路的原理是根据公式:
P仁cl©bl©b2®b4®b5®b7,P2=c2©bl®b3©b4©b6©b7,P3=c3©b2©b3©b4©b8,P4=c4©b5©b6©b7©b8,得出出错位P4P3P2P1电路由12位一位出错的海明码作为输入端,四个显示出错位号的输出端及四个异或门构成。
图2.2.2校验元件内部电路
(2)校验电路功能仿真
采用功能仿真方法对校验电路进行仿真,验证其功能正确性。
_■
f
Jia■■kb.Ljia■kb
图222校验电路仿真
仿真结果分析:
表2.2.2校验电路的数据输入与输出表
待查错的海明码
出错位号
100011001110
1010
111001111011
0111
111111001010
0101
100001011100
1100
011011000010
1001
110100111000
0001
101010111101
0111
010*********
0010
001100110001
0100
000001011011
0000
仿真结果分析:
由校验电路的仿真得出的出错位与计算得到的正确的出错位一致,所以校验电路是正确的。
2.2.3校验模块的设计与实现
总电路是由生成模块和校验模块组成,生成模块的输出作为出错电路的数据段输入,出错电路的输出作为校验电路的输入,最后生成模块的输出与校验模块的输出作为总电路的输出。
采用功能仿真方法对校验电路进行仿真,验证其功能正确性。
仿真结果分析:
将几个子模块的数据输入到总电路的输入端,观察输出端的数据结果与正确结果一致,所以总电路是正确的。
第3章编程下载与硬件测试
3.1编程下载
利用XilinxISE的编程下载功能,将得到的*bin文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2硬件测试及结果分析
利用XCV200实验板进行硬件功能测试。
海明码数据位的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的七段数码管实现,其对应关系如表3.1所示。
表3.1XCV200实验板信号对应关系
XCV200芯片引脚信号
XCV200实验板
C1
K2:
7
C2
K2:
6
C3
K2:
5
C4
K2:
4
C5
K2:
3
C6
K2:
2
C7
K2:
1
C8
K2:
0
C9
K1:
7
C10
K1:
6
C11
K1:
5
C12
K1:
4
SI1
K0:
7
SI2
K0:
6
SI3
K0:
5
SI4
K0:
4
SI5
K0:
3
SI6
K0:
2
SI7
K0:
1
SI8
K0:
0
SO1~SO4
七段数码管S2
S05~SO12
七段数码管S1
J01~J04
七段数码管S0
利用输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K0、K1、K2输入数据,同时观察七段数码管SO、S1、S2的输出,得到如表3.2所示的硬件测试结果。
表3.2硬件测试结果
输入信号
输出信号
K2
K1
K0
S2
S1
S0
00000000
0001
00111100
04
6C
0C
图3.1cop2000仿真下载结果
结果分析:
输入C1-C12为000000000001,输入SI1-SI8为0011110Q输出S2为04,S1为6C,S0为0C,对应的海明码是010*********出错位是第12位,与正确结果一致。
参考文献
[1]白中英.计算机组成原理(第4版)[M].北京:
科学出版社,2008
[2]王爱英.计算机组成与结构(第4版)[M].北京:
清华大学出版社,2006
[3]唐朔飞.计算机组成原理(第2版)[M].北京:
高等教育出版社,2008
附录(电路原理图)
Itfcnwftj-Ribmj円旳;irF«F*F'hF'p'Rp-i阳■■$=*!
>*-*■-■■■■■■■■
LoeLQCLMLOCLOCLJOCLOCL0CLJDCLOCLJDCLJOC
J!
:
/
54
1..
二
.4
gi討
L:
:
;-
:
:
-
:
;-
"i■
E«
冷.
;
持
LOG我詁
LOOP221
:
:
\
寧
ih
1L.
p;:
:
U
冯
il
XT
r
J
ii
jkii
•叙;
ii-1
卜;j器
uo
'ucc
T_
畚F
p
L0C=P5
LOWS
LOC=P7
LDOP224
LOC=P22£
LK=F22?
LOC=P2:
3
LOC=P21f.
课程设计总结:
在开始接触到Xilinxfoundationf3.1设计软件时遇到很多困难,画元一部分电路图不能保存好,工程最初建立的格式不正确,元件使用不熟练等问题都使得开始的课设不顺利,经过多次画图修改后才完成了设计部分。
之后的仿真和编译在同学的帮助下很快就通过了。
之后的下载也是老师辅导完成的,后期自己也学会了编译及下载。
这次课设对我来说意义很大,锻炼了我的毅力,提高了我的能力,我要感谢老师和同学的帮助,以后我会更多地锻炼自己动手动脑能力。
指导教师评语:
指导教师(签字):
年月日
课程设计成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 明码 生成 校验 电路 设计