沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:CRC码生成与校验电路的设计院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。报告和电子数据必须作为实验现象重复的关键依据。-I-学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。本人签名:日期:年月日-II-沈阳航空航天大学课程设计任务书课程设计名称计算机组成原理课程设计专业计算机科学与技术学生姓名班级学号题目名称CRC码生成与校验电路的设计起止日期2016年01月04日起至2016年01月15日止课设内容和要求:一、课程设计内容采用XilinxFoundationF3.1可编程器件开发工具软件,伟福COP2000实验箱,设计并实现CRC码生成与校验电路功能。二、课程设计要求1.采用自上而下的设计方法,顶层设计使用原理图设计输入方式;底层设计输入方式自行选定;2.课程设计的电路主要应包括:寄存器和门电路等。其中控制信号可用外部开关或用VHDL语言以控制器方式实现,其它部分可以调用系统资源库中的器件;3.给定的CRC码为7位二进制数,生成多项式为4位二进制数;4.对设计电路进行仿真并验证其正确性,仿真数据由指导教师给出;5.实现编程下载和硬件测试;6.独立设计、调试、仿真、下载和硬件测试并通过指导教师现场验收;7.撰写课程设计报告。参考资料:[1]曹昕燕.EDA技术实验与课程设计[M].北京:清华大学出版社,2006[2]范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006[3]王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006教研室审核意见:教研室主任签字:指导教师(签名)年月日学生(签名)年月日-III-课程设计总结:作为本学期收尾工作,我积极的要把这份工作做好。这个学期学习的计算机组成原理课程,让我不但从概念上掌握了计算机内部的工作机制,并且能够学以致用,自主完成这次课程设计。当然,成绩的背后,老师的授业解惑是至关重要的。这次课程设计的任务是做CRC码生成与校验电路的设计。从初步构思到一步步完善直到最后完成整个课程设计,让我更好的巩固了自己所学的知识。翻阅图书去学习一些没有接触过的知识让我更好的了解了这门课程,增强的实践动手能力。虽然过程中有迷茫,但是作为一名合格的沈阳航空航天大学的学生,我坚信我可以做到。在老师和同学的帮助下,我没有胆怯,一步步踏踏实实的完成老师分配的工作。总的来说,虽然完成了老师安排的任务,但是还没有达到尽善尽美的地步,还有很多要学习,要实践。虽然课程设计结束了,但是我们才刚刚踏入计算机硬件领域,还有太多太多的知识有待我们去摸索。在实践中学习,在学习中实践,是这次课程设计让我领悟到的,更是以后学习生活中我该做到的。在此请老师接受我最真挚的诚意,让我成长让我掌握的更多!-IV-目录第1章总体设计方案...................................................................................................11.1设计原理.................................................................................................................11.2设计思路.................................................................................................................21.3设计环境...............................................................................................................3第2章详细设计方案...................................................................................................52.1顶层方案图的设计与实现...................................................................................52.1.1创建顶层图形设计文件...................................................................................62.1.2器件的选择与引脚锁定...................................................................................62.1.3编译、综合、适配...........................................................................................82.2功能模块的设计与实现.......................................................................................82.2.1模2除法器的设计与实现...............................................................................82.2.2移位寄存器的设计与实现.............................................................................102.3仿真调试.............................................................................................................11第3章编程下载与硬件测试.....................................................................................143.1编程下载.............................................................................................................143.2硬件测试及结果分析.........................................................................................14参考文献.........................................................................................................................15附录(电路原理图)...............................................................................................16沈阳航空航天大学课程设计报告-1-第1章总体设计方案1.1设计原理循环冗余校验码(cyclicredundancycheck,CRC)简称为循环码或CRC码。二进制信息沿一条信号线逐位在设备之间传送称为串行传送,CRC码常用于串行传送过程中的检错与纠错。CRC码的编码格式如图1.1所示,是在k位有效数据之后添加r位校验码,形成总长度为n的CRC码,简写作C(n,k)码。CRC编码的关键技术在于如何从k位信息简便的得到r位校验码,并根据总长度为n的CRC码进行纠错。图1.1设被校验的数据0121...DDDDDkk是一个k位的二进制代码,将它表示为一个(k-1)阶的多项式0112211......)(DxDxDxDxMkkkk(1-1)多项式(1-1)中的系数D的取值为0或1,与被校验的数据M一一对应;式中的x是一个伪变量,用ix指明各位的位置。设校验码P长度为r,将被校验数据D左移r位后的结果为位rkkDDDD00...00...0121将D左移r位的目的是给D右边添加r个0,形成(k+r)位长度二进制代码,其多项式形式为M(x)×rx。如图1.1所示,CRC码由k位数据D和r位校验码P组成,求校验码P的多项式R(X)的方法如下:)()()()()(xGxRxQxGxxMr(1-2)沈阳航空航天大学课程设计报告-2-Q(x)是商,R(x)是余数,R(x)所对应的二进制代码是校验码P。可以证明存在一个最高次幂为n-k=r的多项式G(x),即式(1-2)中G(x),称为生成多项式。由式(1-2)可以推导出)()()()(xMxGxRxxMr(1-3)由式(1-3)可知,CRC码可被G(x)整除,余数必然为0.。根据这一特性,接收方将收到的CRC码被G(x)除,若余数为0,则表明传送过程中没有错误发生,若出现一位错,根据余数与出错位一一对应的关系,可利用余数对错误码进行定位。因此,接收方可根据表1.1发现并纠正1位错。表1.1循环校验码的出错模式1.2设计思路根据题目要求,信息位k=4,r=n-k=3可知本次实验主要是完成(7,4)码的生成和校验。CRC码生成电路的核心主要由移位寄存器和模2除法器构成,信息位以串行的方式输入。依据CRC码生成与校验原理可知,生成电路中由输入端串行输入的数据D左移3位后,与生成多项式G(x)做模2除法,并将得到的3位余数与4Q6Q5Q4Q3Q2Q1Q0余数出错位正确1100010000无错误1100011001Q01100000010Q11100110100Q21101010011Q31110010110Q41000010111Q50100010101Q6沈阳航空航天大学课程设计报告-3-位信息码拼接成7位CRC码。校验电路原理同生成电路,主要由移位寄存器、模2除法器和3.8译码器构成。将待检测的CRC码串行输入到模2除法器和移位寄存器中去,求得3位余数,利用3.8译码器译码将三位余数译码,通过比较可以找出出错位,并将译码结果与移位寄存器的输出结果进行异或,便得到纠正后的正确结果。CRC码生成与校验电路主要包括两个部分:1.生成电路。由移位寄存器接收数据并进行移位,生成多项式由开关直接送入,输入数据与生成多项式通过模2除法器最终生成CRC码。2.校验电路。原理类似生成电路,校验电路中增加了3-8译码器。3-8译码器与异或门共同完成对信息码的的校验与纠正,最后输出校验后的信息码。本设计方案采用的元件有模2除法器模块,移位寄存器模块,3-8译码器,与门,异或门。移位寄存器由7个D触发器构成。模2除法器由若干两输入与门,若干两输入异或门和D触发器构成。1.3设计环境(1)硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机。•COP2000集成调试软件COP2000集成