全文预览

CRC码编码译码器的设计

上传者:徐小白 |  格式:doc  |  页数:17 |  大小:773KB

文档介绍
的:Р①假设生成多项式为g(x)=x4+x3+1,阶数r = 4。与g(x)对应的比特串G为Р11001。Р②假设要发送的信息比特串为1101011,在信息串尾加r个0,变成比特串РM’为11010110000。将它除以 11001,得到余数1010。这就是CRC监督位比特Р串R。Р③在信息帧尾附加 CRC监督位 R,得 11010111010。这就是要发送的比特Р串 T。注意: T(x)除以g(x),余数为0。Р④若串T传输无误,收端将它除以比特串G,余数为0。若串T传输中有差错,收端收到的比特串T’为11000001010(中间的 3个 1变为 0),将它除以G,余数为 0101,收端就认为发生了错误。注意:并不是所有有差错的比特串T’除以g(x),其余数总是为非0,也有可能为0。但只要g(x)选取得当,发生这种情况的概率就会很小。Р四、CRC编码译码模块程序设计Р 本课题的最终目标是,用Verilog HDL硬件描述语言编写出CRC循环冗余校验码的编解码模块电路,并通过仿真。前边三部分讨论了CRC码的编译码理论,下面以这些理论为指导,来编些CRC编译码模块。РITT建议的标准生成多项式,即g(x)= X16+X12 +X5+1。因此,n-k=r=16,即有16位监督位。但k的值并未给定,也就是信息位的个数没有给定。确定信息位的个数k时,一定要把握一条原则:通过n=k+16计算出n值后,必须保证使g(x)是xn+1的因式。根据此原则,可以得出对k取值的要求:Рk必须为字节长度的整数倍数,这样才能保证xn+1被g(x)整除。Р 为了提高编译码模块的通用性,本程序采用可参数化设计,设参数width表示输入数据的位宽,参数amount表示码组中的信息位部分含有输入数据的个数。模块中width暂取值为1,amount暂取值为32。也就是说,每32位信息位后加16位CRC监督位。

收藏

分享

举报
下载此文档