沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:计算机组成原理课程设计
课程设计题目:循环冗余校验码校验电路的 设计与实现
院(系): 计算机学院
专 业: 计算机科学与技术
班 级: 1434010105
学 号: 143401010516
姓 名: 徐建磊
指导教师: 周大海
说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。报告和电子数据必须作为实验现象重复的关键依据。
指导教师评语:
|
||
|
||
|
||
|
||
审查结论: |
签名: |
|
年 月 日 |
学术诚信声明
本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。
本人签名: 日期: 年 月 日
沈阳航空航天大学 |
||||||||||||||||||||||||
课程设计任务书 |
||||||||||||||||||||||||
课程名称 |
计算机组成原理课程设计 |
专业 |
计算机科学与技术 |
|||||||||||||||||||||
学生姓名 |
徐建磊 |
班级 |
计算机1405 |
学号 |
143401010516 |
|||||||||||||||||||
题目名称 |
循环冗余校验码校验电路的设计与实现 |
|||||||||||||||||||||||
起止日期 |
2016 |
年 |
12 |
月 |
19 |
日起至 |
2016 |
年 |
12 |
月 |
30 |
日止 |
||||||||||||
|
||||||||||||||||||||||||
课设内容和要求: |
||||||||||||||||||||||||
一、课程设计内容 采用Xilinx Foundation F3.1可编程器件开发工具软件、伟福COP2000实验箱设计并实现循环冗余校验码生成电路。 二、课程设计要求 1.采用自上而下的设计方法,顶层设计使用原理图设计输入方式(电路图方式实现);底层设计输入方式自行选定(可用电路图实现、也可通过VHDL语言编程实现); 2.课程设计的电路主要应包括:模2除电路,循环移位电路,出错位指示电路等; 3.必须用基本逻辑门实现。输入数据为(7,4)码,生成多项式由学生指定; 4.对设计电路进行仿真并验证其正确性,仿真数据由指导教师给出; 5.实现编程下载和硬件测试; 6.独立设计、调试、仿真、下载和硬件测试并通过指导教师现场验收; 7.撰写课程设计报告。 |
||||||||||||||||||||||||
参考资料: [1] 唐硕飞.计算机组成原理(第2版)[M].北京:高等教育出版社,2008 [2] 曹昕燕.EDA技术实验与课程设计[M].北京:清华大学出版社,2006 [3] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006 [4] 王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006 |
||||||||||||||||||||||||
教研室审核意见:同意(√)不同意( )教研室主任签字: |
||||||||||||||||||||||||
指导教师(签名) |
|
|
2016 |
年 |
12 |
月 |
19 |
日 |
||||||||||||||||
学生签名 |
|
|
2016 |
年 |
12 |
月 |
19 |
日 |
||||||||||||||||
课程设计总结及体会
这个学期学习的计算机组成原理课程,让我不但从概念上掌握了计算机内部的工作机制,并且能够学以致用,完成这次课程设计。这次课程设计的任务是做CRC码校验电路的设计。从初步构思到一步步完善直到最后完成整个课程设计,让我更好的巩固了自己所学的知识。翻阅图书去学习一些没有接触过的知识让我更好的了解了这门课程,增强的实践动手能力。
总的来说,虽然完成了老师安排的任务,但是还没有达到尽善尽美的地步,还有很多要学习,要实践。
目 录
1 总体设计.........................................................6
1.1 设计原理......................................................6
1.2 设计思路......................................................7
1.3 设计环境......................................................8
2 详细设计........................................................10
2.1 顶层方案设计与实现...........................................10
2.1.1 创建顶层图形设计文件.....................................10
2.1.2 编译、综合、适配...........................................10
2.2 功能模块的设计与实现.........................................10
2.2.1 模2除法器的设计与实现....................................10
2.2.2 移位寄存器的设计与实现...................................12
2.2.3 异或门集成模块设计与实现.................................14
2.3 仿真调试.....................................................16
3 编程下载与硬件测试..............................................18
3.1 编程下载.....................................................18
3.2 硬件测试及结果分析...........................................18
参考文献...........................................................19
附录(电路原理图)...................................................20
1 总体设计
1.1 设计原理
循环冗余校验码(cyclic redundancy check,CRC)简称为循环码或CRC码。二进制信息沿一条信号线逐位在设备之间传送称为串行传送,CRC码常用于串行传送过程中的检错与纠错。
CRC码的编码格式如图1.1所示,是在k位有效数据之后添加r位校验码,形成总长度为n的CRC码,简写作C(n,k)码。CRC编码的关键技术在于如何从k位信息简便的得到r位校验码,并根据总长度为n的CRC码进行纠错。
图1.1 CRC码编码格式
设被校验的数据是一个k位的二进制代码,将它表示为一个(k-1)阶的多项式 (1-1)
多项式(1-1)中的系数D的取值为0或1,与被校验的数据M一一对应;式中的x是一个伪变量,用指明各位的位置。
设校验码P长度为r,将被校验数据D左移r位后的结果为
将D左移r位的目的是给D右边添加r个0,形成(k+r)位长度二进制代码,其多项式形式为M(x)×。如图1.1所示,CRC码由k位数据D和r位校验码P组成,求校验码P的多项式R(X)的方法如下: (1-2)
Q(x)是商,R(x)是余数,R(x)所对应的二进制代码是校验码P。可以证明存在一个最高次幂为n- k=r 的多项式G(x) ,即式(1-2)中G(x),称为生成多项式。
由式(1-2)可以推导出 (1-3)
由式(1-3)可知,CRC码可被G(x)整除,余数必然为0.。根据这一特性,接收方将收到的CRC码被G(x)除,若余数为0,则表明传送过程中没有错误发生,若出现一位错,根据余数与出错位一一对应的关系,可利用余数对错误码进行定位。因此,接收方可根据表1.1发现并纠正1位错。
表1.1 循环校验码的出错模式
|
Q6 |
Q5 |
Q4 |
Q3 |
Q2 |
Q1 |
Q0 |
余数 |
出错位 |
||
正确 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
无 |
错误 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
Q0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
Q1 |
|
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
Q2 |
|
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
Q3 |
|
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
Q4 |
|
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
Q5 |
|
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
Q6 |
1.2 设计思路
根据题目要求,信息位k=4,r=n-k=3可知本次实验主要是完成(7,4)码的校验。CRC码校验电路,主要由移位寄存器、模2除法器和3.8译码器构成。将待检测的CRC码串行输入到模2除法器和移位寄存器中去,求得3位余数,利用3.8译码器译码将三位余数译码,通过比较可以找出出错位,并将译码结果与移位寄存器的输出结果进行异或,便得到纠正后的正确结果。
CRC码生成与校验电路主要包括两个部分:
1.校验电路。由移位寄存器接收数据并进行移位,生成多项式由开关直接送入,输入数据与生成多项式通过模2除法器最终生成CRC码。3-8译码器与异或门共同完成对信息码的的校验与纠正,最后输出校验后的信息码。
本设计方案采用的元件有模2除法器模块,移位寄存器模块,3-8译码器,与门,异或门。
移位寄存器由7个D触发器构成。
模2除法器由若干两输入与门,若干两输入异或门和D触发器构成。
1.3 设计环境
(1)硬件环境:
伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机。
•COP2000集成调试软件
图 1.2 COP2000计算机组成原理集成调试软件
COP2000 集成开发环境是为COP2000 实验仪与PC 机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC 机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA 实验等功能,该软件在Windows 下运行。COP2000 集成开发环境界面如图1.2所示。
(2)EDA环境:
•Xilinx foundation f3.1设计软件
图 1.3 Xilinx foundation f3.1设计平台
Xilinx foundation f3.1是Xilinx公司的可编程期间开发工具,该平台(如图1.3所示)功能强大,主要用于百万逻辑门设计。该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。
2 详细设计
2.1 顶层方案图的设计与实现
顶层方案图实现CRC码的生成与校验的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件
顶层图形文件的设计实体主要由CRC码校验电路组成。校验电路主要由移位寄存器元件-U24、模2除法器-U14,3-8译码器,异或门集成模块-U33构成。如图2.1所示。
图2.1 CRC码校验电路模块图
2.1.2编译、综合、适配
利用Xilinx foundation f3.1的原理图编辑器对顶层图形文件进行编译,并最终生成网络表文件,利用设计实现工具经综合、优化、适配,生成可供时序仿真的文件和器件下载编程文件。
2.2 功能模块的设计与实现
CRC码的生成与校验电路是基于移位寄存器和模2除法器及异或门实现的。
2.2.1模2除法器的设计与实现
模2加定义:即按位加,可用异或逻辑实现。模2加同模2减结果相同,即0±1=1,1±0=1,0±0=0,1±1=0。
模2除定义:按照模2减求得部分余数。每求一位商应将部分余数减少一位。上商原则是:当部分余数的位数多于除数时,商1,否则,商0。
该模块由D触发器、与门和异或门构成。对(7,4)校验码,可采用图2.3所示电路,产生3位的余数Q2、Q1、Q0。图中的模2减用异或门实现,左移一位由移位寄存器实现;用异或门的输出控制左边一位寄存器的D输入端,可同时实现模2减和左移。用最左一位D触发器的取值控制是否做模2减,当其为1时,减去的数就是生成多项式G(x),为0时减去的就是0000。这里,被除数D是逐位串行送到移位寄存器的,且由CP脉冲同步。其设计过程如下:
(1)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用MOD2芯片,需要为MOD2模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。CP、D是输入信号,Q2、Q1、Q0是输出信号。其元件图形符号如图2.2所示:
图2.2模2除法器元件图形符号
(2)创建控制器设计原理图。
模2除法器原理图如图2.3所示。
图2.3 模2除法器的原理框图
(3)功能仿真
对创建的控制器模块进行功能仿真,验证其功能的正确性,可用Xilinx
Foundation f3.1编译器Simulator模块实现。D端串行输入数据1100000,得到余数Q2、Q1、Q0为010。仿真结果如图2.4所示:
图2.4 模2除法器仿真结果
2.2.2移位寄存器的设计与实现
该模块由8个D触发器相连接构成,数据通过D端串行输入到D触发器中。每过一个时钟脉冲,输入的数据左移一位,经过7个脉冲后,由7个D触发器的Q端并行输出所输入的数据。
(1)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用MOV芯片,需要为MOV模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。CP、D是输入信号,Q6、Q5、Q4、Q3、Q2、Q1、Q0是输出信号。其元件图形符号如图2.5所示:
图2.5 移位寄存器器元件图形符号
(2)创建控制器设计原理图。
移位寄存器的原理框图如图2.6所示。
图2.6 移位寄存器的原理框图
(3)功能仿真
对创建的控制器模块进行功能仿真,验证其功能的正确性,可用Xilinx
Foundation f3.1编译器Simulator模块实现。D串行输入数据1100000,得到结果1100000。仿真结果如图2.7所示:
图2.7 移位寄存器仿真结果
2.2.3异或门集成模块的设计与实现
该模块由7个互相独立的2输入异或门构成。
(1)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用6XOR芯片,需要为6XOR模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。1X、1Y、2X、2Y、3X、3Y、4X、4Y、5X、5Y、6X、6Y、7X、7Y是输入信号,1Z、2Z、3Z、4Z、5Z、6Z、7Z是输出信号。其元件图形符号如图2.8所示:
图2.8 异或门集成元件图形符号
(2)创建控制器设计原理图。
异或门集成模块的原理框图如图2.9所示。
图2.9 异或门集成模块的原理框图
(3)功能仿真
对创建的控制器模块进行功能仿真,验证其功能的正确性,可用Xilinx
Foundation f3.1编译器Simulator模块实现。1X、1Y、2X输入数据111,2Y、3X、3Y输入数据000,1Z、2Z、3Z得到结果010.仿真结果如图2.10所示:
图2.10异或门集成模块仿真结果
2.3 仿真调试
仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。
(1)建立仿真波形文件及仿真信号选择
功能仿真时,首先建立仿真波形文件,添加仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表2.2所示。仿真时D输入信息码1100000,G0,G1,G2,G3输入生成多项式1011,VCC恒为1.
(2)功能仿真结果与分析
功能仿真波形结果如图2.11所示,仿真数据结果如表2.2所示。对表2.2与表1.1的内容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。
图2.11 总电路功能仿真波形结果
表2.2 仿真数据结果
D |
CLOCK |
L6 |
L5 |
L4 |
L3 |
L2 |
L1 |
L0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
输入需要校验的CRC码为:1100000,生成多项式位:1011,可以求得三位余数位010因为余数不为000,可以判断出接受到的循环校验码是错的,并且错误位在Q1。通过校验电路修改可输出正确的CRC码1100010。由图2.9的仿真图和表2.2的仿真数据结果可以看出,生成的CRC码为1100010,校验之后CRC码为1100010。
3 编程下载与硬件测试
3.1 编程下载
利用COP2000仿真软件的编程下载功能,将得到.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2 硬件测试及结果分析
利用XCV200实验板进行硬件功能测试。CRC码生成和校验的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。
表3.1 XCV200实验板信号对应关系
XCV200芯片引脚信号 |
D |
CLK |
G3 |
G2 |
G1 |
G0 |
VCC |
L6 |
L5 |
L4 |
L3 |
L2 |
L1 |
L0 |
XCV200实验板 |
K1:0 |
CLOCK |
K0:3 |
K0:2 |
K0:1 |
K0:0 |
K3:0 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
参考文献
[1] 曹昕燕. EDA技术实验与课程设计[M].北京:清华大学出版社,2006
[2] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006
[3] 爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006
[4] 潘松,黄继业.EDA技术使用教程.北京:科学出版社,2002
[7] 周大海主编. 计算机组成原理实验与课程设计教程. 北京: 北京航空航天大学出版社,2015
[8]白中英.计算机组成原理[M].4版.北京:科学出版社,2008.
[9]唐朔飞.计算机组成原理[M].2版.北京:高等教育出版社,2008.
[10]伟福.COP2000型计算机组成原理实验仪[M].南京伟福实业有限公司.
附 录(电路原理图)
标签:仿真,课程设计,课设,校验,校验码,CRC,输入,设计,冗余 From: https://www.cnblogs.com/xjlnl/p/16756268.html