一种通用循环冗余校验电路IP核实现方法及系统与流程

文档序号:18553635发布日期:2019-08-30 22:18阅读:168来源:国知局
一种通用循环冗余校验电路IP核实现方法及系统与流程

本发明属于循环冗余校验电路领域,特别涉及一种通用循环冗余校验电路ip核的实现方法及系统。



背景技术:

在数据存储和数据通讯领域,为了保证数据正确,需采用检错手段,其中,循环冗余码(crc码)是最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。根据应用环境不同,crc码分为以下几种标准:crc_12码,crc_16码,crc-32码等。另外在特殊领域,也可制定其他码长的crc标准。

在实际应用中,数据存储和通讯系统存在不同标准、不同形式、不同生成多项式的crc码。设计人员如果对每一种标准进行设计、验证,将会浪费大量的时间和精力。特别是在asic、soc芯片设计或fpga相关设计中,如果针对特定的crc标准和生成多项式设计后,电路结构固定,使用局限性很大。



技术实现要素:

本发明的目的在于提供一种通用循环冗余校验电路ip核的设计实现方法,解决在数据存储和通讯领域不同校验需求下循环冗余校验电路需要重复设计的问题。

有鉴于此,本发明提供的技术方案是:一种通用循环冗余校验电路ip核实现方法,其特征在于,包括:

根据外部配置的待校验数据长度进行地址计数与数据位计数,并产生输入数据读取使能及地址、输入数据比特开端使能校验过程控制信号;

根据所述配置的信息确定循环冗余校验电路形式,并根据控制信号移位寄存,产生输出校验数据和输出中断。

进一步地,还包括:根据应用需求在线对所述循环冗余校验电路通路进行实时更改的步骤。

进一步地,所述配置的信息包括:根据选择循环冗余校验电路形式配置相应校验码长度、生成多项式、移位寄存器初始值。

进一步地,还包括:配置输入数据长度、输入数据从存储器中读取的顺序以及校验码输出的顺序。

进一步地,根据所述配置的信息确定循环冗余校验电路通路包括:按照所配置的信息开始对输入数据进行校验码计算。

进一步地,还包括:计算结束时按配置的输出顺序输出校验码,并发出计算完成中断。

进一步地,所述系统的校验需求包括:对不同来源的数据进行不同形式的循环冗余校验需求。

本发明的另一目的在于提供一种通用循环冗余校验电路ip核实现系统,其特征在于,包括:

计数模块,用于根据外部配置的待校验数据长度进行地址计数与数据位计数,并产生输入数据读取使能及地址、输入数据比特开端使能校验过程控制信号;

移位寄存模块,用于根据所述配置的信息确定循环冗余校验电路形式,并根据控制信号移位寄存,产生输出校验数据和输出中断。

进一步地,所述循环冗余校验电路形式为:移位寄存器最高比特位先与输入数据异或后,再反馈回生成多项式中参与异或的其它比特位。

进一步地,所述循环冗余校验电路形式为:移位寄存器最高比特位直接反馈到生成多项式中参与异或的其它比特位。

本发明实现了以下显著的有益效果:

实现简单,包括:根据外部配置的待校验数据长度进行地址计数与数据位计数,并产生输入数据读取使能及地址、输入数据比特开端使能校验过程控制信号;根据所述配置的信息确定循环冗余校验电路形式,并根据控制信号移位寄存,产生输出校验数据和输出中断。通过处理器在线配置参数来改变循环冗余校验电路的特性,简单灵活,并且可以在线进行实时更改,在不改变硬件的基础上能够快速生成需要的循环冗余校验电路,避免重复设计,节省设计成本,使设计的硬件模块具有可重用性。

附图说明

图1为本发明的一种通用循环冗余校验电路ip核的设计方法的结构示意图;

图2为本发明的循环冗余校验电路形式一的第一实施例示意图;

图3为本发明的循环冗余校验电路形式二的第一实施例示意图;

图4为本发明的循环冗余校验电路形式一的第二实施例示意图;

图5为本发明的循环冗余校验电路形式二的第二实施例示意图。

附图标记示意

1.计数模块2.移位寄存模块

3.循环冗余校验电路形式一4.循环冗余校验电路形式二

具体实施方式

以下结合附图和具体实施例对本发明作进一步详细说明,根据下面说明和权利要求书,本发明的优点和特征将更清楚。需要说明的是,附图均采用非常简化的形式且均适用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。

需要说明的是,为了清楚地说明本发明的内容,本发明特举多个实施例以进一步阐释本发明的不同实现方式,其中,该多个实施例是列举式而非穷举式。此外,为了说明的简洁,前实施例中已提及的内容往往在后实施例中予以省略,因此,后实施例中未提及的内容可相应参考前实施例。

虽然该发明可以以多种形式的修改和替换来扩展,说明书中也列出了一些具体的实施图例并进行详细阐述。应当理解的是,发明者的出发点不是将该发明限于所阐述的特定实施例,正相反,发明者的出发点在于保护所有给予由本权利声明定义的精神或范围内进行的改进、等效替换和修改。同样的元器件号码可能被用于所有附图以代表相同的或类似的部分。

请参照图1,本发明的一种通用循环冗余校验电路ip核实现方法,包括:根据外部配置的待校验数据长度进行地址计数与数据位计数,并产生输入数据读取使能及地址、输入数据比特开端使能校验过程控制信号;根据所述配置的信息确定循环冗余校验电路形式,并根据控制信号移位寄存,产生输出校验数据和输出中断。

优选地,还包括:根据应用需求在线对所述循环冗余校验电路通路进行实时更改的步骤。

优选地,所述配置的信息包括:根据选择循环冗余校验电路形式配置相应校验码长度、生成多项式、移位寄存器初始值。

优选地,还包括:配置输入数据长度、输入数据从存储器中读取的顺序以及校验码输出的顺序。

优选地,根据所述配置的信息确定循环冗余校验电路通路包括:按照所配置的信息开始对输入数据进行校验码计算。

优选地,还包括:计算结束时按配置的输出顺序输出校验码,并发出计算完成中断。

优选地,所述系统的校验需求包括:对不同来源的数据进行不同形式的循环冗余校验需求。

作为具体的实施例,本发明的一种通用循环冗余校验电路ip核的实现方法,其具体步骤为:

第一步:构建通用循环冗余校验电路ip核的各个子模块。

通用循环冗余校验电路ip核的各个子模块,包括计数模块和移位寄存模块。

所述计数模块的功能为:产生输入数据读取使能及地址、输入数据比特开端使能等校验过程控制信号;

所述移位寄存模块的功能为:根据配置信息确定循环冗余校验电路通路,并根据控制信号移位寄存,产生输出校验数据和输出中断。

第二步:通过处理器对通用循环冗余校验电路ip核的可配置项进行配置。

在系统上电复位之后,处理器要先对通用循环冗余校验电路ip核的可配置项进行配置,首先根据系统的校验需求选择循环冗余校验电路形式一3或循环冗余校验电路形式二4;然后根据选定电路形式配置相应校验码长度、生成多项式、移位寄存器初始值;同时可配置输入数据长度、输入数据从存储器中读取的顺序以及校验码输出的顺序等;在处理器配置完所有可配置项后,系统可按照所配置的参数开始对输入数据进行校验码计算,计算结束时按配置的输出顺序输出校验码,并发出计算完成中断。

第三步:根据具体需要和应用在线进行实时更改

在系统运行的过程中,需要改变循环冗余校验电路的特性时,需要处理器对通用循环冗余校验电路ip核进行重新配置,系统会根据新配置开始工作。

至此,实现了通用循环冗余校验电路ip核的设计。

请参照图1至图5,本发明的通用循环冗余校验电路ip核实现系统,包括:计数模块1,用于根据外部配置的待校验数据长度进行地址计数与数据位计数,并产生输入数据读取使能及地址、输入数据比特开端使能校验过程控制信号;移位寄存模块2,用于根据所述配置的信息确定循环冗余校验电路形式,并根据控制信号移位寄存,产生输出校验数据和输出中断。

优选地,所述循环冗余校验电路形式为:移位寄存器最高比特位先与输入数据异或后,再反馈回生成多项式中参与异或的其它比特位。

优选地,所述循环冗余校验电路形式为:移位寄存器最高比特位直接反馈到生成多项式中参与异或的其它比特位。

在一个实施例中,本发明的一种通用循环冗余校验电路ip核的设计实现方法的具体步骤为:

第一步:构建通用循环冗余校验电路ip核的各个子模块

如附图1所示,通用循环冗余校验电路ip核的各个子模块,包括计数模块1、移位寄存模块2。

所述计数模块1的功能为:根据外部配置的输入数据长度产生输入数据读取使能及地址、输入数据比特开端使能等校验过程控制信号;比如对长度64bit的输入数据进行校验,外部存储器每个地址存储32bit数据,则通过ip核内部计数器级联共产生两个数据读取使能和相应地址,从外部存储器读取两个32bit数据;进一步通过计数值将所述两个32bit数据按位输出形成64bit串行待校验数据,并在第一位串行待校验数据输出时产生输入数据比特开端使能信号。

所述移位寄存模块2的功能为:根据配置信息确定循环冗余校验电路通路,并根据控制信号移位寄存,产生输出校验数据和输出中断;比如外部配置选择循环冗余校验电路形式一3的电路形式,根据所述计数模块产生的开端使能信号,逐一将64bit串行待校验数据按照所述循环冗余校验电路形式一3的电路形式进行移位寄存,产生输出校验数据和输出中断。所述循环冗余校验电路形式一3和所述循环冗余校验电路形式二4的主要区别在于:所述循环冗余校验电路形式一3中移位寄存器最高比特位先与输入数据异或后,再反馈回生成多项式中参与异或的其它比特位;而所述循环冗余校验电路形式二4移位寄存器最高比特位直接反馈到生成多项式中参与异或的其它比特位。

第二步:通过处理器对通用循环冗余校验电路ip核的可配置项进行配置

如图2至图5所示,其中,图2循环冗余校验电路形式一的第一实施例示意图,以生成多项式g(x)=x16+x12+x5+1为例。图3循环冗余校验电路形式二的第一实施例示意图,以生成多项式g(x)=x16+x12+x5+1为例。图4循环冗余校验电路形式一的第二实施例示意图,以生成多项式g(x)=x8+x7+x6+x4+x2+1为例。图5循环冗余校验电路形式二的第二实施例示意图,以生成多项式g(x)=x8+x7+x6+x4+x2+1为例。

在系统上电复位之后,处理器要先对通用循环冗余校验电路ip核的可配置项进行配置,首先根据系统的校验需求选择循环冗余校验电路形式一3或循环冗余校验电路形式二4,如附图2和图3所示,其中处理器配置校验电路形式选择信号为1’b1代表选择所述循环冗余校验电路形式一3,处理器配置校验电路形式选择信号为1’b0代表选择所述循环冗余校验电路形式二4;然后根据选定电路形式配置其它配置项,比如配置校验码长度为16bit,配置生成多项式为g(x)=x16+x12+x5+1、配置移位寄存器初始值为16’habcd,配置输入数据长度为64bit,配置输入数据从存储器中读取的顺序以及校验码输出的顺序均为从高位到低位;在处理器配置完所有可配置项后,系统会根据第一步中所述计数模块1和所述移位寄存模块2的协同工作,逐一将串行待校验数据按照与配置相应的循环冗余校验电路形式进行移位寄存,产生输出校验数据和输出中断。

第三步:根据具体需要和应用在线进行实时更改

在系统运行的过程中,需要改变循环冗余校验电路的特性时,需要处理器对通用循环冗余校验电路ip核进行重新配置,系统会根据新配置开始工作。比如系统第一次做校验时配置输入数据长度为64bit,配置校验电路形式为所述循环冗余校验电路形式一3;第二次需对另一组长度为128bit的输入数据,按照所述循环冗余校验电路形式二4进行校验,则重新将该ip核的输入数据长度配置为128bit,并配置校验电路形式为所述循环冗余校验电路形式二4即可。再比如,系统第三次需要修改crc码长度为8bit,相应配置生成多项式为g(x)=x8+x7+x6+x4+x2+1,配置移位寄存器初始值为8’h5a,并根据需求配置校验电路形式为所述循环冗余校验电路形式一3或所述循环冗余校验电路形式二4,如附图四和附图五所示,即可按新的配置开始工作。

至此,完成了通用循环冗余校验电路ip核的具体实现。

本发明实现了以下显著的有益效果:

实现简单,包括:根据外部配置的待校验数据长度进行地址计数与数据位计数,并产生输入数据读取使能及地址、输入数据比特开端使能校验过程控制信号;根据所述配置的信息确定循环冗余校验电路形式,并根据控制信号移位寄存,产生输出校验数据和输出中断。通过处理器在线配置参数来改变循环冗余校验电路的特性,简单灵活,并且可以在线进行实时更改,在不改变硬件的基础上能够快速生成需要的循环冗余校验电路,避免重复设计,节省设计成本,使设计的硬件模块具有可重用性。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并部用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1