APP下载

深亚微米并行CRC32编码芯片的设计和实现

2014-08-15郭宝增吴鹏飞

河北大学学报(自然科学版) 2014年1期
关键词:设计

郭宝增,吴鹏飞

(河北大学 电子信息工程学院,河北 保定 071002)

CRC的全称是循环冗余校验(cyclic redundancy check),是一种非常著名的检错手段,在通信和数据存储领域得到广泛应用.其特点是检错能力极强,开销小,易于编码器及检测电路实现.从检错能力来看,其不能发现的错误的几率在0.004 7%以下.著名的通讯协议X.25的FCS(帧检错序列)采用的是CRC-CCITT;ARJ,LH等压缩工具软件采用的是CRC32;磁盘驱动器的读写采用了CRC16;通用的图像存储格式GIF,TIFF等都使用CRC作为检错手段[1].

1 CRC32算法研究

1.1 LSFR串行编码算法

CRC32属于线性分组码的分支,同时还具有循环特性,符合一般循环码的编码方法[2],其过程可以采用LSFR实现编码电路,这种电路主要由移位寄存器和异或门组成[3-4].对于CRC32校验码,生成多项式为

g(x) =x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1.

(1)

以8 bit的数据输入为例,其硬件实现框图如图1所示.

图1 LSFR串行编码电路Fig.1 LSFR serial encoder circuit

图1中,32位移位寄存器用于存储CRC32校验码,称其为CRC寄存器.编码前将寄存器各位置1,每个时钟周期1 bit数据输入,通过移位和异或运算,CRC寄存器中的数据进行随之更新,8个时钟周期后,数据输入完毕,此时CRC寄存器的值即为CRC32的码序列,该算法原理简单,便于硬件实现,但效率不高,主要应用于串行通信.

1.2 并行CRC32算法

从本质上说,LSFR算法是一种串行算法,针对LSFR电路效率低的问题,本文从LSFR电路的结构入手,通过相应的逻辑运算推导出高效并行的CRC32编码算法.

(2)

(3)

(4)

(5)

(6)

将(3),(4),(5),(6)式代入(2)式,可以求得

(7)

即移位寄存器R0经过8个时钟后的状态值可以表示为移位寄存器R30,R24的初始值与输入数据D7,D1的异或运算,这样就可……

登录APP查看全文

猜你喜欢

设计
二十四节气在平面广告设计中的应用
何为设计的守护之道?
《丰收的喜悦展示设计》
基于PWM的伺服控制系统设计
基于89C52的32只三色LED摇摇棒设计
基于ICL8038的波形发生器仿真设计
瞒天过海——仿生设计萌到家
设计秀
有种设计叫而专
从平面设计到“设计健康”