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

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

ID:39550257

大小:818.42 KB

页数:15页

时间:2019-07-06

CRC16、扰码、解扰码器并行方案原理和Verilog HDL程序设计_第1页
CRC16、扰码、解扰码器并行方案原理和Verilog HDL程序设计_第2页
CRC16、扰码、解扰码器并行方案原理和Verilog HDL程序设计_第3页
CRC16、扰码、解扰码器并行方案原理和Verilog HDL程序设计_第4页
CRC16、扰码、解扰码器并行方案原理和Verilog HDL程序设计_第5页
资源描述:

《CRC16、扰码、解扰码器并行方案原理和Verilog HDL程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

2、方法。冗余校验(CRC)就是一种被广泛采用的差错控制方法和数据编码方法。它具有编码和解码方法简单,剪错和纠错能力强等特点,能有效地对数据进行编码,并可以显著的提高系统的剪错能力,从而保证数据的可靠性和正确性,因此在大多数的以太网协议中都采用了CRC的校验来进行差错控制。CRC主要有两种,即非标准的由用户定义的CRC的生成多项式和国际标准化组织规定的标准的生成多项式。其中第二中应用广泛,国际标准化组织规定的几种主要常见的CRC如表所示。CRC编码是根据CRC检验原理得出的一种编码方法,其基本思想是

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

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

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

6、位寄存器当前存储的数据为CRC余数值,16个D触发器输出从右至左依次为。输入的信息码元为I。令表示编码以为寄存器当前所处的状态,I=[I0I1...I7]表示第1至第8个时钟的信息码元输入,向量表示编码器的下一个状态,D(8)表示第8个时钟周期后CRC编码器中移位寄存器所处的状态,则设计8bit并行的CRC逻辑编码器就是找出函数关系。第1个时钟周期后的编码寄存器状态为:12可以将以上表达式组成矩阵乘法,有:其中,第2个时钟周期后的编码寄存器状态为:以此类推则有:假设用crc_reg[15:0]表

7、示移位寄存器初始状态,crc_in[8:0]表示并行输入的8bit数据,crc_reg8[15:0]表示8bit并行编码后的移位寄存器状态,则123、CRC_16并行仿真输出波形如图所示是CRC_16并行编码电路测试程序的仿真结果,输入信号时crc_in,没有完全输入编码器是,输入信号crc_in作为crc_out端口输出数据;当d_finish信号为高电平指示数据输入完成时,将线性移位寄存器crc_reg中的校验位并行8位输出到crc_out端口。由图可以看出输入信号与输出存在一个时钟周期的延

8、时。二、CRC16并行算法的VerilogHDL程序设计1、CRC_16校验码的并行编码程序moduleCRC_16(clk,rst,load,d_finish,crc_in,crc_out);inputclk,rst;inputload;//开始编码信号inputd_finish;//编码结束信号input[7:0]crc_in;//编码器并行8bit数据输入output[7:0]crc_out;//编码器并行8bit数据输出reg[7:0]crc_out;//数据输出寄存器reg[15:0]

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

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

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