本发明专利技术涉及服务器技术领域,提供一种基于FPGA的状态机状态监控处理方法及系统,方法包括:FPGA的状态机上电后,以轮询的方式实时读取状态机的每一个状态编码,将读取到的每一个状态编码与预先配置生成的与当前读取的状态相匹配的状态参考编码相比较,判断两者是否一致;当判定读取到的当前的状态编码与预先配置生成的状态参考编码相一致时,则判定当前状态处于正常状态;当判定读取到的当前的状态编码与预先配置生成的状态参考编码不一致时,则应用预先配置生成的状态参考编码替换当前读取状态的状态编码,从而能够检测出状态机的非法状态并将状态机恢复到正常状态,保障状态机运行的连贯性,以及状态机的容错性和可靠性。
A method and system of state machine state monitoring based on FPGA
【技术实现步骤摘要】
一种基于FPGA的状态机状态监控处理方法及系统
本专利技术属于服务器
,尤其涉及一种基于FPGA的状态机状态监控处理方法及系统。
技术介绍
FPGA是可编程逻辑器件,用于实现各种算法、状态控制、数字逻辑等功能,已广泛应用于电子信息、通信工程等领域。状态机是应用于FPGA系统中的数字电路,由触发器、组合逻辑电路组成,通过状态之间的转换和数字逻辑的输出完成系统的功能。在状态机设计中,需要对每个状态进行编码,例如采用二进制枚举编码、One-hot(一位独热编码)以及格雷码等方式,不管利用哪种编码方式,总是不可避免地出现大量剩余状态,即未被定义的编码组合,这些状态在状态机的正常运行中是不需要出现的,即“非法”状态。由于外界干扰、系统自身可靠性、设计等原因,状态机在运行过程中可能会进入“非法”状态,影响系统正常运转,出现系统非预期的功能。目前,当状态机进入“非法”状态时,通常使用复位控制信号Reset对系统进行复位,使系统恢复到正常的初始状态后再继续执行状态机,但是这种复位方式解决状态机进入非法状态的方案适用于系统具备复位信号Reset、以及人为可以控制的场景,但在无人控制的情况下、或系统自身就未设置复位信号等情景,就无法获取复位信号了。此外,系统进入“非法”状态后通过Reset信号使系统复位,状态机会失去当前状态的运行上下文,而直接返回初始状态,从而影响状态机运行的连贯性。
技术实现思路
针对现有技术中的缺陷,本专利技术提供了一种基于FPGA的状态机状态监控处理方法,旨在解决现有技术中状态机在运行过程中可能会进入“非法”状态,影响系统正常运转,出现系统非预期的功能的问题。本专利技术所提供的技术方案是:一种基于FPGA的状态机状态监控处理方法,所述方法包括下述步骤:FPGA的状态机上电后,以轮询的方式实时读取状态机的每一个状态编码,将读取到的每一个状态编码与预先配置生成的与当前读取的状态相匹配的状态参考编码相比较,判断两者是否一致;当判定读取到的当前的状态编码与预先配置生成的状态参考编码相一致时,则判定当前状态处于正常状态;当判定读取到的当前的状态编码与预先配置生成的状态参考编码不一致时,则应用预先配置生成的状态参考编码替换当前读取状态的状态编码。作为一种改进的方案,所述FPGA的状态机上电后,以轮询的方式实时读取状态机的每一个状态编码的步骤之前还包括下述步骤:对所述FPGA的状态机的各个状态进行编码,并将状态编码存储到合法状态编码存储区。作为一种改进的方案,所述方法还包括下述步骤:接收对所述状态机的状态编码的修改指令,所述修改指令包括状态编码的编码方式、状态编码的增加以及状态编码的删除;根据所述修改指令,对所述状态机的状态编码执行响应的动作。作为一种改进的方案,所述FPGA的状态机上电后,以轮询的方式实时读取状态机的每一个状态编码,将读取到的每一个状态编码与预先配置生成的与当前读取的状态相匹配的状态参考编码相比较,判断两者是否一致的步骤具体包括下述步骤:控制预先配置的第一寄存器依次从所述合法状态编码存储区读取一个状态编码;控制预先配置的第二寄存器读取所述状态机当前与从所述合法状态编码存储区读取一个状态编码相对应的一个状态编码;将从所述合法状态编码存储区读取状态编码与读取到的状态机当前的状态编码进行比较,判断两者是否一致;当判定读取到的当前的状态编码与预先配置生成的状态参考编码相一致时,生成第一标识信号;当判定读取到的当前的状态编码与预先配置生成的状态参考编码不一致时,生成第二标识信号。作为一种改进的方案,所述方法还包括下述步骤:预先配置第一寄存器和第二寄存器,所述第一寄存器和第二寄存器分别用于读取状态机的状态编码。本专利技术的另一目的在于提供一种基于FPGA的状态机状态监控处理系统,所述系统包括:状态读取判断模块,用于FPGA的状态机上电后,以轮询的方式实时读取状态机的每一个状态编码,将读取到的每一个状态编码与预先配置生成的与当前读取的状态相匹配的状态参考编码相比较,判断两者是否一致;正常状态判定模块,用于当判定读取到的当前的状态编码与预先配置生成的状态参考编码相一致时,则判定当前状态处于正常状态;状态编码替换模块,用于当判定读取到的当前的状态编码与预先配置生成的状态参考编码不一致时,则应用预先配置生成的状态参考编码替换当前读取状态的状态编码。作为一种改进的方案,所述系统还包括:状态编码模块,用于对所述FPGA的状态机的各个状态进行编码;状态编码存储模块,用于将状态编码存储到合法状态编码存储区。作为一种改进的方案,所述系统还包括:修改指令接收模块,用于接收对所述状态机的状态编码的修改指令,所述修改指令包括状态编码的编码方式、状态编码的增加以及状态编码的删除;修改动作响应模块,用于根据所述修改指令,对所述状态机的状态编码执行响应的动作。作为一种改进的方案,所述状态读取判断模块具体包括:第一读取模块,用于控制预先配置的第一寄存器依次从所述合法状态编码存储区读取一个状态编码;第二读取模块,用于控制预先配置的第二寄存器读取所述状态机当前与从所述合法状态编码存储区读取一个状态编码相对应的一个状态编码;比较判断模块,用于将从所述合法状态编码存储区读取状态编码与读取到的状态机当前的状态编码进行比较,判断两者是否一致;第一标识信号生成模块,用于当判定读取到的当前的状态编码与预先配置生成的状态参考编码相一致时,生成第一标识信号;第二标识信号生成模块,用于当判定读取到的当前的状态编码与预先配置生成的状态参考编码不一致时,生成第二标识信号。作为一种改进的方案,所述状态读取判断模块还包括:预先配置模块,用于预先配置第一寄存器和第二寄存器,所述第一寄存器和第二寄存器分别用于读取状态机的状态编码。在本专利技术实施例中,FPGA的状态机上电后,以轮询的方式实时读取状态机的每一个状态编码,将读取到的每一个状态编码与预先配置生成的与当前读取的状态相匹配的状态参考编码相比较,判断两者是否一致;当判定读取到的当前的状态编码与预先配置生成的状态参考编码相一致时,则判定当前状态处于正常状态;当判定读取到的当前的状态编码与预先配置生成的状态参考编码不一致时,则应用预先配置生成的状态参考编码替换当前读取状态的状态编码,从而能够检测出状态机的非法状态并将状态机恢复到正常状态,保障状态机运行的连贯性,以及状态机的容错性和可靠性。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。图1是本专利技术提供的基于FPGA的状态机状态监控处理方法的实现流程图;图2是本专利技术提供的FPGA的状态机上本文档来自技高网...
【技术保护点】
1.一种基于FPGA的状态机状态监控处理方法,其特征在于,所述方法包括下述步骤:/nFPGA的状态机上电后,以轮询的方式实时读取状态机的每一个状态编码,将读取到的每一个状态编码与预先配置生成的与当前读取的状态相匹配的状态参考编码相比较,判断两者是否一致;/n当判定读取到的当前的状态编码与预先配置生成的状态参考编码相一致时,则判定当前状态处于正常状态;/n当判定读取到的当前的状态编码与预先配置生成的状态参考编码不一致时,则应用预先配置生成的状态参考编码替换当前读取状态的状态编码。/n
【技术特征摘要】
1.一种基于FPGA的状态机状态监控处理方法,其特征在于,所述方法包括下述步骤:
FPGA的状态机上电后,以轮询的方式实时读取状态机的每一个状态编码,将读取到的每一个状态编码与预先配置生成的与当前读取的状态相匹配的状态参考编码相比较,判断两者是否一致;
当判定读取到的当前的状态编码与预先配置生成的状态参考编码相一致时,则判定当前状态处于正常状态;
当判定读取到的当前的状态编码与预先配置生成的状态参考编码不一致时,则应用预先配置生成的状态参考编码替换当前读取状态的状态编码。
2.根据权利要求1所述的基于FPGA的状态机状态监控处理方法,其特征在于,所述FPGA的状态机上电后,以轮询的方式实时读取状态机的每一个状态编码的步骤之前还包括下述步骤:
对所述FPGA的状态机的各个状态进行编码,并将状态编码存储到合法状态编码存储区。
3.根据权利要求2所述的基于FPGA的状态机状态监控处理方法,其特征在于,所述方法还包括下述步骤:
接收对所述状态机的状态编码的修改指令,所述修改指令包括状态编码的编码方式、状态编码的增加以及状态编码的删除;
根据所述修改指令,对所述状态机的状态编码执行响应的动作。
4.根据权利要求2所述的基于FPGA的状态机状态监控处理方法,其特征在于,所述FPGA的状态机上电后,以轮询的方式实时读取状态机的每一个状态编码,将读取到的每一个状态编码与预先配置生成的与当前读取的状态相匹配的状态参考编码相比较,判断两者是否一致的步骤具体包括下述步骤:
控制预先配置的第一寄存器依次从所述合法状态编码存储区读取一个状态编码;
控制预先配置的第二寄存器读取所述状态机当前与从所述合法状态编码存储区读取一个状态编码相对应的一个状态编码;
将从所述合法状态编码存储区读取状态编码与读取到的状态机当前的状态编码进行比较,判断两者是否一致;
当判定读取到的当前的状态编码与预先配置生成的状态参考编码相一致时,生成第一标识信号;
当判定读取到的当前的状态编码与预先配置生成的状态参考编码不一致时,生成第二标识信号。
5.根据权利要求4所述的基于FPGA的状态机状态监控处理方法,其特征在于,所述方法还包括下述步骤:
预先配置第一寄存器和第二寄存器,所述第一寄存器和第二寄存器分别用于读取状态机的状态编码。
...
【专利技术属性】
技术研发人员:苏振宇,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。