CN109213626A - 一种状态机及其状态机的控制方法 - Google Patents
一种状态机及其状态机的控制方法 Download PDFInfo
- Publication number
- CN109213626A CN109213626A CN201810945916.2A CN201810945916A CN109213626A CN 109213626 A CN109213626 A CN 109213626A CN 201810945916 A CN201810945916 A CN 201810945916A CN 109213626 A CN109213626 A CN 109213626A
- Authority
- CN
- China
- Prior art keywords
- state machine
- state
- status code
- nextstate
- parity check
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明提供一种状态机及其状态机的控制方法,包括:利用对状态机的多个状态编码为状态码,每个状态对应的状态码有且仅有一位与其它位不同,所述状态码的位数与所述状态机的状态数量相同;所述状态机当前状态的状态码与输入数据经由组合逻辑获得状态机的下一状态的状态码及输出数据;对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位;以及根据所述奇偶校验位确定所述状态机的下一状态的状态码是否出错。本发明提供的状态机及其状态机的控制方法,能够实现状态码的检错。
Description
技术领域
本发明涉及计算机应用领域,尤其涉及一种状态机及其状态机的控制方法。
背景技术
状态机(statemachine)定义了多个状态以及状态之间的迁移。状态机通过响应一系列事件而运行,当事件满足某些触发条件时,将导致状态机从当前的状态迁移到下一个状态。在所定义的多个状态之中,存在至少一个初态和至少一个终态,状态机从初态开始运行,当迁移到终态时,状态机停止运行。
状态机在计算机领域应用非常广泛,许多系统都使用到状态机,状态机根据状态机定义(状态图)来运行。如果系统需要实现复杂的逻辑功能,则相应的状态机定义也会十分复杂。因此导致状态机的设计非常复杂,设计过程中容易出错且限制了状态机的表达能力。另外,由于状态机所定义各个状态之间彼此存在着迁移关系,无法判断状态机在状态变化过程中是否出错。
发明内容
本发明为了克服上述现有技术存在的缺陷,提供一种状态机及其状态机的控制方法,能够实现状态码的检错。
根据本发明的一个方面,提供一种状态机的控制方法,包括:
利用对状态机的多个状态编码为状态码,每个状态对应的状态码有且仅有一位与其它位不同,所述状态码的位数与所述状态机的状态数量相同;
所述状态机当前状态的状态码与输入数据经由组合逻辑获得状态机的下一状态的状态码及输出数据;
对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位;以及
根据所述奇偶校验位确定所述状态机的下一状态的状态码是否出错。
可选地,利用独热编码对状态机的多个状态编码为状态码,每个状态对应的状态码有且仅有一位为1。
可选地,若所述奇偶校验位表示所述状态机的下一状态的状态码中1的位数为偶数,则确定所述状态机的下一状态的状态码出错。
可选地,利用独冷编码对状态机的多个状态编码为状态码,每个状态对应的状态码有且仅有一位为0。
可选地,若所述奇偶校验位表示所述状态机的下一状态的状态码中0的位数为偶数,则确定所述状态机的下一状态的状态码出错。
可选地,所述对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位包括:
若所述状态机的下一状态的状态码中1的位数为奇数,则所述奇偶校验位为1;
若所述状态机的下一状态的状态码中1的位数为偶数,则所述奇偶校验位为0。
可选地,所述对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位包括:
若所述状态机的下一状态的状态码中1的位数为奇数,则所述奇偶校验位为0;
若所述状态机的下一状态的状态码中1的位数为偶数,则所述奇偶校验位为1。
可选地,若确定所述状态机的下一状态的状态码出错,则所述状态机抛弃所述下一状态的状态码,并使所述状态机的下一状态为空闲态。
可选地,若确定所述状态机的下一状态的状态码出错,则所述状态机抛弃所述下一状态的状态码,并使所述状态机的下一状态仍为当前状态,直到确定所述状态机的下一状态的状态码正常。
根据本发明的又一方面,还提供一种状态机,采用如上所述的状态机的控制方法。
本发明提供的状态机及其状态机的控制方法具有如下优势:
本发明通过采用每个状态对应的状态码有且仅有一位与其它位不同的方式对状态进行编码,并相应地采用奇偶校验位进行状态码校验,由此解决现有技术中无法判断状态机在状态变化过程中是否出错的问题,实现状态码的快速校验。此外,本发明还提供了状态码出错时的两种处理方式,使所述状态机的下一状态为空闲态或者使所述状态机的下一状态仍为当前状态,由此,可以减少由于状态机状态码出错产生的资源浪费,提高状态机的稳定性,在重试当前状态的实现中,当状态码正确时,可自动恢复,进一步提高了状态机的容错使用体验。
附图说明
通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据本发明实施例的状态机的控制方法的流程图。
图2示出了根据本发明实施例的状态机的示意图。
图3至图5分别示出不同情况下的状态机的状态变化
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
首先参见图1,图1示出了本发明实施例的一种状态机的控制方法。图1共示出如下步骤:
步骤S110:利用对状态机的多个状态编码为状态码,每个状态对应的状态码有且仅有一位与其它位不同,所述状态码的位数与所述状态机的状态数量相同;
步骤S120:所述状态机当前状态的状态码与输入数据经由组合逻辑获得状态机的下一状态的状态码及输出数据;
步骤S130:对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位;以及
步骤S140:根据所述奇偶校验位确定所述状态机的下一状态的状态码是否出错。
在本发明的一个具体实施例中,可以利用独热编码对状态机的多个状态编码为状态码,每个状态对应的状态码有且仅有一位为1。当状态具有四个状态时(空闲态、地址态、控制态及数据态),状态码一共有四位,空闲态的状态码例如为0001;地址态的状态码例如为0010、控制态的状态码例如为0100;数据态的状态码例如为1000。这仅仅是本发明示意性的实施例,状态的数量及对应的状态码并非以此为限。
由此,通过使得每个状态对应的状态码有且仅有一位为1,状态码中1的数量必定为奇数,由此,可以通过奇偶校验来判断状态码是否准确。考虑到状态码中出错的位数不会超过1个,因此,仅通过奇偶校验即可快速判断状态码是否准确。例如,若所述奇偶校验位表示所述状态机的下一状态的状态码(如1100)中1的位数为偶数,则可以直接确定所述状态机的下一状态的状态码出错。
在一些实施例中,上述步骤S130对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位包括如下步骤:
若所述状态机的下一状态的状态码中1的位数为奇数,则所述奇偶校验位为1;
若所述状态机的下一状态的状态码中1的位数为偶数,则所述奇偶校验位为0。
由此,在本实施例中,若奇偶校验位为0,则可以直接确定所述状态机的下一状态的状态码出错。
在又一些实施例中,上述步骤S130对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位包括:
若所述状态机的下一状态的状态码中1的位数为奇数,则所述奇偶校验位为0;
若所述状态机的下一状态的状态码中1的位数为偶数,则所述奇偶校验位为1。
由此,在本实施例中,若奇偶校验位为1,则可以直接确定所述状态机的下一状态的状态码出错。
在本发明的另一个具体实施例中,可以利用独冷编码对状态机的多个状态编码为状态码,每个状态对应的状态码有且仅有一位为0。当状态具有四个状态时(空闲态、地址态、控制态及数据态),状态码一共有四位,空闲态的状态码例如为1110;地址态的状态码例如为1101、控制态的状态码例如为1011;数据态的状态码例如为0111。这仅仅是本发明示意性的实施例,状态的数量及对应的状态码并非以此为限。
由此,通过使得每个状态对应的状态码有且仅有一位为0,状态码中0的数量必定为奇数,由此,可以通过奇偶校验来判断状态码是否准确。考虑到状态码中出错的位数不会超过1个,因此,仅通过奇偶校验即可快速判断状态码是否准确。例如,若所述奇偶校验位表示所述状态机的下一状态的状态码(如1100)中0的位数为偶数,则可以直接确定所述状态机的下一状态的状态码出错。
在一些实施例中,上述步骤S130对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位包括如下步骤:
若所述状态机的下一状态的状态码中1的位数为奇数,则所述奇偶校验位为1;
若所述状态机的下一状态的状态码中1的位数为偶数,则所述奇偶校验位为0。
由此,在本实施例中,若状态码位数为偶数,且奇偶校验位为0,则可以直接确定所述状态机的下一状态的状态码出错;若状态码位数为奇数,且奇偶校验位为0,则可以直接确定所述状态机的下一状态的状态码未出错。
在又一些实施例中,上述步骤S130对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位包括:
若所述状态机的下一状态的状态码中1的位数为奇数,则所述奇偶校验位为0;
若所述状态机的下一状态的状态码中1的位数为偶数,则所述奇偶校验位为1。
由此,在本实施例中,若状态码位数为偶数,且奇偶校验位为1,则可以直接确定所述状态机的下一状态的状态码出错;若状态码位数为奇数,且奇偶校验位为1,则可以直接确定所述状态机的下一状态的状态码未出错。
具体而言,本发明提供的状态机可以参见图2,基于时钟信号203的控制,通过状态码202向组合逻辑204输出当前状态205的状态码。组合逻辑204根据当前状态205的状态码及三位输入(input_0至input_2),输出下一状态206的状态码和四位输出(output_0至output_2)。下一状态206的状态码可以通过奇偶校验位201快速校验。图2仅仅是本发明示意性的实施例,本方法并非以此为限。
具体而言,在本发明的一个具体实例中,状态机的各个状态按图3所示箭头转换。在一个实现中,当确定所述状态机的下一状态的状态码出错,则所述状态机抛弃所述下一状态的状态码,并使所述状态机的下一状态为空闲态,如图4所示,即只要校验发现状态码出错,无论当前状态是空闲态301、地址态302、控制态303还是数据态304,都使得状态机的下一状态为空闲态301,具备安全导向。
在另一个实现中,当确定所述状态机的下一状态的状态码出错,则所述状态机抛弃所述下一状态的状态码,并使所述状态机的下一状态仍为当前状态,如图5所示,即只要校验发现状态码出错,无论当前状态是空闲态301、地址态302、控制态303还是数据态304,都使得状态机的下一状态与上一状态相同,但如果校验发现状态码恢复正常,状态机又可以恢复常规流程。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
本发明提供的状态机及其状态机的控制方法具有如下优势:
本发明通过采用每个状态对应的状态码有且仅有一位与其它位不同的方式对状态进行编码,并相应地采用奇偶校验位进行状态码校验,由此解决现有技术中无法判断状态机在状态变化过程中是否出错的问题,实现状态码的快速校验。此外,本发明还提供了状态码出错时的两种处理方式,使所述状态机的下一状态为空闲态或者使所述状态机的下一状态仍为当前状态,由此,可以减少由于状态机状态码出错产生的资源浪费,提高状态机的稳定性,在重试当前状态的实现中,当状态码正确时,可自动恢复,进一步提高了状态机的容错使用体验。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种状态机的控制方法,其特征在于,包括:
利用对状态机的多个状态编码为状态码,每个状态对应的状态码有且仅有一位与其它位不同,所述状态码的位数与所述状态机的状态数量相同;
所述状态机当前状态的状态码与输入数据经由组合逻辑获得状态机的下一状态的状态码及输出数据;
对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位;以及
根据所述奇偶校验位确定所述状态机的下一状态的状态码是否出错。
2.根据权利要求1所述的状态机的控制方法,其特征在于,利用独热编码对状态机的多个状态编码为状态码,每个状态对应的状态码有且仅有一位为1。
3.根据权利要求2所述的状态机的控制方法,其特征在于,若所述奇偶校验位表示所述状态机的下一状态的状态码中1的位数为偶数,则确定所述状态机的下一状态的状态码出错。
4.根据权利要求1所述的状态机的控制方法,其特征在于,利用独冷编码对状态机的多个状态编码为状态码,每个状态对应的状态码有且仅有一位为0。
5.根据权利要求4所述的状态机的控制方法,其特征在于,若所述奇偶校验位表示所述状态机的下一状态的状态码中0的位数为偶数,则确定所述状态机的下一状态的状态码出错。
6.根据权利要求1至5任一项所述的状态机的控制方法,其特征在于,所述对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位包括:
若所述状态机的下一状态的状态码中1的位数为奇数,则所述奇偶校验位为1;
若所述状态机的下一状态的状态码中1的位数为偶数,则所述奇偶校验位为0。
7.根据权利要求1至5任一项所述的状态机的控制方法,其特征在于,所述对所述状态机的下一状态的状态码的进行奇偶校验获得一奇偶校验位包括:
若所述状态机的下一状态的状态码中1的位数为奇数,则所述奇偶校验位为0;
若所述状态机的下一状态的状态码中1的位数为偶数,则所述奇偶校验位为1。
8.根据权利要求3或5所述的状态机的控制方法,其特征在于,若确定所述状态机的下一状态的状态码出错,则所述状态机抛弃所述下一状态的状态码,并使所述状态机的下一状态为空闲态。
9.根据权利要求3或5所述的状态机的控制方法,其特征在于,若确定所述状态机的下一状态的状态码出错,则所述状态机抛弃所述下一状态的状态码,并使所述状态机的下一状态仍为当前状态,直到确定所述状态机的下一状态的状态码正常。
10.一种状态机,其特征在于,采用如权利要求1至9任一项所述的状态机的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810945916.2A CN109213626A (zh) | 2018-08-20 | 2018-08-20 | 一种状态机及其状态机的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810945916.2A CN109213626A (zh) | 2018-08-20 | 2018-08-20 | 一种状态机及其状态机的控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109213626A true CN109213626A (zh) | 2019-01-15 |
Family
ID=64989264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810945916.2A Pending CN109213626A (zh) | 2018-08-20 | 2018-08-20 | 一种状态机及其状态机的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109213626A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828551A (zh) * | 2006-04-13 | 2006-09-06 | 电子科技大学 | 一种高速事务级软硬件协同仿真方法 |
CN101512492A (zh) * | 2005-12-15 | 2009-08-19 | 网络装置公司 | 用于实现从存储阵列中的三重故障中高效恢复的三重奇偶校验技术 |
US20120036415A1 (en) * | 2010-08-04 | 2012-02-09 | Oren Shafrir | Systems and Methods for Performing Forward Error Correction |
US20130080710A1 (en) * | 2011-09-28 | 2013-03-28 | Emc Corporation | Hardware method for detecting timeout conditions in a large number of data connections |
CN105760250A (zh) * | 2016-02-04 | 2016-07-13 | 北京时代民芯科技有限公司 | 一种具有码流纠检错功能的单粒子加固fpga配置电路 |
CN205647493U (zh) * | 2016-04-15 | 2016-10-12 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种自纠正多位错误的有限状态机电路 |
-
2018
- 2018-08-20 CN CN201810945916.2A patent/CN109213626A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101512492A (zh) * | 2005-12-15 | 2009-08-19 | 网络装置公司 | 用于实现从存储阵列中的三重故障中高效恢复的三重奇偶校验技术 |
CN1828551A (zh) * | 2006-04-13 | 2006-09-06 | 电子科技大学 | 一种高速事务级软硬件协同仿真方法 |
US20120036415A1 (en) * | 2010-08-04 | 2012-02-09 | Oren Shafrir | Systems and Methods for Performing Forward Error Correction |
US20130080710A1 (en) * | 2011-09-28 | 2013-03-28 | Emc Corporation | Hardware method for detecting timeout conditions in a large number of data connections |
CN105760250A (zh) * | 2016-02-04 | 2016-07-13 | 北京时代民芯科技有限公司 | 一种具有码流纠检错功能的单粒子加固fpga配置电路 |
CN205647493U (zh) * | 2016-04-15 | 2016-10-12 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种自纠正多位错误的有限状态机电路 |
Non-Patent Citations (1)
Title |
---|
李秀霞等: "《电子系统EDA设计实训》", 30 June 2011 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zeng et al. | Finite state machine synthesis with concurrent error detection | |
Mitra et al. | Word-voter: a new voter design for triple modular redundant systems | |
CN103294049B (zh) | 用于基于签名的冗余比较的系统和方法 | |
Littlewood et al. | Likelihood function of a debugging model for computer software reliability | |
CN107632590B (zh) | 一种基于优先级的底事件排序方法 | |
Agyekum et al. | Error-correcting unordered codes and hardware support for robust asynchronous global communication | |
CA2641682C (en) | High speed redundant data processing system | |
Levin et al. | Survivable self-checking sequential circuits | |
Fisman et al. | On verifying fault tolerance of distributed protocols | |
CN109213626A (zh) | 一种状态机及其状态机的控制方法 | |
CN104849651B (zh) | 一种硬件电路的在线检测逻辑单元 | |
CN104615510B (zh) | 基于可编程器件的双模冗余容错方法 | |
Yang | Fault tolerance in asynchronous sequential machines using output feedback control | |
Ayache et al. | A reliability model for error correcting memory systems | |
Nepal et al. | Optimizing noise-immune nanoscale circuits using principles of Markov random fields | |
Sooraj et al. | Fault tolerant FSM on FPGA using SEC-DED code algorithm | |
CN113051581A (zh) | 一种高度综合化复杂软件安全性分析方法 | |
CN107450516B (zh) | 一种基于元件的闭环测试方法 | |
Narayanasamy et al. | Design of Crosstalk Prevention Coding scheme based on Quintuplicated Manchester error correction method for Reliable on chip Interconnects | |
Campelo et al. | Dependability evaluation of fault tolerant architectures in distributed industrial control systems | |
CN112507641B (zh) | 一种集成电路交替式验证方法及系统 | |
Morrison et al. | Arbitration and reversibility of parallel delay-insensitive modules | |
CN112286083B (zh) | 一种控制电路 | |
Zandevakili et al. | Probabilistic transfer matrix with mixed binary-decimal coding for logic circuit reliability analysis | |
Taube et al. | Fault tolerant implementation of a SpaceWire interface |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190115 |