CRC16并行计算的Matlab推导.doc

CRC16并行计算的Matlab推导.doc

ID:48616337

大小:82.26 KB

页数:6页

时间:2020-01-29

CRC16并行计算的Matlab推导.doc_第1页
CRC16并行计算的Matlab推导.doc_第2页
CRC16并行计算的Matlab推导.doc_第3页
CRC16并行计算的Matlab推导.doc_第4页
CRC16并行计算的Matlab推导.doc_第5页
资源描述:

《CRC16并行计算的Matlab推导.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.word可编辑.CRC16并行计算的Matlab推导本文使用的CRC16的生成多项式为:x16+x15+x2+1其对应的串行编码图如下图所示。假设输入数据的位宽为8比特,即{I7,I6,I5,I4,I3,I2,I1,I0},I为Input的首字母。I0表示最低比特位,I7表示最高比特位。在串行模式下,I0先输入CRC16计算模块,于是I0输入后各个寄存器的状态变化如下:D15'=D14+D15+I0D14'=D13D13'=D12D12'=D11D11'=D10D10'=D9D9'=D8D8'=D7D7'=D6D6'=D5D5'=D4.专业.专注..word可编辑.D4'=D3D3

2、'=D2D2'=D15+D1+I0D1'=D0D0'=D15+I0可以将以上表达式组成矩阵乘法的形式,则有:(1)其中,D为~构成的列向量,用转置矩阵的形式表示为:同理,是~构成的列向量,用转置矩阵的形式表示为:表达式(1)中的矩阵T,表示为:.专业.专注..word可编辑.表达式(1)中的矩阵S也是一个列向量,表示为:当I1输入后各个寄存器的状态为:以此类推,当I7输入后各寄存器的状态为:上式中可以看成两个矩阵A和B的相乘A*B,其中A=[T7ST6ST5ST4ST3ST2ST1ST0S]于是可以简化为而此时各个寄存器中的值就是最后要求的CRC16的值。对应的matlab程序如下:

3、.专业.专注..word可编辑.T8=mod((T^8),2);%计算结果对2取模,是因为我们执行的是二进制%加减运算T7=mod((T^7),2);T6=mod((T^6),2);T5=mod((T^5),2);T4=mod((T^4),2);T3=mod((T^3),2);T2=mod((T^2),2);T1=mod((T^1),2);T0=mod((T^0),2);S=[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]';T7S=mod((T7*S),2);T6S=mod((T6*S),2);T5S=mod((T5*S),2);T4S=mod((T4*S),2)

4、;T3S=mod((T3*S),2);T2S=mod((T2*S),2);T1S=mod((T1*S),2);T0S=mod((T0*S),2);.专业.专注..word可编辑.A=[T7S,T6S,T5S,T4S,T3S,T2S,T1S,T0S];B=eye(8);C=A*B;运算结果:所以将T8和C带入,就能得到各个寄存器中最后的值,这也就是CRC16的并行计算实现,最后用Verilog写出CRC16并行计算的代码:.专业.专注..word可编辑.掌握了上面的推导过程,就能很容易的进行扩展,只要知道了输入数据位宽以及生成多项式,我们就能很容易的用本文的方法推导出其对应的并行计算过

5、程。.专业.专注.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。