Fpga内部功能自诊断方法与系统的制作方法

文档序号:9765182阅读:362来源:国知局
Fpga内部功能自诊断方法与系统的制作方法
【技术领域】
[0001 ] 本发明涉及FPGA(Field-ProgrammabIe Gate Array,现场可编程门阵列)技术领域,特别是涉及FPGA内部功能自诊断方法与系统。
【背景技术】
[0002]FPGA即现场可编程门阵列,其作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
[0003]目前FPGA在各行各业得到广泛应用,随着继电保护技术发展,FPGA开始在继电保护系统大规模应用。继电保护对设备的可靠性要求非常高,由于FPGA基于SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)架构,芯片的正常工作会收到外界干扰的影响,如何保证FPGA的可靠性成为一个关键问题。
[0004]目前更多的学者对FPGA主要研究如何提升其运行效率、处理能力以及二次开发等方面,对于如何实现FPGA内部功能自诊断,以提高其可靠性的方面目前尚无完整的技术方案。

【发明内容】

[0005]基于此,有必要针对目前尚无FPGA内部功能自诊断方案,以提高FPGA可靠性的问题,提供一种FPGA内部功能自诊断方法与系统,以提高FPGA的可靠性。
[0006]—种FPGA内部功能自诊断方法,包括步骤:
[0007]对所述FPGA的输入报文添加CRC(Cyclical Redundancy Check,循环冗余码)校验和,对所述FPGA的输出报文进行CRC校验,并计数所述FPGA的输出报文中CRC错误报文的数量;
[0008]根据所述CRC错误报文的数量,并通过漏桶算法判断所述FPGA是否持续出现异常;
[0009]当所述FPGA持续出现异常时,发出报警信号。
[0010]一种FPGA内部功能自诊断系统,包括:
[0011]校验模块,用于对FPGA的输入报文添加CRC校验和,对所述FPGA的输出报文进行CRC校验,并计数所述FPGA的输出报文中CRC错误报文的数量;
[0012]异常判断模块,用于根据所述CRC错误报文的数量,并通过漏桶算法判断所述FPGA是否持续出现异常;
[0013]处理模块,用于当所述FPGA持续出现异常时,发出报警信号。
[0014]本发明FPGA内部功能自诊断方法与系统,对FPGA的输入报文添加CRC校验和,对FPGA的输出报文进行CRC校验,并计数FPGA的输出报文中CRC错误报文的数量,根据CRC错误报文的数量,并通过漏桶算法判断FPGA是否持续出现异常,当FPGA持续出现异常时,发出报警信号。整个过程中,采用CRC校验和漏桶算法,判断FPGA是否持续出现异常,当出现异常时发出告警信号,实现FPGA内部功能自诊断,有效提高FPGA的可靠性。
【附图说明】
[0015]图1为本发明FPGA内部功能自诊断方法第一个实施例的流程示意图;
[0016]图2为本发明FPGA内部功能自诊断方法第二个实施例的流程示意图;
[0017]图3为本发明FPGA内部功能自诊断系统第一个实施例的结构示意图;
[0018]图4为本发明FPGA内部功能自诊断系统第二个实施例的结构示意图。
【具体实施方式】
[0019]如图1、图2所示,一种FPGA内部功能自诊断方法,包括步骤:
[0020]SlOO:对FPGA的输入报文添加CRC校验和,对所述FPGA的输出报文进行CRC校验,并计数所述FPGA的输出报文中CRC错误报文的数量。
[0021]CRC是利用除法及余数的原理来作错误侦测的,实际应用中,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。具体来说,可以在FPGA入口处对输入报文尾添加CRC校验和在FPGA出口处对报文进行CRC校验,计数FPGA的输出报文中CRC错误报文的数量,同时非必要的,还可以计数FPGA的输出报文中CRC正确报文的数量。
[0022]S200:根据所述CRC错误报文的数量,并通过漏桶算法判断所述FPGA是否持续出现异常。
[0023]漏桶算法(Leaky Bucket)是目前在网络世界中流量整形或速率限制时经常使用的一种算法,它的主要目的是控制数据注入到网络的速率,平滑网络上的突发流量。漏桶算法提供了一种机制,通过它,突发流量可以被整形以便为网络提供一个稳定的流量。具体来说,漏桶可以看作是一个带有常量服务时间的单服务器队列,如果漏桶(包缓存)溢出,那么数据包会被丢弃,在网络中,漏桶算法可以控制端口的流量输出速率,平滑网络上的突发流量,实现流量整形,从而为网络提供一个稳定的流量。在本发明FPGA内部功能自诊断方法中根据CRC错误报文的数量,通过漏桶算法上述特性来判断FPGA是否持续出现异常。
[0024]为了更进一步详细解释漏桶算法的过程,下面将采用一实施例进行说明。
[0025]在其中一个实施例中,步骤S200具体包括:
[0026]S220:当所述CRC错误报文的数量超过第一预设门限值时,判定所述FPGA出现异常,对所述FPGA进行复位操作,其中,所述复位操作包括对所述CRC错误报文的数量归零。
[0027]S240:统计所述FPGA已复位次数。
[0028]S260:当所述FPGA已复位次数超过第二预设门限值时,判定所述FPGA持续出现异常。
[0029]假设CRC错误报文的数量为M,第一预设门限值为X,当M大于X时,判定FPGA已经出现异常,此时对FPGA进行复位操作,将CRC错误报文的数量归零。之后每当CRC错误报文的数量M大于第一预设门限值X,都对FPGA进行复位操作,将CRC错误报文的数量归零,并记录下FPGA已复位的次数N,当N大于第二预设门限值Y时,此时判定FPGA已经持续出现异常。
[0030]S300:当所述FPGA持续出现异常时,发出报警信号。
[0031]当FPGA持续出现异常时。发出告警信号,提示操作人员需要更换物理层。
[0032]本发明FPGA内部功能自诊断方法,对FPGA的输入报文添加CRC校验和,对FPGA的输出报文进行CRC校验,并计数FPGA的输出报文中CRC错误报文的数量,根据CRC错误报文的数量,并通过漏桶算法判断FPGA是否持续出现异常,当FPGA持续出现异常时,发出报警信号。整个过程中,采用CRC校验和漏桶算法,判断FPGA是否持续出现异常,当出现异常时发出告警信号,实现FPGA内部功能自诊断,有效提高FPGA的可靠性。
[0033]在其中一个实施例中,所述当所述CRC错误报文的数量超过第一预设门限值时,判定所述FPGA出现异常,对所述FPGA进行复位操作的步骤具体包括:
[0034]统计连续收到CRC正确报文的数量,当连续收到所述CRC正确报文的数量大于第三预设门限值时,将所述CRC错误报文的数量减去预设值,获得修正值,当所述修正值大于零时,修正所述CRC错误报文的数量为所述修正值,当所述修正值小于或等于零时,修正的所述CRC错误报文的数量为零;
[0035]当修正的所述CRC错误报文的数量超过第一预设门限值时,判定所述FPGA出现异常,对所述FPGA进行复位操作。
[0036]除了考虑CRC错误报文的数量之外还对CRC正确报文的数量进行考虑,以修正CRC错误报文的数量,实现FPGA出现异常情况的准确判断。具体来说,例如可以当连续收到3个CRC正确报文时,将CRC错误报文的数量减I,以修正CRC错误报文的数量。需要指出的是修正后的CRC错误报文的数量大于或等于零,假设当前CRC错误报文的数量为O,且目前已经连续收到3个CRC正确报文,此时将当前CRC错误报文的数量为O减去I,获得修正值为-1,此时,,修正后的CRC错误报文的数量计数为O。
[0037]在其中一个实施例中,所述对FPGA的输入报文添加CRC校验和,对所述FPGA的输出报文进行CRC校验,并计数CRC错误报文的数量的步骤具体为:
[0038]对所述FPGA的输入报文的报文尾添加CRC校验和,对所述FPGA的输出报文进行CRC校验,并计数所述CRC错误报文的数量。
[0039]具体来说,可以在FPGA的输入报文的报文尾添加CRC校验和。更具体来说,可以在FPGA的输入报文最后4位添加CRC校验和。
[0040]如图2所示,在其中一个实施例中,步骤S300之后还包括:
[0041 ] S400:记录所述CRC错误报文的内容和时间,并将所述CRC错误报文的内容和时间关联存储。
[0042]将CRC错误报文的内容和时间关联存储,便于对FPGA运行情况进行监控,也便于后期对FPGA运行情况进行深入了解和分析。
[0043 ]如图3所示,一种FPGA内部功能自诊断系统,包括:
[0044]校验模块100,用于对FPGA的输入报文添加CRC校验和,对所述FPGA的输出报文进行CRC校验,并计数所述FPGA的输出报文中CRC错误报文的数量;
[0045]异常判断模块200,用于根据所述CRC错误报文的数量,并通过漏桶算法判断所述FPGA是否持续出现异常;
[0046]处理模块300,用于当所述FPGA持续出现异常时,发出报警信号。
[0047]本发明FPGA内部功能自诊断系统,校验模块100对FPGA的输入报文添加CRC校验和,对FPGA的输出报文进行CRC校验,并计数FPGA的输出报文中CRC错误报文的数量,异常判断模块200根据CRC错误报文的数量,并通过漏桶算法判断FPGA是否持续出现异常,处理模块300当FPGA持续出现异常时,发出报警信号。整个过程中,采用CRC校验和漏桶算法,判断FPGA是否持续出现异常,当出现异常时发出告警信号,实现FPGA内部功能自诊断,有效提高FPGA的可靠性。
[0048]如图4所示,在其中一个实施例中,所述异常判断模块200具体包括:
[0049]复位单元220,用于当所述CRC错误报文的数量超过第一预设门限值时,判定所述FPGA出现异常,对所述FPGA进行复位操作,其中,所述复位操作包括对所述CRC错误报文
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1