基于FPGA实现CRC并行计算的方法及装置制造方法及图纸

技术编号:17350061 阅读:52 留言:0更新日期:2018-02-25 18:38
本发明专利技术公开了一种基于FPGA实现CRC并行计算的方法及装置,该方法包括:在接口发送端,根据输入的有效数据位宽将待计算报文输入相应的CRC生成多项式,根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,对待计算报文和计算出的CRC码进行对齐处理并整合成待发送报文发送至接口接收端;在接口接收端,根据接收到的有效数据位宽将待发送报文输入相应的CRC生成多项式,根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,将计算出的CRC码与待发送报文中携带的CRC码进行对比,得到CRC校验结果。本发明专利技术支持有效数据位宽的实时变化,兼容性较好。

The method and device for realizing parallel computing of CRC based on FPGA

The invention discloses a method for realizing CRC parallel computing based on FPGA method and device, the method includes: interface transmitter, according to the effective width of data input to calculate the corresponding input message CRC polynomial, CRC polynomial and parallel input according to the different effect of different data width straight formula and CRC with the calculation, alignment and integration into sending message is sent to the receiving terminal interface calculation packets and the calculated CRC code; in the interface of the receiver, CRC polynomial based on the effective width of data received will be sent to the corresponding input message, according to the CRC polynomial and effective parallel input data width of different straight different formula and CRC calculation, the CRC will carry out the calculation code CRC code and sending message in comparison, get the CRC check result. The invention effectively support real-time change of data width, better compatibility.

【技术实现步骤摘要】
基于FPGA实现CRC并行计算的方法及装置
本专利技术涉及以太网
,具体涉及一种基于FPGA实现CRC并行计算的方法及装置。
技术介绍
循环冗余校验(CyclicRedundancyCheck,CRC)是一种根据数据产生简短固定位数校验码的散列函数,主要用来检测或检验数据传输或者保存后可能出现的错误。CRC校验广泛应用于以太网
中,用于接收端对传输的以太网报文内容的正确性进行检测。CRC算法的核心是生成多项式,包括CRC8、CRC16和CRC32等多种生成多项式,可适用于以太网、视频和USB等多种接口协议,CRC校验的实现分为串行方式和并行方式,对于并行CRC校验可以根据生成多项式生成直算式,对于相同的生成多项式,有效数据位宽不同则生成的直算式也不相同。在以太网
的逻辑实现中,需要基于内部MAC层接口格式对以太网报文进行CRC校验。以太网报文长度的最小单位是字节,1Gbps速率及以下的以太网MAC层接口的数据位宽为4位或8位,即接口的有效数据位宽不变;而10Gbps速率及以上的以太网MAC层接口的数据位宽为大于32位,即接口的有效数据位宽可能实时发生变化。有鉴于此,急需一种可以支持有效数据位宽实时变化的CRC并行计算实现方法。
技术实现思路
本专利技术所要解决的技术问题是提供一种可以支持有效数据位宽实时变化的CRC并行计算实现方法。为了解决上述技术问题,本专利技术所采用的技术方案是提供一种基于FPGA实现CRC并行计算的方法,包括以下步骤:在接口发送端,根据输入的有效数据位宽将待计算报文输入相应的CRC生成多项式,根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,对待计算报文和计算出的CRC码进行对齐处理并整合成待发送报文发送至接口接收端;在接口接收端,根据接收到的有效数据位宽将待发送报文输入相应的CRC生成多项式,根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,将计算出的CRC码与待发送报文中携带的CRC码进行对比,得到CRC校验结果。在上述技术方案中,在接口发送端或接口接收端进行CRC计算,具体包括以下步骤:当接收到报文头指示信号时,进行初始化配置并对报文头进行CRC计算,初始化配置支持全0或者全1;当接收到有效数据且报文头指示信号和报文尾指示信号无效时,对有效数据进行CRC计算;当接收到报文尾指示信号时,对报文尾进行CRC计算并对计算出的CRC码进行锁存作为CRC计算结果。在上述技术方案中,报文头指示信号和报文尾指示信号采用背靠背的输入方式。在上述技术方案中,当接收到无效数据时,不进行CRC计算。在上述技术方案中,当接口接收端计算出的CRC码与待发送报文中携带的CRC码相同时,则CRC校验正确,反之则CRC校验错误。本专利技术还提供了一种基于FPGA实现CRC并行计算的装置,包括:设置于接口发送端的CRC生成器和设置于接口接收端的CRC校验器,所述CRC生成器包括第一CRC计算器、数据延迟模块和数据汇聚模块;所述CRC校验器包括第二CRC计算器和魔数检测模块;接口发送端根据输入的有效数据位宽将待计算报文输入相应的CRC生成多项式,并发送至所述第一CRC计算器;所述第一CRC计算器根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,锁存计算出的CRC码并发送至所述数据延迟模块;所述数据延迟模块对待计算报文和所述第一CRC计算器计算出的CRC码进行对齐处理;所述数据汇聚模块将所述数据延迟模块对齐处理后的待计算报文和CRC码整合成待发送报文发送至接口接收端;接口接收端根据接收到的有效数据位宽将待发送报文输入相应的CRC生成多项式,并发送至所述第二CRC计算器;所述第二CRC计算器根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,锁存计算出的CRC码并发送至所述魔数检测模块;所述魔数检测模块将所述第二CRC计算器计算出的CRC码与待发送报文中携带的CRC码进行对比,得到CRC校验结果。在上述技术方案中,所述第一CRC计算器或第二CRC计算器根据接收到的报文头指示信号进行初始化配置,并对报文头进行CRC计算,初始化配置支持全0或者全1;根据接收到的有效数据以及无效的报文头指示信号和报文尾指示信号,对有效数据进行CRC计算;根据接收到的报文尾指示信号,对报文尾进行CRC计算并对计算出的CRC码进行锁存作为CRC计算结果。在上述技术方案中,所述第一CRC计算器和第二CRC计算器接收到的报文头指示信号和报文尾指示信号采用背靠背的输入方式。本专利技术根据输入的有效数据位宽将报文输入相应的CRC生成多项式,根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,支持有效数据位宽的实时变化,兼容性较好,可兼容有效数据位宽不变的1Gbps速率及以下的接口,以及有效数据位宽可变的10Gbps速率及以上的接口。附图说明图1为本专利技术实施例提供的一种基于FPGA实现CRC并行计算的方法流程图;图2为本专利技术实施例提供的一种基于FPGA实现CRC并行计算的装置结构示意图;图3为本专利技术实施例提供的输入输出接口时序图。具体实施方式下面结合说明书附图和具体实施方式对本专利技术做出详细的说明。本专利技术实施例提供了一种基于FPGA实现CRC并行计算的方法,如图1所示,包括以下步骤:S1、在以太网接口发送端,根据输入的有效数据位宽将待计算报文输入相应的CRC生成多项式,根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算。待计算报文包括报文头指示信号、报文尾指示信号、报文有效数据指示信号、报文有效数据位宽指示信号以及报文有效数据。S2、对待计算报文和计算出的CRC码进行对齐处理并整合成待发送报文,选择相应的数据路径将整合后的待发送报文发送至以太网接口接收端。S3、在以太网接口接收端,根据接收到的有效数据位宽将待发送报文输入至相应的CRC生成多项式,根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算。S4、将计算出的CRC码与待发送报文中携带的CRC码进行对比,若相同则CRC校验正确,反之则CRC校验错误。本专利技术实施例还提供了一种基于FPGA实现CRC并行计算的装置,如图2所示,包括:设置于以太网接口发送端的CRC生成器和设置于以太网接口接收端的CRC校验器,该CRC生成器包括第一CRC计算器10、数据延迟模块11和数据汇聚模块12;该CRC校验器包括第二CRC计算器20和魔数检测模块21;以太网接口发送端根据输入的有效数据位宽将待计算报文输入相应的CRC生成多项式,并发送至第一CRC计算器10;第一CRC计算器10根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,锁存计算出的CRC码并发送至数据延迟模块11;数据延迟模块11对待计算报文和第一CRC计算器10计算出的CRC码进行对齐处理;数据汇聚模块12将数据延迟模块11对齐处理后的待计算报文和CRC码整合成完整的待发送报文,选择相应的数据路径将待发送报文发送至以太网接口接收端;以太网接口接收端根据接收到的有效数据位宽将待发送报文输入相应的CRC生成多本文档来自技高网...
基于FPGA实现CRC并行计算的方法及装置

【技术保护点】
一种基于FPGA实现CRC并行计算的方法,其特征在于,包括以下步骤:在接口发送端,根据输入的有效数据位宽将待计算报文输入相应的CRC生成多项式,根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,对待计算报文和计算出的CRC码进行对齐处理,并整合成待发送报文发送至接口接收端;在接口接收端,根据接收到的有效数据位宽将待发送报文输入相应的CRC生成多项式,根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,将计算出的CRC码与待发送报文中携带的CRC码进行对比,得到CRC校验结果。

【技术特征摘要】
1.一种基于FPGA实现CRC并行计算的方法,其特征在于,包括以下步骤:在接口发送端,根据输入的有效数据位宽将待计算报文输入相应的CRC生成多项式,根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,对待计算报文和计算出的CRC码进行对齐处理,并整合成待发送报文发送至接口接收端;在接口接收端,根据接收到的有效数据位宽将待发送报文输入相应的CRC生成多项式,根据CRC生成多项式与不同的并行输入有效数据位宽得到不同的直算式并进行CRC计算,将计算出的CRC码与待发送报文中携带的CRC码进行对比,得到CRC校验结果。2.如权利要求1所述的方法,其特征在于,在接口发送端或接口接收端进行CRC计算,具体包括以下步骤:当接收到报文头指示信号时,进行初始化配置并对报文头进行CRC计算,初始化配置支持全0或者全1;当接收到有效数据且报文头指示信号和报文尾指示信号无效时,对有效数据进行CRC计算;当接收到报文尾指示信号时,对报文尾进行CRC计算并对计算出的CRC码进行锁存作为CRC计算结果。3.如权利要求2所述的方法,其特征在于,报文头指示信号和报文尾指示信号采用背靠背的输入方式。4.如权利要求2所述的方法,其特征在于,当接收到无效数据时,不进行CRC计算。5.如权利要求1所述的方法,其特征在于,当接口接收端计算出的CRC码与待发送报文中携带的CRC码相同时,则CRC校验正确,反之则CRC校验错误。6.一种基于FPGA实现CRC并行计算的装置,其特征在于,包括:设置于接口发送端的CRC生成器和设置于接口接收端的CRC校验器,所述CRC生成器包括第一C...

【专利技术属性】
技术研发人员:韩震
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1