《CRC码生成与校验电路的设计说明》由会员分享,可在线阅读,更多相关《CRC码生成与校验电路的设计说明(17页珍藏版)》请在金锄头文库上搜索。
1、 .目 录第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 设计原理循环冗余校验码(cyclic redundancy check,CRC)简称为循环码或CRC
2、码。二进制信息沿一条信号线逐位在设备之间传送称为串行传送,CRC码常用于串行传送过程中的检错与纠错。CRC码的编码格式如图1.1所示,是在k位有效数据之后添加r位校验码,形成总长度为n的CRC码,简写作C(n,k)码。CRC编码的关键技术在于如何从k位信息简便的得到r位校验码,并根据总长度为n的CRC码进行纠错。图1.1设被校验的数据是一个k位的二进制代码,将它表示为一个(k-1)阶的多项式 (1-1)多项式(1-1)中的系数D的取值为0或1,与被校验的数据M一一对应;式中的x是一个伪变量,用指明各位的位置。设校验码P长度为r,将被校验数据D左移r位后的结果为将D左移r位的目的是给D右边添加r
3、个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,则说明传送过程中没有错误发生,若出现一位错,根据余数与出错位一一对应的关系,可利用余数对错误码进行定
4、位。因此,接收方可根据表1.1发现并纠正1位错。Q6Q5Q4Q3Q2Q1Q0余数出错位正确1100010000无错误1100011001Q01100000010Q11100110100Q21101010011Q31110010110Q41000010111Q50100010101Q6表1.1 循环校验码的出错模式1.2 设计思路根据题目要求,信息位k=4,r=n-k=3可知本次实验主要是完成(7,4)码的生成和校验。CRC码生成电路的核心主要由移位寄存器和模2除法器构成,信息位以串行的方式输入。依据CRC码生成与校验原理可知,生成电路中由输入端串行输入的数据D左移3位后,与生成多项式G(x)做
5、模2除法,并将得到的3位余数与4位信息码拼接成7位CRC码。校验电路原理同生成电路,主要由移位寄存器、模2除法器和3.8译码器构成。将待检测的CRC码串行输入到模2除法器和移位寄存器中去,求得3位余数,利用3.8译码器译码将三位余数译码,通过比较可以找出出错位,并将译码结果与移位寄存器的输出结果进行异或,便得到纠正后的正确结果。CRC码生成与校验电路主要包括两个部分:1.生成电路。由移位寄存器接收数据并进行移位,生成多项式由开关直接送入,输入数据与生成多项式通过模2除法器最终生成CRC码。2.校验电路。原理类似生成电路,校验电路中增加了3-8译码器。3-8译码器与异或门共同完成对信息码的的校验
6、与纠正,最后输出校验后的信息码。本设计方案采用的元件有模2除法器模块,移位寄存器模块,3-8译码器,与门,异或门。移位寄存器由7个D触发器构成。模2除法器由若干两输入与门,若干两输入异或门和D触发器构成。1.3 设计环境(1)硬件环境: 伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机。COP2000集成调试软件 COP2000 集成开发环境是为COP2000 实验仪与PC 机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC 机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA 实验等功能,该软件在Windows 下运行。COP2000 集成开
7、发环境界面如图1.2所示。图 1.2 COP2000计算机组成原理集成调试软件(2)EDA环境:Xilinx foundation f3.1设计软件Xilinx foundation f3.1是Xilinx公司的可编程期间开发工具,该平台(如图1.3所示)功能强大,主要用于百万逻辑门设计。该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。图 1.3 Xilinx foundation f3.1设计平台第2章 详细设计方案2.1 顶层方案图的设计与实现顶层方案图实现CRC码的生成与校验的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。在完成原理图的功能设
8、计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。2.1.1创建顶层图形设计文件顶层图形文件的设计实体主要由CRC码生成电路与CRC码校验电路组成。生成电路主要由移位寄存器元件-U2、模2除法器元件-U3构成。如图2.1所示。图2.1 CRC码生成电路图校验电路主要由移位寄存器元件-U5、模2除法器-U4,3-8译码器,异或门集成模块-U6构成。如图2.2所示。图2.2 CRC码校验电路图2.1.2器件的选择与引脚锁定(1)器件的选择由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为Xlinx XCV200软件中可用
9、芯片。(2)引脚锁定把顶层图形文件中的输入/输出信号安排到Xlinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号与Xlinx XCV200芯片引脚对应关系如表2.1所示。 图形文件中的输入/输出信号XCV200芯片引脚D87A73CLK213VCC47G3100G2101G1102G0103Q6152Q5178Q4184Q3185Q2203Q1111Q0110L693L599L4107L3108L2109L1124L0125表2.1 信号和芯片引脚对应关系2.1.3编译、综合、适配利用Xilinx foundation f3.1的原理图编辑器对顶层图形文件进行编译,并最终生成网
10、络表文件,利用设计实现工具经综合、优化、适配,生成可供时序仿真的文件和器件下载编程文件。2.2 功能模块的设计与实现CRC码的生成与校验电路是基于移位寄存器和模2除法器与异或门实现的。2.2.1模2除法器的设计与实现模2加定义:即按位加,可用异或逻辑实现。模2加同模2减结果相同,即01=1,10=1,00=0,11=0。模2除定义:按照模2减求得部分余数。每求一位商应将部分余数减少一位。上商原则是:当部分余数的位数多于除数时,商1,否则,商0。该模块由D触发器、与门和异或门构成。对(7,4)校验码,可采用图2.3所示电路,产生3位的余数Q2、Q1、Q0。图中的模2减用异或门实现,左移一位由移位
11、寄存器实现;用异或门的输出控制左边一位寄存器的D输入端,可同时实现模2减和左移。用最左一位D触发器的取值控制是否做模2减,当其为1时,减去的数就是生成多项式G(x),为0时减去的就是0000。这里,被除数D是逐位串行送到移位寄存器的,且由CP脉冲同步。其设计过程如下:(1)创建控制器设计原理图。模2除法器原理图如图2.3所示。图2.3 模2除法器的原理框图(2)创建元件图形符号为能在图形编辑器(原理图设计输入方式)中调用MOD2芯片,需要为MOD2模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=Symbol Wizard=下一步。
12、CP、D是输入信号,Q2、Q1、Q0是输出信号。其元件图形符号如图2.4所示: 图2.4模2除法器元件图形符号(3)功能仿真对创建的控制器模块进行功能仿真,验证其功能的正确性,可用XilinxFoundation f3.1编译器Simulator模块实现。D端串行输入数据1100000,得到余数Q2、Q1、Q0为010。仿真结果如图2.5所示: 图2.5 模2除法器仿真结果2.2.2移位寄存器的设计与实现该模块由8个D触发器相连接构成,数据通过D端串行输入到D触发器中。每过一个时钟脉冲,输入的数据左移一位,经过7个脉冲后,由7个D触发器的Q端并行输出所输入的数据。(1)创建控制器设计原理图。移
13、位寄存器的原理框图如图2.6所示。图2.6 移位寄存器的原理框图(2)创建元件图形符号为能在图形编辑器(原理图设计输入方式)中调用MOV芯片,需要为MOV模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=Symbol Wizard=下一步。CP、D是输入信号,Q6、Q5、Q4、Q3、Q2、Q1、Q0是输出信号。其元件图形符号如图2.7所示:图2.7 移位寄存器器元件图形符号(3)功能仿真对创建的控制器模块进行功能仿真,验证其功能的正确性,可用XilinxFoundation f3.1编译器Simulator模块实现。D串行输入数据1
14、100000,得到结果1100000。仿真结果如图2.8所示:图2.8 移位寄存器仿真结果2.3 仿真调试仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。(1)建立仿真波形文件与仿真信号选择功能仿真时,首先建立仿真波形文件,添加仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表2.2所示。仿真时D输入信息码1100000,A输入循环校验码1100000,G0,G1,G2,G3输入生成多项式1011,VCC恒为1。(2)功能仿真结果与分析功能仿真波形结果如图2.9所示,仿真数据结果如表2.2所示。对表2.2与表1.1的容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。图2.9 功能仿真波形结果DACLOCKQ6Q5Q4Q3