CRC16、扰码、解扰码器并行方案原理和VerilogHDL程序设计解读

上传人:cn****1 文档编号:466078362 上传时间:2022-10-02 格式:DOC 页数:16 大小:451.50KB
返回 下载 相关 举报
CRC16、扰码、解扰码器并行方案原理和VerilogHDL程序设计解读_第1页
第1页 / 共16页
CRC16、扰码、解扰码器并行方案原理和VerilogHDL程序设计解读_第2页
第2页 / 共16页
CRC16、扰码、解扰码器并行方案原理和VerilogHDL程序设计解读_第3页
第3页 / 共16页
CRC16、扰码、解扰码器并行方案原理和VerilogHDL程序设计解读_第4页
第4页 / 共16页
CRC16、扰码、解扰码器并行方案原理和VerilogHDL程序设计解读_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《CRC16、扰码、解扰码器并行方案原理和VerilogHDL程序设计解读》由会员分享,可在线阅读,更多相关《CRC16、扰码、解扰码器并行方案原理和VerilogHDL程序设计解读(16页珍藏版)》请在金锄头文库上搜索。

1、课程设计课程名称现代通信原理与技术课程设计题目名称 CRC16扰码/解扰码器并行方案原理和Verilog HDL程序设计2013年10月25日目录一、CRC16并行算法原理二、CRC16并行算法的 Verilog HDL 程序设计三、扰码/解扰码器并行算法原理四、扰码/解扰码器并行算法的 Verilog HDL程序设计五、参考文献#、CRC16并行算法原理1、CRC编码原理在数字通信中,可能会因为各种原因导致数据在传输过程中或接收时发生错误,为了保证数据传输的可靠性和数据校验的高效性,常常采用一些差错控制方法。冗余校验(CRC就是一种被广泛采用的差错控制方法和数据编码方法。它具有编码和解码方法

2、简单,剪错和纠错能力强等特点, 能有效地对数据进行编码,并可以显著的提高系统的剪错能力,从而保证数据的可靠性和正确性,因此在大多数的以太网协议中都采用了 CRC勺校验来进行差错控制。CRC主要有两种,即非标准的由用户定义的 CRC的生成多项式和国际标准化组织规定的 标准的生成多项式。 其中第二中应用广泛, 国际标准化组织规定的几种主要常见的CRC如表所示。御记应舟CRC-14m G,704CRC-S0x13005BM SDLCCRC-CCIIT0x110211SOIIDLC. FTUX.25CRC-320k1O4CHDB7ZIP, RAR. IEEE802LAN.TDD h PPP-FCSCR

3、C编码是根据CRC佥验原理得出的一种编码方法,其基本思想是:利用线性编码理论,在发送方向根据要传输的 K位二进制序列,以一定的规则产生r位校验用的监督吗(CRC码), 并附在信息位之后, 构成一个新的二进制代码序列共n=k+r位。在接收方,则根据信息码和CRC码之间的规则进行校验,以确定传输中是否出现错误。对一个数据进行编码, 就是原始数据通过某种算法,得到一个新的数据。 而这个新的数据与原始数据有着固定的内在联系。通过把原始数据和新的数据组合在一起形成新的数据, 因此这个数据具有自我校验的能力。将原始数据表示为 P(x),它是一个n阶多项式表示为;P(x) =X + a2xH 2 十丄+珂兀

4、 + 口。式子中,为数据位;x为伪变量,用指明各位间的排列位置。在对这个数据进行编码的时,CRC生成多项式G(x),并在带编码的二进制多项式 P( x)的末尾添加r个0,这样对应的二进制多项式升幕为。再用生成多项式 G (x)去除,求得余数为r-1阶的二进制多项式 R (x)。R (x)即为所求的CRC校验码多项式。最后用:(以模2的方法减去R( x),则对应的二进制序列就是包含了CRC校验码的待发送字符串,也就是编码后的数据。xrP(x)丽= G(x)e(x) = T(x)式中:Q(x)是商多项式;R(x)是余数多项式;T(x)是编码后的数据。2、CRC_16并行算法原理在利用CRC_16串

5、行编码电路对输入进行编码时,它的输入数据是串行输入的,因此数 据传输效率低,它的运算速度的提高完全依赖于系统时钟频率的提高,不能满足现在的低功耗下的数据快速传输, 如果将数据进行并行处理, 就可以在较低的时钟频率下快速的处理数 据,因此,本次设计采用并行的CRC_16最常见的CRC校验码电路采用的是线性反馈寄存器LFSR实现,对于CRC_16其生成多项式为七F+1 ,所以对应的系数0 16为:1010000000000011 ,由此可以得到CRC_16 编码电路结构图,如图所示。从图中可以看出,各位移位寄存器当前存储的数据为CRC余数值,16个D触发器输出从右至左依次为 1。输入的信息码元为I

6、。令1W,】- :J 表示编码以为寄存器当前所处的状态,|=10 I1.I7 表示第1至第8个时钟的信息码元输入,向量宀、丄珂上表示编码器的下一个状态,D(8)表示第8个时钟周期后 CRC编码器中移位寄存器所处的状态,则设计 8bit并行的CRC 逻辑编码器就是找出函数关系1 3,1 o第1个时钟周期后的编码寄存器状态为:D= DO DI D15TDP DIS1#DODISHD or=DO D2*=DI5+DH1OD3-D2D14-DBD15-D15+D14+1O可以将以上表达式组成矩阵乘法,有:其中,D*-T D+S400fe A v *r1 * * r0T-01 100 1 0iP * *

7、 4 w *0 A 4 di *1S=l 01 00 0 0 0000000 &1T第2个时钟周期后的编码寄存器状态为:D=T D+SJ1-T(TD+S lOy+S-HT1 IT*SJO+S II以此类推则有:D(8) = T1 D + r7*S-/O + T S-/6 + 5 /7假设用crc_reg15:0表示移位寄存器初始状态,crc_in8:0表示并行输 入的8bit数据,crc_reg815:0表示8bit并行编码后的移位寄存器状态,则 crc_reg80 = crc_in7 crc_in6 crc_in5 ffi crc 亠血4crc_incrc_in2crc inflcrcn0

8、crc_rcg 15J crc_reg14crc_reg13 crc_reg( 12 j Sure reg 11crc_reg10crc_rTeg9 crc_reg8Jcrc_reg8l = crc_ in6fficrc in5crc in|;4宙crc in可crc in2 crc inf 1crc_rcg 15 皿_regl 4 crc_reg13 crc regl 2 crc regll lffi crv_ reg 10 crc_ rcg9crc_reg82 j = gn7 crc in6 crc rcg9S crc_reg8 crc_reg8(3 = crc in6I crc_ in5

9、 J cn;_regl Q crc_rcg9 ctc rcg8f4 -crc_in5crcn4的crc mgU l$crc re耐】Oj crc_reg85 = crcjn4ecrc_in3田 crc_rcg12 crcregll crc_reg8=crc.诃3crtjn2crcregf 13crc regl21crc_reg87 = crc_in2) crc_in 1 crc_reg 14田 crc_reg3CTC_reg88 = crcjnfncrc(田 crc_reg(l5J S ce_regi 4 crc_rcg0Jcrc_reg89 = cre_ in0 crc_reg15 crc_

10、reg cnc_rcg814:IO - crc_rtg6;2crcnegS15 = crcJn7 crc in6 crcjn5 crcJn4crc in cwri2 crcnl crc in0crc_R:gl 5 crc_reg14 crc rcg13| crc_reg12 crc_rcg 11 crc_rcg| J0| crc_reg9 crc regffi crc reg73、CRC_16并行仿真输出波形如图所示是CRC_16并行编码电路测试程序的仿真结果,输入信号时crc_in,没有完全输入编码器是,输入信号crc_in作为crc_out端口输出数据;当d_finish 信号为高电平指

11、示数据输入完成时,将线性移位寄存器crc_reg中的校验位并行 8位输出到crc_out端口。由图可以看出输入信号与输出存在一个时钟周期的延时。、CRC16并行算法的Verilog HDL程序设计1、CRC_16校验码的并行编码程序module CRC_16(clk,rst,load,d_fi nish,crc_i n,crc_out);in put clk,rst;in put load;in put d_fini sh;in put 7:0 crc_in; / output 7:0 crc_out; / reg 7:0 crc_out; / reg 15:0 crc_reg; / reg

12、1:0 count;/开始编码信号/编码结束信号编码器并行8bit数据输入 编码器并行8bit数据输出 数据输出寄存器 编码器移位寄存器reg 1:0 state;移位寄存器输入变量wire 15:0 n ext_crc_reg; /parameter idle = 2b00;parameter compute = 2b01;parameter finish = 2b10;/寄存器输出和寄存器初始状态以及输入码字组合逻辑关系assig n next_crc_reg0 = (Acrc_i n7:0) A (Acrc_reg15:8);assig n next_crc_reg1 = (Acrc_i

13、 n6:0) a (Acrc_reg15:9);assig n n ext_crc_reg2 = crc_i n7 a crc_in6 a crc_reg9 a crc_reg8;assignn ext_crc_reg3=crc_i n6a crc_i n5a crc_reg10a crc_reg9;assignn ext_crc_reg4=crc_i n5a crc_i n4a crc_reg11a crc_reg10;assignn ext_crc_reg5=crc_i n4a crc_i n3a crc_reg12a crc_reg11;assignn ext_crc_reg6=crc_i n3a crc_i n2a crc_reg13a crc_reg12;assignn ext_crc_reg7=crc_i n2a crc_i n1a crc_reg14a crc_reg13;assignn ext_crc_reg8=crc_i n1a crc_i n0a crc_reg15a crc_reg14crc_reg0;assig n n ext_crc_reg9 = crc_in0 a crc_reg15 a crc_reg1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号