CRC码生成与校验电路课程设计仲崇岩资料
- 格式:doc
- 大小:287.74 KB
- 文档页数:16
沈阳航空工业学院课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:CRC码生成与效验电路的设计院(系):计算机学院专业:计算机科学与技术班级:4401102学号:200403011055姓名:刘鹏指导教师:李平完成日期:2006年12月31日目录第1章总体设计方案 (1)1.1 设计原理 (1)1.2 设计思路 (2)1.3 设计环境 (2)第2章详细设计方案 (3)2.1 顶层方案图的设计与实现 (3)2.1.1创建顶层图形设计文件 (3)2.1.2器件的选择与引脚锁定 (4)2.2 功能模块的设计与实现 (5)2.2.1模2除模块的设计与实现 (5)2.2.2 CRC效验码模块的设计与实现 (6)2.3 仿真调试 (7)第3章编程下载与硬件测试 (9)3.1 编程下载 ................................................................................................................ `9 3.2 硬件测试及结果分析 (9)参考文献 (11)附录(程序清单或电路原理图) (12)第1章总体设计方案1.1 设计原理二进制信息位流沿一条线逐位在部件之间或计算机之间传送称为串行传送。
CRC码一般是指k位信息码之后拼接r位校验码。
应用CRC码的关键是如何从k位信息位简便地得到r位效验位,以及如何从k+r位信息码判断是否出错。
CRC码生成:多项式M(x)·x3除以生成多项式G(x)所得的r位余数为效验位(为了得到R位余数,G(x)必须是r+1位)。
然后将余数拼接在信息组左移r位空出的r位上,就构成了这个有效信息的CRC码。
(因为k=4,所以k-1=3位)CRC码效验:将收到的循环效验码用约定的生成多项式G(x)去除,如果码字无误则余数应为0,如果某一位出错,则余数不为0,不同位数出错余数不同。
crc校验码计算电路CRC校验码计算电路引言:在现代通信系统中,数据的传输无法避免出现误码的情况。
为了保证数据的可靠性,校验码的使用变得至关重要。
CRC(Cyclic Redundancy Check)校验码是一种常用的错误检测码,它通过计算数据的校验值来检测数据在传输过程中是否发生错误。
本文将介绍CRC校验码的原理以及如何实现CRC校验码计算电路。
一、CRC校验码原理CRC校验码是通过将数据按照特定的方式进行计算,得到一个校验值。
发送方在发送数据前,将数据帧与生成多项式进行除法运算,得到余数,然后将余数附加到数据帧的末尾。
接收方在接收到数据后,再次进行除法运算,如果余数为0,则认为数据传输无误。
二、CRC校验码计算电路的实现1. 数据输入与位拆分CRC校验码计算电路首先需要将输入的数据进行位拆分,将数据位拆分为每一位进行处理。
这可以通过移位寄存器实现,每次将输入的数据左移一位,并将最高位取出。
2. 生成多项式的选择生成多项式是CRC校验码计算电路的关键部分,不同的生成多项式会影响校验的可靠性和效率。
常用的生成多项式有CRC-8、CRC-16和CRC-32等。
选择适合实际应用场景的生成多项式很重要。
3. 除法运算CRC校验码计算电路使用的是循环除法运算。
将数据位和生成多项式进行异或运算,然后将结果除以生成多项式,得到余数。
再将余数与下一位数据位进行异或运算,重复上述步骤直到处理完所有数据位。
4. 余数的附加除法运算结束后,将最后得到的余数附加到数据帧的末尾,形成带有校验码的数据帧。
5. 数据传输与接收发送方将带有校验码的数据帧发送给接收方。
接收方将接收到的数据帧与生成多项式进行除法运算,如果余数为0,则认为数据传输无误。
否则,认为数据传输发生错误。
三、CRC校验码计算电路的应用CRC校验码广泛应用于各种通信系统中,如以太网、无线通信、存储系统等。
在以太网中,CRC校验码用于检测数据在链路层传输过程中是否发生错误。
沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:CRC码生成与校验电路的设计院(系):计算机学院专业:计算机科学与技术班级:34010106学号:2013040101270姓名:仲崇岩指导教师:施国君完成日期:2016年1月13日沈阳航空航天大学课程设计报告目录第1章总体设计方案 (3)1.1设计原理 (3)1.2设计思路 (4)1.3设计环境 (5)第2章详细设计方案 (7)2.1顶层方案图的设计与实现 (7)2.1.1创建顶层图形设计文件 (7)2.1.2编译、综合、适配 (8)2.2功能模块的设计与实现 (8)2.2.1模2除法器的设计与实现 (8)2.2.2移位寄存器的设计与实现 (10)2.3仿真调试 (11)参考文献 (14)附录(电路原理图) (15)第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设被校验的数据0121...D DD D D k k --=是一个k 位的二进制代码,将它表示为一个(k-1)阶的多项式0112211......)(D x D x D x D x M k k k k +++++=---- (1-1)多项式(1-1)中的系数D 的取值为0或1,与被校验的数据M 一一对应;式中的x 是一个伪变量,用ix 指明各位的位置。
设校验码P 长度为r ,将被校验数据D 左移r 位后的结果为位r k k D D D D 00...00...0121--将D 左移r 位的目的是给D 右边添加r 个0,形成(k+r)位长度二进制代码,其多项式形式为M(x )×rx 。
计组课程设计crc一、教学目标本节课的教学目标是使学生掌握CRC(循环冗余检查)的基本原理和计算方法,能够运用CRC检测数据传输中的错误。
具体目标如下:知识目标:1. 了解CRC的概念和作用;2. 掌握CRC的计算方法;3. 理解CRC在数据传输中的应用。
技能目标:1. 能够运用CRC计算器检测数据传输中的错误;2. 能够编写程序实现CRC的计算和验证。
情感态度价值观目标:通过学习CRC,培养学生严谨的科学态度和解决问题的能力,激发学生对计算机科学的兴趣。
二、教学内容本节课的教学内容主要包括CRC的基本原理、计算方法和应用。
具体安排如下:1.介绍CRC的概念和作用,通过实例让学生了解CRC在数据传输中的重要性。
2.讲解CRC的计算方法,包括生成多项式、余数计算和校验码的生成。
3.分析CRC的检错原理,让学生理解CRC如何检测数据传输中的错误。
4.结合实际案例,演示CRC在数据传输中的应用,让学生了解CRC的实际应用场景。
5.通过编程实践,让学生动手实现CRC的计算和验证,巩固所学知识。
三、教学方法为了提高教学效果,本节课将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解CRC的基本原理和计算方法,让学生掌握理论知识。
2.案例分析法:分析实际案例,让学生了解CRC在数据传输中的应用。
3.实验法:让学生动手实践,编写程序实现CRC的计算和验证。
4.讨论法:鼓励学生提问、讨论,解答学生在学习中遇到的问题。
四、教学资源为了支持教学内容和教学方法的实施,本节课将准备以下教学资源:1.教材:《计算机组成原理》相关章节。
2.参考书:提供相关的学术论文和资料,供学生深入研究。
3.多媒体资料:制作PPT课件,直观展示CRC的计算过程。
4.实验设备:提供计算机实验室,让学生动手实践。
5.在线资源:推荐相关的在线教程和编程实践平台,方便学生自学和练习。
五、教学评估本节课的评估方式将包括以下几个方面,以全面、客观地评价学生的学习成果:1.平时表现:通过观察学生在课堂上的参与程度、提问和回答问题的表现,了解学生的学习状态。
crc差错编码课程设计一、课程目标知识目标:1. 让学生掌握差错编码的基本概念,了解CRC(循环冗余校验)码的原理和作用。
2. 学会计算和生成CRC码,并能运用CRC码进行简单的错误检测。
3. 了解差错编码在通信、计算机等领域的实际应用。
技能目标:1. 培养学生运用CRC差错编码进行错误检测的能力,提高数据传输的可靠性。
2. 培养学生运用所学知识解决实际问题的能力,提高学生的动手操作能力。
情感态度价值观目标:1. 培养学生对差错编码的兴趣,激发学生学习计算机科学和通信技术的热情。
2. 培养学生的团队协作意识,提高学生在团队中的沟通与协作能力。
3. 培养学生严谨的科学态度,养成遇到问题主动探究、积极解决的良好习惯。
课程性质分析:本课程为信息技术课程,旨在让学生了解和掌握差错编码的基本原理和方法,提高数据传输的可靠性。
学生特点分析:学生处于高年级阶段,已具备一定的信息技术基础,对计算机和通信技术有一定了解,具备一定的逻辑思维能力。
教学要求:1. 注重理论与实践相结合,让学生在实际操作中掌握CRC差错编码的应用。
2. 创设问题情境,引导学生主动探究,培养学生的创新精神和实践能力。
3. 采用小组合作学习,提高学生的团队协作能力和沟通能力。
二、教学内容1. 差错编码基本概念:差错编码的定义、作用和分类。
2. CRC码原理与计算:循环冗余校验码的原理、生成多项式、计算方法及应用。
3. CRC码的生成与验证:利用生成多项式生成CRC码,进行错误检测的步骤和方法。
4. 差错编码在实际应用中的案例分析:通信、计算机等领域中的差错编码应用实例。
5. 教学内容的安排和进度:- 第一节课:差错编码基本概念,引出CRC码的重要性。
- 第二节课:CRC码的原理和计算方法,学习生成多项式的运用。
- 第三节课:实践操作,学生分组进行CRC码的生成和验证。
- 第四节课:差错编码在实际应用中的案例分析,加深学生对知识点的理解。
6. 教材章节与内容对应:- 教材第3章“差错编码与检测”:涵盖差错编码基本概念、CRC码原理与计算、应用实例等内容。
课程设计报告课程设计名称:组成原理课程设计课程设计题目:循环冗余校验码生成电路的设计与实现院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。
报告和电子数据必须作为实验现象重复的关键依据。
学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。
尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。
与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。
报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。
本人签名: 日期:年月日目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (2)1.3设计环境 (3)第2章详细设计方案 (4)2.1顶层方案图的设计与实现 (4)2.1.1创建顶层图形设计文件 (4)2.2功能模块的设计 (4)2.2.1移位寄存器的设计 (5)2.2.2模2除法器的设计 (6)2.3CRC码生成电路整体仿真 (9)第3章编程下载与硬件测试 (12)3.1器件的选择与引脚锁定 (12)3.2编程下载 (13)3.3硬件测试及结果分析 (13)参考文献 (16)附录(电路原理图) (17)第1章 总体设计方案1.1 设计原理循环冗余校验码(Cyclic Redundancy Check,CRC)简称为循环码或CRC 码。
此码可以发现并纠正信息在存储或传送过程中连续出现的多位错误代码。
计算机常用的二进制信息沿一条信号线逐位在设备之间传送称为串行传送,CRC 码常用于串行传送过程中的检错与纠错。
CRC 码一般是指n 位信息码之后拼接k 位校验码。
crc冗余编码课程设计一、课程目标知识目标:1. 学生理解CRC(循环冗余校验)编码的基本原理,掌握其数学基础和计算过程。
2. 学生能够描述CRC编码在数据传输和存储中的应用及其重要性。
3. 学生掌握至少两种不同的CRC编码生成多项式及其特点。
技能目标:1. 学生能够运用CRC编码对简单的二进制数据进行校验位的计算,并验证数据的完整性。
2. 学生通过实际案例分析和解决数据传输中可能出现的错误,提高问题解决能力。
情感态度价值观目标:1. 学生培养对信息科学技术的兴趣,认识到其在现代通信中的重要作用。
2. 学生通过小组合作,培养团队协作能力和沟通技巧。
3. 学生在学习过程中,培养严谨的科学态度和探索精神,增强对信息安全的意识。
课程性质分析:本课程为信息技术或计算机科学相关学科的教学内容,旨在通过CRC冗余编码的学习,提高学生对数据传输安全性的认识和实际操作能力。
学生特点分析:考虑到学生处于高年级阶段,具备一定的计算机科学和信息科学基础知识,能够理解较为抽象的编码概念,并具有一定的逻辑思维能力。
教学要求:1. 结合学生特点,课程设计应注重理论与实践相结合,增强学生的实际操作能力。
2. 教学过程中注重启发式教学,引导学生主动探索和解决问题。
3. 通过小组合作和案例教学,培养学生的团队合作能力和实际应用能力。
二、教学内容1. 引言:介绍数据通信中冗余编码的概念及其重要性,明确CRC编码在保障数据传输正确性中的应用。
- 相关章节:教材第3章“数据通信基础”2. CRC编码原理:- 数学基础:多项式运算、模运算- 编码过程:生成多项式的选择、校验位的计算方法- 相关章节:教材第4章“循环冗余校验”3. CRC编码应用:- 在不同通信协议中的应用,如以太网、USB等- 数据存储中的错误检测,如硬盘、闪存等- 相关案例:实际通信过程中的错误检测与纠正4. 生成多项式及其特点:- 常用生成多项式介绍,如CRC-16、CRC-32- 生成多项式与校验能力的关系- 相关章节:教材第5章“常见冗余编码”5. 实践操作:- 使用计算器或编程工具进行CRC校验位计算- 案例分析与讨论:模拟数据传输错误,验证CRC编码的校验能力6. 小组合作与展示:- 学生分组,共同研究并解决特定问题- 各小组展示成果,交流学习心得教学内容安排与进度:第1课时:引言与CRC编码原理第2课时:CRC编码应用与生成多项式特点第3课时:实践操作与小组合作第4课时:小组展示与总结交流教学内容确保科学性和系统性,结合教材章节和实际案例,帮助学生扎实掌握CRC冗余编码知识,并提高实际应用能力。
CRC循环冗余校验码的⽣成众所周知,不可能有永远都不会出错的⼈,同样也不可能有永远不出错的计算机,永远不出错的数据。
⼈有知错能改的觉悟,计算机也有,不过计算机没有⼈类聪明,只能通过⼀个特定的⽅法进⾏⾃我改正,这就是校验码存在的必要了。
⼀般⽤得⽐较多的校验码有奇偶校验码,CRC循环冗余校验码,海明校验码等。
这⾥只介绍⽤的最多的CRC循环冗余校验码。
何为校验码校验码是通过⼀种计算⽅法,发出端在原始数据的尾部添加若⼲数据;然后接收端通过计算得出数据有⽆错误,并且能把错误的数据还原成正确的数据。
例如,原始数据为1010,我们通过在其尾部添加若⼲数据,⽐如101,则数据变成了1010101,将这个新的数据发送出去;假如在发送过程中出现错误,数据变成了1110101,则接收端能根据1110101还原成原始正确的数据1010。
CRC循环冗余校验码的特点CRC码是基于模2运算建⽴编码规律的校验码(模2运算可以简单的理解为异或运算)。
编码⽅法:1.将原始数据⽤⼀个多项式M(x) = A*X^(n-1)+B*X^(n-2)+…+N*X^(1)+P*X^(0)⽐如说原始数据是1010,则表⽰为M(x) = 1*X^(3)+0*X^(2)+1*X^(1)+0*X^(0)2.将原始数据左移k位,得到M(X)*X^k,形成了n+k位信息。
上⾯的1010,左移3位,得到1010 0003.⽤多项式M(X)*X^k 除以(或者说异或)⼀个特定的⽣成多项式G(X),所得余数则为需要拼接到原始数据尾部的CRC校验码。
例:已知原始数据为1100,⽣成多项式G(X)=1011,则求算CRC码的过程如下:已知:M(X) = 1100 = X^3+X^2 (n=4)由 G(X) = 1011 = X^3+X^1+1得 k+1 = n = 4得 k=3,需要左移3位故得 M(X)*X^3 = 1100 000(M(X)*X^3) / G(X)计算过程:1100 000 M(X)*X^31011 G(X)--------------111 0 余数,⾼位0省去;然后余数左移1位,继续异或G(X)101 1 G(X)---------------10 10 左移1位,继续异或G(X)10 11----------------10 由于k=3,⽽算到这⾥我们已经对余数移位2次,还需1次则最后算出来的结果是010,则原始数据变成了1100 010,最后三位是CRC码。
沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:CRC码生成与校验电路的设计与实现院(系):专业:班级:学号:姓名:指导教师:完成日期:2016年1月14日沈阳航空航天大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (2)1.3设计环境 (3)第2章详细设计方案 (6)2.1顶层方案图的设计与实现 (6)2.1.1创建顶层图形设计文件 (6)2.1.2器件的选择与引脚锁定 (7)2.1.3编译、综合、适配 (8)2.2功能模块的设计与实现 (9)2.2.1模2除法器的设计与实现 (9)2.2.2移位寄存器的设计与实现 (11)2.3仿真调试 (12)第3章编程下载与硬件测试 (15)3.1编程下载 (15)3.2硬件测试及结果分析 (15)参考文献 (17)附录(电路原理图) (18)第1章 总体设计方案1.1 设计原理二进制信息位流沿一条线逐位在部件之间或计算机之间传送称为串行传送。
C RC(cyclic redundancy check)码可以发现并纠正信息存储或传送过程中连续出现的多位错误。
CRC 码的编码格式如图1.1所示,是在k 位有效数据之后添加r 位校验码,形成总长度为n 的CRC 码,简写作C(n,k)码。
CRC 编码的关键技术在于如何从k 位信息简便的得到r 位校验码,并根据总长度为n 的CRC 码进行纠错。
图1.1设被校验的数据0121...D DD D D k k --=是一个k 位的二进制代码,将它表示为一个(k-1)阶的多项式0112211......)(D x D x D x D x M k k k k +++++=---- (1-1)多项式(1-1)中的系数D 的取值为0或1,与被校验的数据M 一一对应;式中的x 是一个伪变量,用ix 指明各位的位置。
设校验码P 长度为r ,将被校验数据D 左移r 位后的结果为位r k k D D D D 00...00...0121--将D 左移r 位的目的是给D 右边添加r 个0,形成(k+r)位长度二进制代码,其多项式形式为M(x)×r x 。
CRC网络课程设计一、课程目标知识目标:1. 让学生掌握CRC(循环冗余校验)的基本概念,理解其在数据通信中的重要作用。
2. 学会运用CRC算法进行数据校验,并能解释校验过程。
3. 了解不同类型的CRC码,并能够根据实际需求选择合适的CRC码。
技能目标:1. 培养学生运用CRC算法进行数据校验的能力,提高数据传输的准确性。
2. 培养学生通过查阅资料、合作学习等方式,解决实际通信中CRC相关问题。
情感态度价值观目标:1. 激发学生对计算机网络和数据通信的兴趣,培养其探索精神和求知欲。
2. 培养学生的团队协作意识,使其在合作学习过程中,学会互相尊重、互相帮助。
3. 增强学生的信息安全意识,认识到数据传输安全的重要性。
课程性质:本课程为计算机网络基础课程,旨在帮助学生掌握CRC相关知识点,提高数据通信能力。
学生特点:学生为初中生,对计算机网络有一定了解,具备基本的计算机操作能力,但可能对CRC算法了解较少。
教学要求:结合学生特点,采用生动形象的教学方法,注重理论与实践相结合,充分调动学生的主观能动性,提高其知识水平和实践能力。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
将课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 引入CRC基本概念:讲解CRC的定义、作用以及在数据通信中的应用场景。
关联教材章节:第三章 数据通信基础,第五节 数据校验2. CRC算法原理与计算过程:详细讲解CRC算法的工作原理,引导学生通过实例分析,掌握计算过程。
关联教材章节:第三章 数据通信基础,第五节 数据校验3. 常见CRC码类型:介绍几种常见的CRC码,如CRC-8、CRC-16、CRC-32等,并分析各自的特点。
关联教材章节:第三章 数据通信基础,第五节 数据校验4. CRC应用案例分析:通过实际案例,展示CRC在数据通信中的重要作用,让学生更好地理解CRC的应用场景。
沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:CRC码生成与校验电路的设计院(系):计算机学院专业:计算机科学与技术班级:34010106学号:2013040101270姓名:仲崇岩指导教师:施国君完成日期:2016年1月13日沈阳航空航天大学课程设计报告目录第1章总体设计方案 (3)1.1设计原理 (3)1.2设计思路 (4)1.3设计环境 (5)第2章详细设计方案 (7)2.1顶层方案图的设计与实现 (7)2.1.1创建顶层图形设计文件 (7)2.1.2编译、综合、适配 (8)2.2功能模块的设计与实现 (8)2.2.1模2除法器的设计与实现 (8)2.2.2移位寄存器的设计与实现 (10)2.3仿真调试 (11)参考文献 (14)附录(电路原理图) (15)第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设被校验的数据0121...D DD D D k k --=是一个k 位的二进制代码,将它表示为一个(k-1)阶的多项式0112211......)(D x D x D x D x M k k k k +++++=---- (1-1)多项式(1-1)中的系数D 的取值为0或1,与被校验的数据M 一一对应;式中的x 是一个伪变量,用ix 指明各位的位置。
设校验码P 长度为r ,将被校验数据D 左移r 位后的结果为位r k k D D D D 00...00...0121--将D 左移r 位的目的是给D 右边添加r 个0,形成(k+r)位长度二进制代码,其多项式形式为M(x )×rx 。
如图1.1所示,CRC 码由k 位数据D 和r 位校验码P 组成,求校验码P 的多项式R(X)的方法如下:)()()()()(x G x R x Q x G x x M r +=⨯ (1-2)Q(x)是商,R(x)是余数,R(x)所对应的二进制代码是校验码P 。
可以证明存在一个最高次幂为n- k=r 的多项式G(x) ,即式(1-2)中G(x),称为生成多项式。
由式(1-2)可以推导出)()()()(x M x G x R x x M r =+⨯ (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位余数与4位信息码拼接成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 设计环境EDA环境:Xilinx foundation f3.1设计软件Xilinx foundation f3.1是Xilinx公司的可编程期间开发工具,该平台(如图1.2所示)功能强大,主要用于百万逻辑门设计。
该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。
图 1.2 Xilinx foundation f3.1设计平台第2章详细设计方案2.1 顶层方案图的设计与实现顶层方案图实现CRC码的生成与校验的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件顶层图形文件的设计实体主要由CRC码生成电路与CRC码校验电路组成。
生成电路主要由移位寄存器元件-U3、模2除法器元件-U4构成。
如图2.1所示。
图2.1 CRC码生成电路图校验电路主要由移位寄存器元件-U9、模2除法器-U8,3-8译码器,异或门-XOR2构成。
如图2.2所示。
图2.2 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)创建控制器设计原理图。
模2除法器原理图如图2.3所示。
图2.3 模2除法器的原理框图(2)创建元件图形符号为能在图形编辑器(原理图设计输入方式)中调用MO2芯片,需要为MO2模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。
CLK、D、G0、G1、G2、G3是输入信号,Q3、Q2、Q1是输出信号。
其元件图形符号如图2.4所示:图2.4模2除法器元件图形符号(3)功能仿真对创建的控制器模块进行功能仿真,验证其功能的正确性,可用XilinxFoundation f3.1编译器Simulator模块实现。
D端串行输入数据1100000,得到余数Q3、Q2、Q1为010。
仿真结果如图2.5所示:图2.5 模2除法器仿真结果2.2.2移位寄存器的设计与实现该模块由8个D触发器相连接构成,数据通过D端串行输入到D触发器中。
每过一个时钟脉冲,输入的数据左移一位,经过7个脉冲后,由7个D触发器的Q端并行输出所输入的数据。
(1)创建控制器设计原理图。
移位寄存器的原理框图如图2.6所示。
图2.6 移位寄存器的原理框图(2)创建元件图形符号为能在图形编辑器(原理图设计输入方式)中调用YIWEI芯片,需要为YIWEI 模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。
CLK、D是输入信号,Q0、Q1、Q2、Q3、Q4、Q5、Q6是输出信号。
其元件图形符号如图2.7所示:图2.7 移位寄存器器元件图形符号(3)功能仿真对创建的控制器模块进行功能仿真,验证其功能的正确性,可用Xilinx Foundation f3.1编译器Simulator模块实现。
D串行输入数据1100000,得到结果1100000。
仿真结果如图2.8所示:图2.8 移位寄存器仿真结果2.3 仿真调试仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。
(1)建立仿真波形文件及仿真信号选择功能仿真时,首先建立仿真波形文件,添加仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表 2.2所示。
仿真时D输入信息码1100000,A输入循环校验码1100000,G0,G1,G2,G3输入生成多项式1011。
(2)功能仿真结果与分析功能仿真波形结果如图2.9所示,仿真数据结果如表2.2所示。
对表2.2与表1.1的内容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。
图2.9 功能仿真波形结果表2.2 仿真数据结果输入信息码为:1100000,生成多项式为:1011,应用模2除法器可以求出三位余数为010 然后把余数和信息码拼接可以得到CRC编码为:1100010 输入需要校验的CRC码为:1100000,生成多项式位:1011,可以求得三位余数位010因为余数不为000,可以判断出接受到的循环校验码是错的,并且错误位在Q1。
通过校验电路修改可输出正确的CRC码1100010。
由图2.9的仿真图和表2.2的仿真数据结果可以看出,生成的CRC码为1100010,校验之后CRC 码为1100010。
沈阳航空航天大学课程设计报告参考文献[1] 曹昕燕. EDA技术实验与课程设计[M].北京:清华大学出版社,2006[2] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006[ 3 ]爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006[4]潘松,黄继业.EDA技术使用教程.北京:科学出版社,2002[5]胡越明.2002.计算机组成与系统结构.北京:电子工业出版社[6]王炜.2006.计算机组成与设计实验教程.北京:科学出版社附录(电路原理图)。