您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

10G以太网系统中的并行CRC编解码器的设计

时间:2007-1-20栏目:电子通信论文

  摘要:为了解决10G以太网接入系统中大规模并行CRC编码器的设计问题,提出了矩阵法、代入法、流水线法等三种设计方法。以此为基础,给出了10G以太网接入系统CHC编码器的实现方案。具体计算表明,在10G以太网接入系统采用直接并行的CRC编码器是可行的。直接并行设计CRC编码器已经通过了EDA模拟,并成功地应用于10G以太网接入系统中。
  关键词:10G以太网CRC并行
  
  通信系统不可避免地要受到各种干扰的影响,使接收端收到的信息与发送端发出的信息不一致,即接收端收到的信息产生了误码。为了降低数据通信线路传输的误码率,通常有改善数据通信线路传输质量和差错检测控制两种方法。差错检测控制的方法很多,本文讨论在10G以太网接人系统中并行实现CRC-32编解码的方法、并行CRC算法的Unfolding算法可以实现并行CRC的计算,但是并行电路所用的资源增加到了原来的J倍。8位并行CRC算法、并行CRC-16的编码逻辑、USB技术中并行CRC算法给出的并行算法都建立在公式递推的基础上。当并行深度较小时,递推算法比较适用。而当并行深度很大的情况下(10G以太网接人系统使用64比特并行数据通路),递推过程就显得过于烦琐而缺乏实用性。为此,本文提出了矩阵法、代入法和流水线法等三种算法,解决了深度并行情况下CRC算法的实现问题。利用本文提出的算法,可以得出64比特并行CRC计算的逻辑表达式,并用于10G以太网接入系统的设计。设M/(x)为信息多项式,G(x)为生成多项式。一般的CRC编码方法是:先将信息码多项式左移r位,即M(x)·xr,然后作模2除法
  
  (M(x)·xr)/G(x)=Q(x)+R(x)/G(x)(1)
  
  所得到的月(x)就是CRC校验码。以二进制码0x9595H的CRC-32编码为例:
  
  ·将信息码左移32比特变成0x959500000000H,记为m。
  
  ·CRC-32G的生成多项G(x)=x32+x26+x23+x22+x16+x12+xll+x10+x8+x7+x5+x4+x2+x+1,转换成16进制码为g=0x104C01DB7H。用m除以g(模2除法),所得余数0x3738F30BH就是0x9595H的CRC-32码。实现0x9595H的基本CRC-32编码的Matlab程序如下:
  
  g(33:-1:1)=[1,00000100,11000001,00011101,10110111];
  
  a(48:-1:1)=[10010101,10010101,00000000,00000000,00000000,00000000];
  
  fori=48:-1:33,
  
  ifa(i)==1
  
  a(i:-1:i-32)=xor(a(i:-1:i-32),i(33:-1:1));
  
  end
  
  end
  
  crc=a(32:-1:1)
  
  如果想用以上CRC-32程序计算其他长为L的序列的基本CRC-32码,只需将数组α的上界和for循环中i的初始值改为32+L,并用该序列代替数组。开始的序列"1001010110010101"即可。用数字电路实现的串行CRC编码

[1] [2] [3] [4] [5] 下一页

下页更精彩:1 2 3 4 下一页