[发明专利]一种多级流水电路实现并行CRC的方法有效
申请号: | 201910028840.1 | 申请日: | 2019-01-11 |
公开(公告)号: | CN109462458B | 公开(公告)日: | 2021-04-16 |
发明(设计)人: | 李湘琼;路远;褚艳;李玲 | 申请(专利权)人: | 深圳市常茂信科技开发有限公司 |
主分类号: | H04L1/00 | 分类号: | H04L1/00 |
代理公司: | 深圳市润启知识产权代理事务所(普通合伙) 44664 | 代理人: | 孟丽娟 |
地址: | 518000 广东省深圳市宝安区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多级 流水 电路 实现 并行 crc 方法 | ||
一种多级流水电路实现并行CRC的方法,将每一个时钟周期输入的16字节数据拆分为第一个8字节与第二个8字节数据块;每一个时钟周期的第一个8字节和第二个8字节分别使用CRC32模块计算8字节的CRC32结果;8字节移位计算模块将第一个8字节CRC32模块的计算结果进行64次迭代移位;迭代移位64次的结果与直接8字节CRC32计算进行异或操作,得到第一个时钟周期16个字节的CRC32结果;16字节移位计算模块将第一个时钟周期16个字节的CRC32结果进行128次迭代移位,每一个时钟周期16字节的CRC32结果与上一个时钟周期16字节的CRC32结果经过128次迭代移位之后的结果进行异或操作,得到当前时钟周期最终的CRC32结果。去掉了LFSR的反馈环路,从而可以插入多级流水,增大系统数据吞吐率。
技术领域
本发明涉及电子信息技术领域,具体为一种多级流水电路实现并行CRC的方法。
背景技术
目前CRC算法已广泛应用于通信领域,作为数据保护的一种方式。CRC算法在硬件电路上一般通过LFSR来实现,有串行和并行两种方法,但LFSR在电路结构上都存在一个反馈环路,无法通过插入多级流水线以提高运行频率,尤其当使用并行方式实现CRC算法,且数据位宽较大时,组合逻辑可达到30级以上,由于无法插入流水线分割组合逻辑,因此电路运行频率不能有效提高。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种多级流水电路实现并行CRC的方法,具备可以插入多级流水分割组合逻辑,提高电路运行频率,达到增大系统吞吐率的目标等优点,解决了现有使用LFSR电路实现CRC算法无法插入多级流水从而无法提高电路运行频率的问题。
(二)技术方案
为实现上述可以插入多级流水分割组合逻辑,提高电路运行频率,达到增大系统吞吐率的目标等目的,本发明提供如下技术方案:一种多级流水电路实现并行CRC的方法,包括以下步骤:
S1、将每一个时钟周期输入的16字节数据拆分为第一个8字节与第二个8字节数据块;
S2、每一个时钟周期的第一个8字节和第二个8字节分别使用CRC32模块计算8字节的CRC32结果;
S3、8字节移位计算模块将第一个8字节CRC32模块的计算结果进行64次迭代移位;
S4、迭代移位64次的结果与直接8字节CRC32计算进行异或操作,得到第一个时钟周期16个字节的CRC32结果;
S5、16字节移位计算模块将第一个时钟周期16个字节的CRC32结果进行128次迭代移位;
S6、每一个时钟周期16字节的CRC32结果与上一个时钟周期16字节的CRC32结果经过128次迭代移位之后的结果进行异或操作,得到当前时钟周期最终的CRC32结果。
本发明还包括以下模块:
1)CRC初值选择器;根据当前输入数据是否为第一个8字节,选择CRC初始值为32'hFFFF_FFFF或者32'h0000_0000;
2)CRC32模块;用于计算8字节数据的CRC32结果;
3)8字节移位计算模块;将8字节CRC32计算结果进行64次迭代移位;
4)16字节移位计算模块;将16字节CRC32计算结果进行128次迭代移位;
5)三输入异或门;将三个CRC32结果进行异或操作。
所述CRC初值选择器和CRC32模块电连接,CRC32模块通过D型触发器与8字节移位计算模块电连接,所述CRC32模块与D型触发器电连接,并且D型触发器和8字节移位计算模块均与三输入异或门电连接,所述三输入异或门还与16字节移位计算模块和D型触发器循环电连接。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市常茂信科技开发有限公司,未经深圳市常茂信科技开发有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910028840.1/2.html,转载请声明来源钻瓜专利网。