CN109286471B - 面向srio控制器的crc校验方法及装置 - Google Patents
面向srio控制器的crc校验方法及装置 Download PDFInfo
- Publication number
- CN109286471B CN109286471B CN201811162441.6A CN201811162441A CN109286471B CN 109286471 B CN109286471 B CN 109286471B CN 201811162441 A CN201811162441 A CN 201811162441A CN 109286471 B CN109286471 B CN 109286471B
- Authority
- CN
- China
- Prior art keywords
- crc calculation
- data
- crc
- signal
- state machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明属于数据通信技术领域,特别涉及一种面向SRIO控制器的CRC校验方法及装置,将指定位宽的输入数据通过补零逻辑模块进行补零操作得到补零后的数据,根据CRC计算控制状态机的状态值得到选择模块的数据,将补零后的数据与选择模块的数据通过CRC计算模块进行CRC计算得到中间CRC计算结果,将中间CRC计算结果通过CRC输出锁存器得到锁存数据,将锁存数据输出,同时将锁存数据输入给选择模块,与再次接收的输入数据重新进行CRC计算,当输入数据接收完毕时,得到CRC输出锁存器输出的最终CRC计算结果,若最终CRC计算结果为0,则接收的输入数据是正确的。本发明减少了相关计算逻辑、延迟以及硬件面积,实现了SRIO控制器接收端快速的CRC计算和校验。
Description
技术领域
本发明属于数据通信技术领域,特别涉及一种面向SRIO控制器的CRC校验方法及装置。
背景技术
在数据通信中,通常采用各种协议来保证数据传输的正确性。RapidIO技术(Serial RapidIO,SRIO)是一种基于包交换的互联协议,主要作为系统内部接口使用。为了实现数据的可靠传输,RapidIO协议对逻辑层所传送的每个SRIO数据包加入CRC校验码进行校验,但是RapidlO协议规定逻辑层数据包除CRC校验码外的长度是16bit的整数倍,而物理层的数据包的长度必须是32bit的整数倍,如果逻辑层增加CRC之后的数据包不是32bit整数倍,需要在包末尾补16bit零才能对齐到32bit边界,对齐之后的数据包通过物理层发送出去。而物理层的接收端会对接收的每个SRIO数据包进行实时的CRC计算和校验,如果本地计算的CRC与包内自带的CRC不一致,则判定该接收包存在错误,需要将其丢弃并告知对端进行重传。
由于RapidIO协议存在多种不同类型和不同长度的数据包,因此在物理层接收端需要一个复杂的逻辑先对接收的包进行分类,然后再判断CRC的位置来进行CRC校验,这导致了CRC计算的控制逻辑变得复杂,增加处理逻辑面积和功耗;并且数据宽度为64 bit的RapidlO控制器,为解决数据包未结束在64 bit边界的问题,CRC计算模块通常包含输入数据宽度为16bit、32bit、48bit、以及64bit的多个CRC生成器,这造成参与计算的逻辑门较多、面积大。
发明内容
针对现有技术中存在的问题,本发明提供了一种面向SRIO控制器的CRC校验方法及装置,减少了CRC计算和校验过程中的计算逻辑、延迟以及硬件面积,实现SRIO控制器接收端快速的CRC计算和校验。
为了实现上述目的,本发明采用以下的技术方案:
本发明提供一种面向SRIO控制器的CRC校验方法,该方法包含以下步骤:
按照指定位宽接收输入数据,所述指定位宽是指SRIO控制器的数据位宽;
将所述输入数据通过补零逻辑模块进行补零操作,得到第一数据;
根据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计算控制状态机的数据有效信号值和包开始指示信号均为0,或者数据有效信号值、包开始指示信号、包结束指示信号均为1时,CRC计算控制状态机处于初始空闲状态,所述状态值为0;
当CRC计算控制状态机的数据有效信号值和包开始指示信号均为1,并且包结束指示信号为0时,CRC计算控制状态机进入CRC计算状态,所述状态值为1;
当CRC计算控制状态机的数据有效信号值和包结束指示信号均为1时,CRC计算控制状态机在下一个时钟周期由CRC计算状态跳转至初始空闲状态。
进一步地,所述根据所述CRC计算控制状态机的数据有效信号和包结束指示信号,得到CRC计算结束信号,包括:
当所述CRC计算控制状态机的数据有效信号和包结束指示信号均为1时,CRC计算结束信号为1,否则,CRC计算结束信号为0。
进一步地,所述根据所述锁存的CRC计算结束信号判断所述输入数据是否输入完毕,包括:
当所述锁存的CRC计算结束信号为1时,判定输入数据输入完毕;
当所述锁存的CRC计算结束信号为0时,判定输入数据未输入完毕。
进一步地,所述根据最终CRC计算结果,确定接收到的输入数据是否正确,包括:
判断最终CRC计算结果是否为0;
如果是,确定接收到的输入数据是正确的;
如果否,确定接收到的输入数据是错误的。
本发明还提供了一种面向SRIO控制器的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计算控制状态机处于初始空闲状态,所述状态值为0;
当CRC计算控制状态机的数据有效信号值和包开始指示信号均为1,并且包结束指示信号为0时,CRC计算控制状态机进入CRC计算状态,所述状态值为1;
当CRC计算控制状态机的数据有效信号值和包结束指示信号均为1时,CRC计算控制状态机在下一个时钟周期由CRC计算状态跳转至初始空闲状态。
进一步地,所述选择模块,具体用于:
所述CRC计算控制状态机的状态值为0时,所述第二数据为预设的第一待选值;
所述CRC计算控制状态机的状态值为1时,所述第二数据为所述CRC输出锁存器输出的第二待选值。
进一步地,所述第二判断模块,具体用于:
判断所述最终CRC计算结果是否为0;
如果是,确定接收到的输入数据是正确的;
如果否,确定接收到的输入数据是错误的。
与现有技术相比,本发明具有以下优点:
本发明公开了一种面向SRIO控制器的CRC校验方法及装置,将指定位宽的输入数据通过补零逻辑模块进行补零操作得到补零后的数据,根据CRC计算控制状态机的状态值得到选择模块的数据,将补零后的数据与选择模块的数据通过CRC计算模块进行CRC计算得到中间CRC计算结果,将中间CRC计算结果通过CRC输出锁存器得到锁存数据,将锁存数据输出,同时将锁存数据输入给选择模块,与再次接收的输入数据重新进行CRC计算,当输入数据接收完毕时,得到CRC输出锁存器输出的最终CRC计算结果,若最终CRC计算结果为0,则接收的输入数据是正确的。在进行CRC计算和校验时,不需要判断包类型和协议版本,减少了相关计算逻辑、延迟以及硬件面积,实现了SRIO控制器接收端快速的CRC计算和校验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1 是本发明实施例所提供的面向SRIO控制器的CRC校验方法的流程图;
图2是本发明实施例所提供的面向SRIO控制器的CRC校验装置的结构框图;
图3是本发明实施例所提供的CRC计算控制状态机状态转换的流程图。
图中序号所代表的含义为:210. 补零逻辑模块,220. CRC计算控制状态机,230.选择模块,240. CRC计算模块,250. CRC输出锁存器,260. CRC计算结束信号锁存器,270.第一判断模块,280. 第二判断模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有的SRIO控制器接收端的CRC计算和校验的相关计算逻辑复杂、逻辑面积和功耗大的问题,本发明实施例提供了一种面向SRIO控制器的CRC校验方法及装置,只需要通过一种输入指定数据宽度的CRC计算模块就能完成接收端CRC计算和校验,并且不需要判断包类型和协议版本,减少电路面积、延迟和功耗。
下面结合附图和具体实施方式对本发明作进一步的详细说明。
实施例一
如图1所示,本实施例的一种面向SRIO控制器的CRC校验方法,包含以下步骤:
步骤S101,按照指定位宽接收输入数据,所述指定位宽是指SRIO控制器的数据位宽。
步骤S102,将输入数据通过补零逻辑模块进行补零操作,得到第一数据。
例如,SRIO控制器的数据位宽为64bit,则补零逻辑模块会有4bit的字有效信号,每1bit字有效信号表示输入的64bit数据中从高到低(高字节优先有效)对应的16bit数据是否有效,补零逻辑模块根据字有效信号中的有效指示信号将输入的64bit数据中无效部分的数据用零进行替换,即输入64bit输入数据从高到低每16bit分别与对应的字有效信号进行按位与操作。
例如,A=data[63:0] & {16{keep[3]}, 16{keep[2]}, 16{keep[1]}, 16{keep[0]}},其中“&”表示为与操作,“{}”表示为拼接操作,A为补零后的数据,data表示64bit的输入数据,keep[0],keep[1],keep[2],keep[3]分别表示4bit字有效信号中的每1bit有效字信号。
步骤S103,根据CRC计算控制状态机的状态值,确定选择模块中的第二数据,所述第二数据为预设的第一待选值或CRC输出锁存器输出的第二待选值;
具体地,当CRC计算控制状态机的状态值为0,第二数据为预设的第一待选值;当CRC计算控制状态机的状态值为1,第二数据为CRC输出锁存器输出的第二待选值。
其中,所述CRC计算控制状态机的状态转换过程的流程如图3所示:
当CRC计算控制状态机的数据有效信号值和包开始指示信号均为0,或者数据有效信号值、包开始指示信号、包结束指示信号均为1时,CRC计算控制状态机处于初始空闲状态,所述状态值为0;
当CRC计算控制状态机的数据有效信号值和包开始指示信号均为1,并且包结束指示信号为0时,CRC计算控制状态机进入CRC计算状态,所述状态值为1;
当CRC计算控制状态机的数据有效信号值和包结束指示信号均为1时,CRC计算控制状态机在下一个时钟周期由CRC计算状态跳转至初始空闲状态。
步骤S104,将第一数据与第二数据通过CRC计算模块进行CRC计算,得到中间CRC计算结果。
步骤S105,将中间CRC计算结果输入CRC输出锁存器,得到CRC输出锁存器的锁存数据。
步骤S106,将锁存数据直接输出,并作为第二待选值输出至选择模块,与再次接收的输入数据重新进行CRC计算。
步骤S107,根据CRC计算控制状态机的数据有效信号和包结束指示信号,得到CRC计算结束信号。
具体地,当CRC计算控制状态机的数据有效信号和包结束指示信号均为1时,CRC计算结束信号为1,否则,CRC计算结束信号为0。
步骤S108,将CRC计算结束信号输入CRC计算结束信号锁存器,得到锁存的CRC计算结束信号。
步骤S109,根据所述锁存的CRC计算结束信号判断所述输入数据是否输入完毕,如果是,转至步骤S110,如果否,转至步骤S103。
具体地,当所述锁存的CRC计算结束信号为1时,判定输入数据输入完毕;当所述锁存的CRC计算结束信号为0时,判定输入数据未输入完毕。
步骤S110,将CRC输出锁存器输出的锁存数据作为最终CRC计算结果。
步骤S111,根据最终CRC计算结果,确定接收到的输入数据是否正确。
具体地,判断最终CRC计算结果是否为0;如果是,确定接收到的输入数据是正确的;如果否,确定接收到的输入数据是错误的。
该实施例提供了面向SRIO控制器的CRC校验方法,通过补零逻辑模块让输入数据的位宽符合SRIO控制器的位宽,将补零后的数据与选择模块选择的数据通过CRC计算模块进行CRC计算得到CRC计算结果,根据包结束指示信号值为1时输出的CRC计算结果,判断接收的输入数据是否正确,减少了CRC计算和校验过程中的逻辑电路面积,以及计算延迟,提高了计算效率。
与上述方法实施例相对应地,本实施例还提供了一种面向SRIO控制器的CRC校验装置,如图2所示,该装置包括:
补零逻辑模块210,用于根据输入数据和字有效信号对输入数据进行补零操作得到第一数据;
CRC计算控制状态机220,用于根据输入信号得到不同的状态值来控制选择模块中第二数据的输出,并输出CRC计算结束信号;
在本实施例中,所述CRC计算控制状态机220,具体用于:
当CRC计算控制状态机的数据有效信号值和包开始指示信号均为0,或者数据有效信号值、包开始指示信号、包结束指示信号均为1时,CRC计算控制状态机处于初始空闲状态,所述状态值为0;
当CRC计算控制状态机的数据有效信号值和包开始指示信号均为1,并且包结束指示信号为0时,CRC计算控制状态机进入CRC计算状态,所述状态值为1;
当CRC计算控制状态机的数据有效信号值和包结束指示信号均为1时,CRC计算控制状态机在下一个时钟周期由CRC计算状态跳转至初始空闲状态。
选择模块230,用于根据所述CRC计算控制状态机的状态值确定第二数据,所述第二数据为预设的第一待选值或CRC输出锁存器输出的第二待选值;
在本实施例中,所述选择模块230,具体用于:
所述CRC计算控制状态机的状态值为0时,所述第二数据为预设的第一待选值;
所述CRC计算控制状态机的状态值为1时,所述第二数据为所述CRC输出锁存器输出的第二待选值。
CRC计算模块240,用于将所述第一数据和所述第二数据做CRC计算,得到中间CRC计算结果;
CRC输出锁存器250,用于将所述中间CRC计算结果锁存得到锁存数据并将所述锁存数据输出,同时将所述锁存数据作为第二待选值输出至所述选择模块,与再次接收的输入数据重新进行CRC计算;
CRC计算结束信号锁存器260,用于将所述CRC计算结束信号锁存得到锁存的CRC计算结束信号,同时将锁存的CRC计算结束信号输出至第一判断模块;
第一判断模块270,用于根据所述锁存的CRC计算结束信号判断所述输入数据是否输入完毕;如果是,则将CRC输出锁存器输出的锁存数据作为最终CRC计算结果;如果否,则继续进行上述CRC计算;
第二判断模块280,用于根据所述最终CRC计算结果,判断接收到的输入数据是否正确。
在本实施例中,所述第二判断模块280,具体用于:
判断所述最终CRC计算结果是否为0;
如果是,确定接收到的输入数据是正确的;
如果否,确定接收到的输入数据是错误的。
该实施例提供了面向SRIO控制器的CRC校验装置,通过补零逻辑模块对输入数据进行补零操作,使输入数据的长度符合SRIO控制器的数据位宽,通过CRC计算控制状态机控制选择模块中数据的选择,通过CRC计算模块将补零后的输入数据与选择模块中的数据进行CRC计算,将每次计算得到的CRC计算结果直接输出,同时输出至选择模块,与再次接收的输入数据重新进行CRC计算,根据数据输入完毕而最终得到的最终CRC计算结果,判断接收的输入数据是否正确,若最终CRC计算结果为0,则确定接收的输入数据是正确的,否则确定接收的输入数据是错误的,降低了CRC计算和校验过程中的逻辑复杂度,减少了电路面积和功耗;并且该装置可以通过软件配置数据的长度,实现存储器长度数据的快速访问。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种面向SRIO控制器的CRC校验方法,其特征在于,该方法包含以下步骤:
按照指定位宽接收输入数据,所述指定位宽是指SRIO控制器的数据位宽;
将所述输入数据通过补零逻辑模块进行补零操作,得到第一数据;
根据CRC计算控制状态机的状态值,确定选择模块中的第二数据,所述第二数据为预设的第一待选值或CRC输出锁存器输出的第二待选值;当CRC计算控制状态机的状态值为0,第二数据为预设的第一待选值;当CRC计算控制状态机的状态值为1,第二数据为CRC输出锁存器输出的第二待选值;
将所述第一数据与所述第二数据通过CRC计算模块进行CRC计算,得到中间CRC计算结果;
将所述中间CRC计算结果输入CRC输出锁存器,得到CRC输出锁存器的锁存数据;
将所述锁存数据直接输出,并作为第二待选值输出至所述选择模块,与再次接收的输入数据重新进行CRC计算;
根据所述CRC计算控制状态机的数据有效信号和包结束指示信号,得到CRC计算结束信号;
将所述CRC计算结束信号输入CRC计算结束信号锁存器,得到锁存的CRC计算结束信号;
根据所述锁存的CRC计算结束信号判断所述输入数据是否输入完毕,如果是,则将CRC输出锁存器输出的锁存数据作为最终CRC计算结果;如果否,则继续进行上述CRC计算;
根据最终CRC计算结果,确定接收到的输入数据是否正确。
2.根据权利要求1所述的面向SRIO控制器的CRC校验方法,其特征在于,所述根据CRC计算控制状态机的状态值,包括:
当CRC计算控制状态机的数据有效信号值和包开始指示信号均为0,或者数据有效信号值、包开始指示信号、包结束指示信号均为1时,CRC计算控制状态机处于初始空闲状态,所述状态值为0;
当CRC计算控制状态机的数据有效信号值和包开始指示信号均为1,并且包结束指示信号为0时,CRC计算控制状态机进入CRC计算状态,所述状态值为1;
当CRC计算控制状态机的数据有效信号值和包结束指示信号均为1时,CRC计算控制状态机在下一个时钟周期由CRC计算状态跳转至初始空闲状态。
3.根据权利要求1所述的面向SRIO控制器的CRC校验方法,其特征在于,所述根据所述CRC计算控制状态机的数据有效信号和包结束指示信号,得到CRC计算结束信号,包括:
当所述CRC计算控制状态机的数据有效信号和包结束指示信号均为1时,CRC计算结束信号为1,否则,CRC计算结束信号为0。
4.根据权利要求1所述的面向SRIO控制器的CRC校验方法,其特征在于,所述根据所述锁存的CRC计算结束信号判断所述输入数据是否输入完毕,包括:
当所述锁存的CRC计算结束信号为1时,判定输入数据输入完毕;
当所述锁存的CRC计算结束信号为0时,判定输入数据未输入完毕。
5.根据权利要求1所述的面向SRIO控制器的CRC校验方法,其特征在于,所述根据最终CRC计算结果,确定接收到的输入数据是否正确,包括:
判断最终CRC计算结果是否为0;
如果是,确定接收到的输入数据是正确的;
如果否,确定接收到的输入数据是错误的。
6.一种面向SRIO控制器的CRC校验装置,其特征在于,该装置包括:
补零逻辑模块,用于根据输入数据和字有效信号对输入数据进行补零操作得到第一数据;
CRC计算控制状态机,用于根据输入信号得到不同的状态值来控制选择模块中第二数据的输出,并输出CRC计算结束信号;
选择模块,用于根据所述CRC计算控制状态机的状态值确定第二数据,所述第二数据为预设的第一待选值或CRC输出锁存器输出的第二待选值,当CRC计算控制状态机的状态值为0,第二数据为预设的第一待选值;当CRC计算控制状态机的状态值为1,第二数据为CRC输出锁存器输出的第二待选值;
CRC计算模块,用于将所述第一数据和所述第二数据做CRC计算,得到中间CRC计算结果;
CRC输出锁存器,用于将所述中间CRC计算结果锁存得到锁存数据并将所述锁存数据输出,同时将所述锁存数据作为第二待选值输出至所述选择模块,与再次接收的输入数据重新进行CRC计算;
CRC计算结束信号锁存器,用于将所述CRC计算结束信号锁存得到锁存的CRC计算结束信号,同时将锁存的CRC计算结束信号输出至第一判断模块;
第一判断模块,用于根据所述锁存的CRC计算结束信号判断所述输入数据是否输入完毕;如果是,则将CRC输出锁存器输出的锁存数据作为最终CRC计算结果;如果否,则继续进行上述CRC计算;
第二判断模块,用于根据所述最终CRC计算结果,判断接收到的输入数据是否正确。
7.根据权利要求6所述的面向SRIO控制器的CRC校验装置,其特征在于,所述CRC计算控制状态机,具体用于:
当CRC计算控制状态机的数据有效信号值和包开始指示信号均为0,或者数据有效信号值、包开始指示信号、包结束指示信号均为1时,CRC计算控制状态机处于初始空闲状态,所述状态值为0;
当CRC计算控制状态机的数据有效信号值和包开始指示信号均为1,并且包结束指示信号为0时,CRC计算控制状态机进入CRC计算状态,所述状态值为1;
当CRC计算控制状态机的数据有效信号值和包结束指示信号均为1时,CRC计算控制状态机在下一个时钟周期由CRC计算状态跳转至初始空闲状态。
8.根据权利要求6所述的面向SRIO控制器的CRC校验装置,其特征在于,所述第二判断模块,具体用于:
判断所述最终CRC计算结果是否为0;
如果是,确定接收到的输入数据是正确的;
如果否,确定接收到的输入数据是错误的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811162441.6A CN109286471B (zh) | 2018-09-30 | 2018-09-30 | 面向srio控制器的crc校验方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811162441.6A CN109286471B (zh) | 2018-09-30 | 2018-09-30 | 面向srio控制器的crc校验方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109286471A CN109286471A (zh) | 2019-01-29 |
CN109286471B true CN109286471B (zh) | 2021-01-22 |
Family
ID=65176917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811162441.6A Active CN109286471B (zh) | 2018-09-30 | 2018-09-30 | 面向srio控制器的crc校验方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109286471B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493310B (zh) * | 2019-07-17 | 2021-09-10 | 中国人民解放军战略支援部队信息工程大学 | 一种软件定义的协议控制器及方法 |
CN110912841B (zh) * | 2019-11-19 | 2021-06-01 | 天津津航计算技术研究所 | 面向128bit位宽的SRIO协议控制字符与数据包分离系统 |
CN110855689B (zh) * | 2019-11-19 | 2021-07-02 | 天津津航计算技术研究所 | 面向128bit位宽的SRIO协议控制字符与数据包分离方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010122897A1 (ja) * | 2009-04-22 | 2010-10-28 | 京セラ株式会社 | データ伝送システムおよびデータ伝送方法 |
CN103970692A (zh) * | 2013-01-25 | 2014-08-06 | 北京旋极信息技术股份有限公司 | RapidIO串行数据处理方法 |
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
CN106844249A (zh) * | 2016-12-06 | 2017-06-13 | 中国电子科技集团公司第三十二研究所 | 基于RapidIO总线的RAID存储系统及方法 |
CN107290656A (zh) * | 2017-06-15 | 2017-10-24 | 西安微电子技术研究所 | 一种集成双向crc校验功能的可扩展jtag调试结构 |
CN107426246A (zh) * | 2017-08-31 | 2017-12-01 | 北京计算机技术及应用研究所 | 基于FPGA的万兆以太网和RapidIO协议间高速数据交换系统 |
CN108199976A (zh) * | 2017-12-28 | 2018-06-22 | 天津芯海创科技有限公司 | RapidIO网络的交换设备、交换系统和数据发送方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9485053B2 (en) * | 2014-07-09 | 2016-11-01 | Integrated Device Technology, Inc. | Long-distance RapidIO packet delivery |
-
2018
- 2018-09-30 CN CN201811162441.6A patent/CN109286471B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010122897A1 (ja) * | 2009-04-22 | 2010-10-28 | 京セラ株式会社 | データ伝送システムおよびデータ伝送方法 |
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
CN103970692A (zh) * | 2013-01-25 | 2014-08-06 | 北京旋极信息技术股份有限公司 | RapidIO串行数据处理方法 |
CN106844249A (zh) * | 2016-12-06 | 2017-06-13 | 中国电子科技集团公司第三十二研究所 | 基于RapidIO总线的RAID存储系统及方法 |
CN107290656A (zh) * | 2017-06-15 | 2017-10-24 | 西安微电子技术研究所 | 一种集成双向crc校验功能的可扩展jtag调试结构 |
CN107426246A (zh) * | 2017-08-31 | 2017-12-01 | 北京计算机技术及应用研究所 | 基于FPGA的万兆以太网和RapidIO协议间高速数据交换系统 |
CN108199976A (zh) * | 2017-12-28 | 2018-06-22 | 天津芯海创科技有限公司 | RapidIO网络的交换设备、交换系统和数据发送方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109286471A (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109286471B (zh) | 面向srio控制器的crc校验方法及装置 | |
CN107154836B (zh) | 一种基于fpga的并行循环冗余crc校验方法 | |
CN109347598B (zh) | 校验码处理方法、电子设备及存储介质 | |
TWI609580B (zh) | 在一串聯匯流排系統中將資料傳輸安全性作匹配的方法與裝置 | |
US7596699B2 (en) | Battery authentication system | |
CN111897674B (zh) | 一种循环冗余校验电路ip核实现系统及方法 | |
CN108233944A (zh) | 一种循环冗余校验方法、设备及存储介质 | |
CN106372026B (zh) | 一种链路检测方法和接收设备 | |
CN115729879A (zh) | 数据帧格式、芯片通信方法及芯片 | |
CN112612638A (zh) | 基于usb3.2协议16比特循环冗余校验的硬件实现方法 | |
CN108270508B (zh) | 一种循环冗余校验crc实现方法、装置及网络设备 | |
CN113176966B (zh) | 一种检查spi接收数据有效性的系统及方法 | |
CN107231213A (zh) | Crc‑32算法在usb3.0数据包中的实现方法 | |
CN104253667A (zh) | 一种应用于手机平台的串行同步总线校验反馈系统和方法 | |
CN108347292A (zh) | 一种物理编码子层的数据编解码方法和装置 | |
CN114448565A (zh) | 循环冗余校验计算方法、装置、电子设备及存储介质 | |
CN111930683B (zh) | 一种适用于hdlc协议的同步串行收发器及其方法 | |
US7334040B2 (en) | Method of transmission between two processors of a radio communication unit | |
CN113657062B (zh) | 基于奇偶校验提高fpga运行可靠性的方法 | |
US6879272B1 (en) | Method and apparatus for controlling data output frequency | |
CN117914444B (zh) | 一种ib网络数据包crc计算的硬件实现方法和装置 | |
CN114726482B (zh) | 一种spi数据传输方法 | |
CN113133010B (zh) | 一种无线组网方法、装置、终端设备及存储介质 | |
CN109525363B (zh) | 数据传输方法及装置 | |
CN116566543A (zh) | 实现码字同步的方法、通信设备、芯片和芯片系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |