CN103544132B - 一种可重构状态机的实现方法及装置 - Google Patents

一种可重构状态机的实现方法及装置 Download PDF

Info

Publication number
CN103544132B
CN103544132B CN201210245677.2A CN201210245677A CN103544132B CN 103544132 B CN103544132 B CN 103544132B CN 201210245677 A CN201210245677 A CN 201210245677A CN 103544132 B CN103544132 B CN 103544132B
Authority
CN
China
Prior art keywords
state
port ram
address
dual
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
Application number
CN201210245677.2A
Other languages
English (en)
Other versions
CN103544132A (zh
Inventor
周恒箴
鬲莉
张永智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Intelligent IoT Technology Co Ltd
Original Assignee
ZTE Intelligent IoT Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Intelligent IoT Technology Co Ltd filed Critical ZTE Intelligent IoT Technology Co Ltd
Priority to CN201210245677.2A priority Critical patent/CN103544132B/zh
Publication of CN103544132A publication Critical patent/CN103544132A/zh
Application granted granted Critical
Publication of CN103544132B publication Critical patent/CN103544132B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Programmable Controllers (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明提供了一种可重构状态机的实现方法及装置,所述方法包括:中央处理单元通过第一双口RAM的写地址线和写数据线对存储于所述第一双口RAM中的状态转移表进行重构;中央处理单元通过第二双口RAM的写地址线和写数据线对存储于所述第二双口RAM中的信号输出编码表进行重构。本发明通过中央处理器对双口RAM存储状态机的状态转移表和信号输出编码表进行重构,实现状态机的可重构,不仅可以实现Moore型状态机,也可以实现Mealy型状态机,实现结构简单,成本较低,在可编程逻辑器件中可以有效地、动态地重构复杂状态机,易维护,灵活地满足实际设计的需要。

Description

一种可重构状态机的实现方法及装置
技术领域
本发明涉及数字信号控制领域,尤其涉及一种可重构状态机的实现方法及装置。
背景技术
大部分数字系统都包括控制单元和数据单元,控制单元通常由状态机组成,控制单元接收外部信号以及数据单元产生的状态信息,产生控制信号,是实现数字系统可靠、有效控制的重要途径。
有限状态机(Finite State Machine,FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间转移和动作等行为的数学模型,在数字可编程逻辑器件的设计中,有限状态机是由寄存器组和组合逻辑构成的硬件时序电路,其状态在时钟跳变沿时刻从一个状态转向另一个状态,下一个状态不但可以取决于各个输入值,还可以取决于当前状态,这里,所述状态是指由寄存器组的1和0的组合状态构成的有限个状态,通常用二进制数编码表示;同时,状态机可产生在时钟跳变沿时刻进行开关的复杂控制逻辑,是数据逻辑的控制核心。进一步地,根据状态机的输出是否与输入有关,可将状态机分为两大类:Moore型状态机和Mealy型状态机。Moore型状态机的输出仅与当前状态有关;Mealy型状态机的输出不仅与当前状态有关,而且和输入值也有关。
按传统方法设计的状态机是一种定制状态的寄存器,寄存器是固定的,不具备可重构功能,通常只能满足一组控制单元的需求,如果需要实现多组控制单元,就需要设计多个状态机来满足,通常的方法是编译新的可编程逻辑版本,通过中央处理器或者单片机重新加载版本进行状态机的切换,可编程逻辑的加载和配置进入存储器需要较长的时间,不能及时工作,因此,状态机不能动态地、快速地进行重构,造成使用上的不便。
发明内容
有鉴于此,本发明的主要目的在于提供一种可重构状态机的实现方法及装置,能够根据需要实现状态机的重构,降低实现成本。
为达到上述目的,本发明的技术方案是这样实现的:
一种可重构状态机的实现方法,所述方法包括:
中央处理单元通过第一双口随机存储器RAM的写地址线和写数据线对存储于所述第一双口RAM中的状态转移表进行重构;
中央处理单元通过第二双口RAM的写地址线和写数据线对存储于所述第二双口RAM中的信号输出编码表进行重构。
所述中央处理单元通过第一双口RAM的写地址线和写数据线对存储于所述第一双口RAM中的状态转移表进行重构为:
中央处理单元通过第一双口RAM的写地址线和写数据线,以状态机的状态转移条件作为地址进行寻址,将对应的状态机的下一个状态作为数据写入存储于所述第一双口RAM中的状态转移表中。
述中央处理单元通过第二双口RAM的写地址线和写数据线对存储于所述第二双口RAM中的信号输出编码表进行重构为:
中央处理单元通过第二双口RAM的写地址线和写数据线,以输出变换条件作为地址进行寻址,将对应的控制信号作为数据写入存储于所述第二双口RAM中的信号输出编码表中。
所述方法还包括:
地址计算单元根据第一双口RAM输出的状态机的当前状态和接收到的外部输入信号计算得到第一读地址和第二读地址;
所述第一双口RAM根据所述第一读地址读取所述状态转移表,进行状态转移,所述第二双口RAM根据所述第二读地址读取信号输出编码表,输出控制信号。
所述地址计算单元根据第一双口RAM输出的状态机的当前状态和接收到的外部输入信号计算得到第一读地址和第二读地址为:
地址计算单元对接收到的当前状态进行左移位处理,将移位后的当前状态和所述外部输入信号相加,得到第一读地址,其中,所述第一读地址的高位表示状态机的当前状态,所述第一读地址的低位表示状态机当前的输入条件;或对所述外部输入信号进行左移位处理,将所述当前状态和移位后的外部输入信号相加,得到第一读地址,其中,所述第一读地址的高位表示状态机当前的输入条件,所述第一读地址的低位表示状态机的当前状态;
当状态机的状态转移只与状态机的当前状态相关时,将当前状态作为第二读地址进行输出,否则,将所述第一读地址作为第二读地址进行输出。
当地址计算单元将所述第一读地址作为第二读地址进行输出时,所述方法还包括:
将所述第二双口RAM存储的信号输出编码表和所述第一双口RAM存储的状态转移表进行合并,得到状态转移及信号输出编码表,并存储于所述第一双口RAM或第二双口RAM;其中,所述状态转移及信号输出编码表中存储数据的高位或低位表示状态机的下一个状态输出,所述存储数据的低位或高位表示输出的控制信号。
所述第一双口RAM根据所述第一读地址读取所述状态转移表,进行状态转移为:
所述第一双口RAM根据所述第一读地址,读取所述第一读地址对应的存储内容,作为所述状态机的当前状态进行输出;其中,所述第一读地址的高位或低位表示状态机状态转移前的当前状态,所述第一读地址的低位或高位表示状态机的当前外部输入条件。
所述第二双口RAM根据所述第二读地址读取信号输出编码表,输出控制信号为:
所述第二双口RAM根据所述第二读地址,读取所述第二读地址对应的存储内容,并将所述存储内容作为控制信号进行输出;其中,所述第二读地址的高位或低位表示状态机状态转移前的当前状态,所述第二读地址的低位或高位表示状态机的当前输入条件。
所述中央处理单元为中央处理器CPU或单片机。
一种可重构状态机的实现装置,所述装置包括:中央处理单元、第一双口RAM和第二双口RAM;其中,
所述中央处理单元,用于通过所述第一双口RAM的写地址线和写数据线对存储于所述第一双口RAM中的状态转移表进行重构;还用于通过第二双口RAM的写地址线和写数据线对存储于所述第二双口RAM中的信号输出编码表进行重构。
所述中央处理单元,具体用于通过第一双口RAM的写地址线和写数据线,以状态机的状态转移条件作为地址进行寻址,将对应的状态机的下一个状态作为数据写入存储于所述第一双口RAM中的状态转移表中。
所述中央处理单元,具体用于通过第二双口RAM的写地址线和写数据线,以输出变换条件作为地址进行寻址,将对应的控制信号作为数据写入存储于所述第二双口RAM中的信号输出编码表中。
所述装置还包括:地址计算单元;其中,
所述地址计算单元,用于根据第一双口RAM输出的状态机的当前状态和接收到的外部输入信号计算得到第一读地址和第二读地址;
所述第一双口RAM,用于根据所述第一读地址读取所述状态转移表,进行状态转移;
所述第二双口RAM,用于根据所述第二读地址读取信号输出编码表,输出控制信号。
所述地址计算单元,包括移位器、加法器和选择器;其中,
所述移位器,用于对接收到的当前状态或外部输入信号进行移位处理;
所述加法器,用于将移位后的当前状态和所述外部输入信号相加,得到第一读地址;或者将当前状态和移位后的外部输入信号相加,得到第一读地址;
所述选择器,用于当状态机的状态转移只与状态机的当前状态相关时,将当前状态作为第二读地址进行输出,否则,将所述第一读地址作为第二读地址进行输出。
所述第一双口RAM,具体用于根据所述第一读地址,读取所述第一读地址对应的存储内容,作为所述状态机的当前状态进行输出;其中,所述第一读地址的高位或低位表示状态机状态转移前的当前状态,所述第一读地址的低位或高位表示状态机当前的输入条件。
所述第二双口RAM,具体用于根据所述第二读地址,读取所述第二读地址对应的存储内容,并将所述存储内容作为控制信号进行输出;其中,所述第二读地址的高位或低位表示状态机状态转移前的当前状态,所述第二读地址的低位或高位表示状态机当前的输入条件。
所述中央处理单元为中央处理器CPU或单片机。
本发明通过中央处理器对双口RAM存储状态机的状态转移表和信号输出编码表进行重构,实现状态机的可重构,不仅可以实现Moore型状态机,也可以实现Mealy型状态机,实现结构简单,成本较低,在可编程逻辑器件中可以有效地、动态地重构复杂状态机,易维护,灵活地满足实际设计的需要。
附图说明
图1为本发明可重构状态机的实现方法的流程示意图;
图2为本发明可重构状态机的实现方法实施例的具体流程示意图;
图3为本发明可重构状态机的实现装置的结构示意图;
图4为图3所示实现装置的地址计算单元的结构细化示意图;
图5为本发明可重构状态机的实现方法实施例一中Mealy型状态机的状态转移示意图;
图6为本发明可重构状态机的实现方法实施例二中Moore型状态机的状态转移示意图。
具体实施方式
双口随机存储器(Random Access Memory,RAM)具有两套完全独立的数据线、地址线和读写控制线,其最大的特点是存储数据共享,适用于实时的数据缓存。
本发明的基本思想为:中央处理单元通过第一双口RAM的写地址线和写数据线对存储于所述第一双口RAM中的状态转移表进行重构;中央处理单元通过第二双口RAM的写地址线和写数据线对存储于所述第二双口RAM中的信号输出编码表进行重构。
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。
图1示出了本发明数据同步的方法实现流程示意,如图1所示,所述方法包括下述步骤:
步骤101,中央处理单元通过第一双口随机存储器RAM的写地址线和写数据线对存储于所述第一双口RAM中的状态转移表进行重构;
这里,所述状态转移表包括双口RAM地址和存储内容两个表项,其中,所述双口RAM地址中的高位(或低位)表示所述状态机状态转移前的当前状态;所述双口RAM地址中的低位(或高位)表示状态机当前的外部输入条件;所述存储内容表示所述状态机状态转移的下一个状态。当所述状态机含有最多的状态数量为N,最多的输入信号数量为X时,则该状态转移表的深度为2X+M,存储内容的数据位宽为M,其中,所述M的取值大于等于Log2N。
另外,当状态机的状态数量小于2M时,不可避免地会出现剩余状态。而当该剩余状态没有进行合理的处理时,状态机可能进入不可预测的状态,后果是状态机对外界出现短暂失控或者始终无法摆脱剩余状态而失去正常功能。因此,通常将剩余状态所在的地址空间设置为:所述地址空间的值一般可指向状态机的初始态,使状态机在出错时仍然能回到初始状态;而且应当理解,当状态机的输入信号的有效位数小于预留的输入信号位数X时,在状态表中会产生冗余的地址空间,但这些地址空间的值是明确的,因为这些多余位数的值是0还是1将不会应该影响状态机的状态转移结果。
具体地,中央处理单元通过第一双口RAM的写地址线和写数据线,以状态机的状态转移条件作为地址进行寻址,将对应的状态机的下一个状态作为数据写入存储于所述第一双口RAM中的状态转移表中;这里,所述状态转移条件包括所述状态机的当前状态和当前的外部输入条件,根据状态转移条件对所述状态转移表的双口RAM地址表项进行寻址;将对应的所述状态机的下一个状态写入所述状态转移表的存储内容表项。这段有点问题,双口RAM存储的数据是写入的,但是地址不是,地址是本身固有的,如果你选择了固定的地址,只要对相应的地址的内容进行写操作即可。修改如下:
步骤102,中央处理单元通过第二双口RAM的写地址线和写数据线对存储于所述第二双口RAM中的信号输出编码表进行重构;
这里,所述信号输出编码表包括双口RAM地址和存储内容两个表项,其中,所述双口RAM地址中的高位(或低位)表示所述状态机状态转移前的当前状态;所述双口RAM地址中的低位(或高位)表示状态机当前的输入条件;所述存储内容表示所述状态机输出的控制信号。当所述状态机输出的控制信号包含最多的数量为K时,所述信号输出编码表的深度为2X +M,存储内容的数据位宽为K。
具体地,中央处理单元通过第二双口RAM的写地址线和写数据线分别将输出变换条件和控制信号写入存储于所述第二双口RAM中的信号输出编码表中;这里,所述输出变换条件包括所述状态机的当前状态和当前的外部输入条件,以输出变换条件作为地址对所述信号输出编码表的双口RAM地址表项进行寻址,将对应的所述控制信号作为数据写入所述信号输出编码表的存储内容表项。
进一步地,如图2所示,所述方法不仅可以包括如上所述的步骤101-102,还可以包括下述步骤:
步骤103,地址计算单元根据第一双口RAM输出的状态机的当前状态和接收到的外部输入信号计算得到第一读地址和第二读地址;
这里,地址计算单元对接收到的当前状态进行左移位处理,将移位后的当前状态和所述输入信号相加,得到第一读地址;这里,所述移位处理具体是将用二进制表示的当前状态左移X位,这里,所述X为接收到的输入信号个数,此时,所述第一读地址的高位表示状态机的当前状态,所述第一读地址的低位表示状态机当前的输入条件;应当理解,所述地址计算单元还可以对所述外部输入信号进行左移位处理,将所述当前状态和移位后的外部输入信号相加,得到第一读地址,这里,所述移位处理具体是将用二进制表示的输入信号左移M位,这里,所述M为存储内容的数据位宽,所述第一读地址的高位表示状态机当前的输入条件,所述第一读地址的低位表示状态机的当前状态;
当状态机的状态转移只与状态机的当前状态相关时,即所述状态机都是Moore型状态机时,将当前状态作为第二读地址进行输出;否则,即所述状态机包含Mealy型状态机,将所述第一读地址作为第二读地址进行输出。
进一步地,当所述地址计算单元将所述第一读地址作为第二读地址进行输出时,即当所述状态机包含Mealy型状态机时,还可以将所述第二双口RAM存储的信号输出编码表和所述第一双口RAM存储的状态转移表进行合并,得到状态转移及信号输出编码表,并存储于所述第一双口RAM或第二双口RAM;其中,所述状态转移及信号输出编码表的深度为2X+M,存储内容的数据位宽为(K+M),所述存储内容的高位(或低位)表示状态机的下一个状态输出,所述存储数据的低位(或高位)表示输出的控制信号。
步骤104,所述第一双口RAM根据所述第一读地址读取所述状态转移表,进行状态转移,所述第二双口RAM根据所述第二读地址读取信号输出编码表,输出控制信号;
具体地,所述第一双口RAM根据所述第一读地址,读取所述第一读地址对应的存储内容,作为所述状态机的当前状态进行输出;其中,所述第一读地址的高位(或低位)表示状态机状态转移前的当前状态,所述第一读地址的低位(或高位)表示状态机当前的外部输入条件。
所述第二双口RAM根据所述第二读地址,读取所述第二读地址对应的存储内容,并将所述存储内容作为控制信号进行输出;其中,所述第二读地址的高位(或低位)表示状态机状态转移前的当前状态,所述第二读地址的低位(或高位)表示状态机当前的外部输入条件。
另外,应当理解,所述步骤101-102和步骤103-104没有必然的先后顺序。
图3示出了本发明可重构状态机的实现装置的结构,如图3所示,所述装置包括:中央处理单元31、第一双口RAM 32和第二双口RAM 33;其中,
所述中央处理单元31,用于通过所述第一双口RAM 32的写地址线和写数据线对存储于所述第一双口RAM 32中的状态转移表进行重构;还用于通过第二双口RAM 33的写地址线和写数据线对存储于所述第二双口RAM 33中的信号输出编码表进行重构。这里,所述状态转移表包括双口RAM地址和存储内容两个表项,其中,所述双口RAM地址中的高位(或低位)表示所述状态机状态转移前的当前状态;所述双口RAM地址中的低位(或高位)表示状态机当前的外部输入条件;所述存储内容表示所述状态机状态转移的下一个状态。
所述信号输出编码表包括双口RAM地址和存储内容两个表项,其中,所述双口RAM地址中的高位(或低位)表示所述状态机状态转移前的当前状态;所述双口RAM地址中的低位(或高位)表示状态机当前的外部输入条件;所述存储内容表示所述状态机输出的控制信号。
进一步地,所述中央处理单元31,具体用于通过第一双口RAM 32的写地址线和写数据线,以状态机的状态转移条件作为地址进行寻址,将状态机的下一个状态作为数据写入存储于所述第一双口RAM 32中的状态转移表中。
进一步地,所述中央处理单元31,具体用于通过第二双口RAM 33的写地址线和写数据线,以输出变换条件为地址进行寻址,将控制信号作为数据写入存储于所述第二双口RAM 33中的信号输出编码表中。
进一步地,所述装置还包括:地址计算单元34;其中,
所述地址计算单元34,用于根据第一双口RAM 32输出的状态机的当前状态和接收到的外部输入信号计算得到第一读地址和第二读地址;
所述第一双口RAM 32,用于根据所述第一读地址读取所述状态转移表,进行状态转移;
所述第二双口RAM 33,用于根据所述第二读地址读取信号输出编码表,输出控制信号。
进一步地,参照图4,所述地址计算单元34包括移位器341、加法器342和选择器343;其中,
所述移位器341,用于对接收到的当前状态或外部输入信号进行移位处理;这里,所述移位处理具体是将用二进制表示的当前状态左移X位,这里,所述X为接收到的输入信号的个数;或者,将用二进制表示的输入信号左移M位,这里,所述M为存储内容的数据位宽;
所述加法器342,用于将移位后的当前状态和所述外部输入信号相加,得到第一读地址;或者将当前状态和移位后的外部输入信号相加,得到第一读地址;
所述选择器343,用于当状态机的状态转移只与状态机的当前状态相关时,将当前状态作为第二读地址进行输出,否则,将所述第一读地址作为第二读地址进行输出。
其中,所述第一双口RAM 32,具体用于根据所述第一读地址,读取所述第一读地址对应的存储内容,作为所述状态机的当前状态进行输出;其中,所述第一读地址的高位(或低位)表示状态机状态转移前的当前状态,所述第一读地址的低位(或高位)表示状态机当前的输入条件。
其中,所述第二双口RAM 33,具体用于根据所述第二读地址,读取所述第二读地址对应的存储内容,并将所述存储内容作为控制信号进行输出;其中,所述第二读地址的高位(或低位)表示状态机状态转移前的当前状态,所述第二读地址的低位(或高位)表示状态机当前的输入条件。
进一步地,所述中央处理单元具体可以由中央处理器(CPU)或单片机实现。
下面结合图5和图6分别示出的本发明可重构状态机的实现方法实施例一中Mealy型状态机和实施例二中Moore型状态机的状态转移示意进行进一步说明。
图5示出了Mealy型状态机的状态转移,该状态机共包含四个状态:A、B、C和D,外部有二个输入信号I0和I1。状态A有三个分支:当I0=0时,状态A保持;当I0=1、I1=0的时,从状态A跳转到状态B;当I0=1、I1=1时,从状态A跳转到状态C;状态B的下一个状态为C;状态C的下一个状态为D;状态D有2个分支:当I0=0时,从状态D跳转到状态A;当I0=1时,状态D保持。同时,该状态机对应的输入信号、当前状态和输出信号的关系如表一所示:
表一
图6示出了Moore型状态机的状态转移,该状态机也包含四个状态:A、B、C和D,外部有二个输入信号I0和I1。状态A有二个分支:当I1=0时,状态A保持;当I1=1时,从状态A跳转到状态B;状态B的下一个状态为C;状态C的下一个状态为D;状态D有二个分支:当I0=0时,从状态D跳转到状态A;当I0=1时,从状态D跳转到状态B。同时,该状态机对应的当前状态和输出信号的关系如表二所示:
当前状态 输出信号
A(00) C0=0;C1=0
B(01) C0=0;C1=1
C(10) C0=1;C1=0
D(11) C0=1;C1=1
表二
具体地,当要重构如图5和图6所示的状态机时,包括下述步骤:
步骤一,中央处理单元可以通过写地址线和写数据线端口对第一RAM中的状态转移表进行重构修改:根据这两个状态机的不同状态转移条件和下一个状态的对应关系进行重构。
具体地,所述状态转移表的深度为2X+M,数据位宽为M,其中M为二进制数,满足2M大于等于N。Mealy型状态机和Moore型状态机都含有四个不同状态(N=4),和2个外部输入信号(X=2),因此,所述状态转移表的深度为16、数据位宽为2。
具体地,所述四个工作状态:状态A、状态B、状态C和状态D,可以分别用二进制数:00、01、10、11表示,所述状态转移表中双口RAM地址的高二位地址表示当前状态,低二位地址表示输入条件,即输入信号:I0和I1,其中,I0在高位。
步骤二,中央处理单元可以通过写地址线和写数据线端口对信号输出编码表进行重构:根据这两个状态机的不同的状态转移条件和输出信号的对应关系进行重构;
具体地,由图5和图6可以看出,Mealy型状态机的输出控制信号的数量为3,Moore型状态机的输出数量为2,因此,最多的输出数量K为3。由于包含有Mearly型状态机,因此,所述信号输出编码表的深度为2X+M=16(地址位宽为4),数据位宽为3。
最终可以得到分别如表三和表五所示的Mealy型状态机的状态转移表和信号输出编码表、分别如表四和表六所示的Moore型状态机的状态转移表和信号输出编码表:
表三
其中,表三中第1列为双口RAM地址,第2和第3列分别为该双口RAM地址中高、低位的注释(当前状态和输入条件)、第4列为存储内容,表示状态机的下一个状态,具体地:
1)当双口RAM地址为0000和0001,状态机的当前状态为A(00),外部的输入条件I0I1分别为00和01,根据图5,状态A在外部条件I0为0时,状态保持为A(00),因此0000和0001地址下存储的数据都为00;当双口RAM地址为0010时,当前状态为A(00),外部的输入条件I0I1为10,根据图5,下一个状态为B(01),0010地址存储的数据的值为01;当地址为0011时,当前状态为A(00),外部的输入条件I0I1为11,根据图5,下一个状态为C(10),因此该地址存储的数据的值为10;
2)当双口RAM地址为0100~0111,状态机的当前状态为B(01),由于状态B的下一个状态只能是D(11),因此该段地址存储的数据的值都为11;
3)地址为1000~1011,当前状态为C(10),由于状态C的下一个状态是D(11),因此该段地址的存储数据都为11。
4)当双口RAM地址为1100~1101,状态机的当前状态为D(11),当外部的输入条件I0为0,根据图5,下一个状态跳转到A(00),这两个地址的存储内容都为00;当双口RAM地址为1110~1111,当前状态为D,外部的输入条件I0为1,根据图5,下一个状态保持为D(11),因此1110和1111地址的存储数据都为11。
得到如表四所示的Moore型状态机的状态转移表:
表四
其中,表四中第1列双口RAM地址,第2和第3列分别为该双口RAM地址中高、低位的注释(当前状态和输入条件)、第4列为存储内容,表示状态机的下一个状态,具体地:
1)当双口RAM地址为0000和0010,状态机的当前状态为A(00),外部的输入条件I0I1分别为00和10。根据图6,状态A在外部条件I1=0,状态保持为A(00),因此这两个地址的存储数据都为00;当双口RAM地址为0001和0011时,当前状态为A(00),外部的输入条件I0I1分别为01和11,根据图6,下一个状态为B(01),因此,0001和0011地址的存储数据都为01。
2)当双口RAM地址为0100~0111,表示为当前状态为B(01),由于状态B的下一个状态只能是C(10),因此该段地址的存储数据都为10。
3)当双口RAM地址为1000~1011,当前状态为C(10),由于状态C的下一个状态是D(11),因此该段地址的存储数据都为11。
4)当双口RAM地址为1100~1101,当前状态为D(11),外部的输入条件I0为0,根据图6,下一个状态跳转到A(00),这两个地址存储的数据值都为00;当双口RAM地址为1110~1111,当前状态为D(11),外部的输入条件I0为1,根据图6,下一个状态跳转为B(01),因此1110和1111地址存储的数据内容都为01。
Mealy型状态机的信号输出编码表如表五所示:
表五
其中,表五中第1列为双口RAM地址,第2和第3列分别为该双口RAM地址中高、低位的注释(当前状态和输入条件),第4列为在当前状态和输入条件下的需要输出的控制信号(C0、C1、C2),第5列为存储内容,根据第4列进行编码,按照C0、C1、C2顺序进行编码,C0在高位,得到第5列的数据。
Moore型状态机的信号输出编码表如表六所示:
表六
其中,表六中第1列为双口RAM地址,第2和第3列分别为该双口RAM地址中高、低位的注释(当前状态和输入条件),第4列为在当前状态和输入条件下的需要输出的控制信号(C0、C1、C2),由表二可知,所述第二个有限状态机的输出信号只有C0、C1,由于表六中的数据位宽为3,必须将最低位进行填补,在本实施例中将C2填充为0,如表六中的第4列数据所示,第5列再根据第4列进行编码。
步骤三,地址计算单元接收第一双口RAM根据状态转移表输出的读数据(当前状态)和2个输入信号(I0、I1)进行计算,生成用于读取第一双口RAM的状态转移表的第一读地址和用于读取第二双口RAM的信号输出编码表的第二读地址。
具体地,地址计算单元的移位器首先对当前状态进行移位处理:当前状态(二进制数据)左移2位,再输出到地址计算单元的加法器中;2个输入信号(I0、I1)组成二进制数据也送入加法器中,所述I0、I1和移位器的输出数据相加,输出第一读地址。第一读地址和当前状态又同时输入到地址计算单元的选择器中,由于存在Mearly型状态机的,因此,选择器将第一读地址作为第二读地址进行输出。
步骤四,地址计算单元将第一读地址信号输入到第一双口RAM,所述第一双口RAM在自身存储的状态转换表中进行寻址,状态机根据第一读地址进行状态转移,输出状态机的下一个状态;
地址计算单元将第二读地址信号输入第二双口RAM,所述第二双口RAM在自身存储的信号输出编码表中进行寻址,状态机根据第二读地址进行输出转换,输出状态机的控制信号(C0、C1、C2)。
综上所述,本发明可以利用中央处理器对双口RAM存储状态机的状态转移表和信号输出编码表进行重构,实现状态机的可重构,不仅可以实现Moore型状态机,也可以实现Mealy型状态机。使用时,CPU可以根据实际情况进行修改和调用,结构简单,在可编程逻辑器件中可以有效地、动态地重构复杂状态机,在设计上容易维护,容易满足实际设计的需要。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (15)

1.一种可重构状态机的实现方法,其特征在于,所述方法包括:
中央处理单元通过第一双口随机存储器RAM的写地址线和写数据线对存储于所述第一双口RAM中的状态转移表进行重构;
中央处理单元通过第二双口RAM的写地址线和写数据线对存储于所述第二双口RAM中的信号输出编码表进行重构;
所述方法还包括:
地址计算单元根据第一双口RAM输出的状态机的当前状态和接收到的外部输入信号计算得到第一读地址和第二读地址;
所述第一双口RAM根据所述第一读地址读取所述状态转移表,进行状态转移,所述第二双口RAM根据所述第二读地址读取信号输出编码表,输出控制信号;
其中,当状态机的状态转移只与状态机的当前状态相关时,将当前状态作为第二读地址进行输出,否则,将所述第一读地址作为第二读地址进行输出。
2.根据权利要求1所述的方法,其特征在于,所述中央处理单元通过第一双口RAM的写地址线和写数据线对存储于所述第一双口RAM中的状态转移表进行重构为:
中央处理单元通过第一双口RAM的写地址线和写数据线,以状态机的状态转移条件作为地址进行寻址,将对应的状态机的下一个状态作为数据写入存储于所述第一双口RAM中的状态转移表中。
3.根据权利要求1所述的方法,其特征在于,所述中央处理单元通过第二双口RAM的写地址线和写数据线对存储于所述第二双口RAM中的信号输出编码表进行重构为:
中央处理单元通过第二双口RAM的写地址线和写数据线,以输出变换条件作为地址进行寻址,将对应的控制信号作为数据写入存储于所述第二双口RAM中的信号输出编码表中。
4.根据权利要求1所述的方法,其特征在于,所述地址计算单元根据第一双口RAM输出的状态机的当前状态和接收到的外部输入信号计算得到第一读地址为:
地址计算单元对接收到的当前状态进行左移位处理,将移位后的当前状态和所述外部输入信号相加,得到第一读地址,其中,所述第一读地址的高位表示状态机的当前状态,所述第一读地址的低位表示状态机当前的输入条件;或对所述外部输入信号进行左移位处理,将所述当前状态和移位后的外部输入信号相加,得到第一读地址,其中,所述第一读地址的高位表示状态机当前的输入条件,所述第一读地址的低位表示状态机的当前状态。
5.根据权利要求4所述的方法,其特征在于,当地址计算单元将所述第一读地址作为第二读地址进行输出时,所述方法还包括:
将所述第二双口RAM存储的信号输出编码表和所述第一双口RAM存储的状态转移表进行合并,得到状态转移及信号输出编码表,并存储于所述第一双口RAM或第二双口RAM;其中,所述状态转移及信号输出编码表中存储数据的高位或低位表示状态机的下一个状态输出,所述存储数据的低位或高位表示输出的控制信号。
6.根据权利要求1所述的方法,其特征在于,所述第一双口RAM根据所述第一读地址读取所述状态转移表,进行状态转移为:
所述第一双口RAM根据所述第一读地址,读取所述第一读地址对应的存储内容,作为所述状态机的当前状态进行输出;其中,所述第一读地址的高位或低位表示状态机状态转移前的当前状态,所述第一读地址的低位或高位表示状态机的当前外部输入条件。
7.根据权利要求1所述的方法,其特征在于,所述第二双口RAM根据所述第二读地址读取信号输出编码表,输出控制信号为:
所述第二双口RAM根据所述第二读地址,读取所述第二读地址对应的存储内容,并将所述存储内容作为控制信号进行输出;其中,所述第二读地址的高位或低位表示状态机状态转移前的当前状态,所述第二读地址的低位或高位表示状态机的当前输入条件。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述中央处理单元为中央处理器CPU或单片机。
9.一种可重构状态机的实现装置,其特征在于,所述装置包括:中央处理单元、第一双口RAM和第二双口RAM;其中,
所述中央处理单元,用于通过所述第一双口RAM的写地址线和写数据线对存储于所述第一双口RAM中的状态转移表进行重构;还用于通过第二双口RAM的写地址线和写数据线对存储于所述第二双口RAM中的信号输出编码表进行重构;
所述装置还包括:地址计算单元;其中,
所述地址计算单元,用于根据第一双口RAM输出的状态机的当前状态和接收到的外部输入信号计算得到第一读地址和第二读地址;
所述第一双口RAM,用于根据所述第一读地址读取所述状态转移表,进行状态转移;
所述第二双口RAM,用于根据所述第二读地址读取信号输出编码表,输出控制信号;
其中,所述地址计算单元,包括:选择器,用于当状态机的状态转移只与状态机的当前状态相关时,将当前状态作为第二读地址进行输出,否则,将所述第一读地址作为第二读地址进行输出。
10.根据权利要求9所述的装置,其特征在于,所述中央处理单元,具体用于通过第一双口RAM的写地址线和写数据线,以状态机的状态转移条件作为地址进行寻址,将对应的状态机的下一个状态作为数据写入存储于所述第一双口RAM中的状态转移表中。
11.根据权利要求9所述的装置,其特征在于,所述中央处理单元,具体用于通过第二双口RAM的写地址线和写数据线,以输出变换条件作为地址进行寻址,将对应的控制信号作为数据写入存储于所述第二双口RAM中的信号输出编码表中。
12.根据权利要求9所述的装置,其特征在于,所述地址计算单元,还包括移位器、加法器;其中,
所述移位器,用于对接收到的当前状态或外部输入信号进行移位处理;
所述加法器,用于将移位后的当前状态和所述外部输入信号相加,得到第一读地址;或者将当前状态和移位后的外部输入信号相加,得到第一读地址。
13.根据权利要求9所述的装置,其特征在于,所述第一双口RAM,具体用于根据所述第一读地址,读取所述第一读地址对应的存储内容,作为所述状态机的当前状态进行输出;其中,所述第一读地址的高位或低位表示状态机状态转移前的当前状态,所述第一读地址的低位或高位表示状态机当前的输入条件。
14.根据权利要求9所述的装置,其特征在于,所述第二双口RAM,具体用于根据所述第二读地址,读取所述第二读地址对应的存储内容,并将所述存储内容作为控制信号进行输出;其中,所述第二读地址的高位或低位表示状态机状态转移前的当前状态,所述第二读地址的低位或高位表示状态机当前的输入条件。
15.根据权利要求9至14任一项所述的装置,其特征在于,所述中央处理单元为中央处理器CPU或单片机。
CN201210245677.2A 2012-07-16 2012-07-16 一种可重构状态机的实现方法及装置 Active CN103544132B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210245677.2A CN103544132B (zh) 2012-07-16 2012-07-16 一种可重构状态机的实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210245677.2A CN103544132B (zh) 2012-07-16 2012-07-16 一种可重构状态机的实现方法及装置

Publications (2)

Publication Number Publication Date
CN103544132A CN103544132A (zh) 2014-01-29
CN103544132B true CN103544132B (zh) 2017-03-01

Family

ID=49967602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210245677.2A Active CN103544132B (zh) 2012-07-16 2012-07-16 一种可重构状态机的实现方法及装置

Country Status (1)

Country Link
CN (1) CN103544132B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105812365B (zh) * 2016-03-12 2018-09-28 武汉芯泰科技有限公司 一种可编程可重构的帧处理器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4984192A (en) * 1988-12-02 1991-01-08 Ultrasystems Defense Inc. Programmable state machines connectable in a reconfiguration switching network for performing real-time data processing
CN101072090A (zh) * 2006-05-08 2007-11-14 中兴通讯股份有限公司 一种t1系统中扩展超帧帧同步的方法和装置
CN201178429Y (zh) * 2008-04-11 2009-01-07 中国科学院沈阳自动化研究所 基于三元内容寻址存储器通用现场总线接收机
CN101553785A (zh) * 2006-12-08 2009-10-07 吴灿炜 状态机以及实现状态机的系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4984192A (en) * 1988-12-02 1991-01-08 Ultrasystems Defense Inc. Programmable state machines connectable in a reconfiguration switching network for performing real-time data processing
CN101072090A (zh) * 2006-05-08 2007-11-14 中兴通讯股份有限公司 一种t1系统中扩展超帧帧同步的方法和装置
CN101553785A (zh) * 2006-12-08 2009-10-07 吴灿炜 状态机以及实现状态机的系统和方法
CN201178429Y (zh) * 2008-04-11 2009-01-07 中国科学院沈阳自动化研究所 基于三元内容寻址存储器通用现场总线接收机

Also Published As

Publication number Publication date
CN103544132A (zh) 2014-01-29

Similar Documents

Publication Publication Date Title
CN102197436B (zh) 用于多电平单元存储器的数据路径,用于存储的方法及用于利用存储器阵列的方法
US20240248712A1 (en) Mask patterns generated in memory from seed vectors
CN109147842B (zh) 同时进行数据路径中计算操作的设备及方法
US5396641A (en) Reconfigurable memory processor
US9240237B2 (en) Semiconductor device and method of writing/reading entry address into/from semiconductor device
JPH0224752A (ja) スマート・メモリ・カード
CN103890857A (zh) 采用环形寄存器的可移位的存储器
US5465275A (en) Efficient utilization of present state/next state registers
US20170262407A1 (en) Reconfigurable data interface unit for compute systems
CN107545914B (zh) 用于智能存储器接口的方法和设备
US10825512B1 (en) Memory reads of weight values
CN109712665B (zh) 存储器及存储器的功能测试方法
CN103853694A (zh) 一种可重构状态机的实现方法
US4162519A (en) Data processor with address allocation to operations
CN103544132B (zh) 一种可重构状态机的实现方法及装置
CN102681820B (zh) 动态分簇的寄存器堆及使用该寄存器堆的可重构计算装置
US20180315484A1 (en) A method for operating a semiconductor memory
JP3872922B2 (ja) 半導体記憶装置及びメモリ混載ロジックlsi
KR20120021247A (ko) 비휘발성 메모리를 위한 수정된 판독 동작
JP5617776B2 (ja) メモリ回路,メモリ装置及びメモリデータの誤り訂正方法
CN101149713A (zh) 存储器访问装置
EP0120371A2 (en) Fault alignment control system and circuits
CN103262029B (zh) 可编程控制器
JP7096070B2 (ja) 多数決処理装置、半導体記憶装置及び情報データの多数決方法
US8261027B2 (en) State transition management device and method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160906

Address after: 300308 Tianjin Airport Economic Zone, Binhai New Area seven East Road No. 2 Zhongxing Industrial Base

Applicant after: ZTE INTELLIGENT IOT TECHNOLOGY Co.,Ltd.

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Applicant before: ZTE Corp.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 401, building 12, east area, airport business park, No. 80, Huanhe North Road, free trade zone (Airport Economic Zone), Binhai New Area, Tianjin 300000

Patentee after: Gaoxing Zhilian Technology Co.,Ltd.

Address before: 300308, Zhongxing Industrial base, 2 East seven, Airport Economic Zone, Tianjin Binhai New Area

Patentee before: ZTE INTELLIGENT IOT TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Room 401, building 12, East Airport Business Park, 80 Huanhe North Road, Tianjin Binhai New Area pilot free trade zone (Airport Economic Zone)

Patentee after: Zte Intelligent Iot Technology Co.,Ltd.

Address before: Room 401, building 12, East Airport Business Park, 80 Huanhe North Road, Tianjin Binhai New Area pilot free trade zone (Airport Economic Zone)

Patentee before: Gaoxing Zhilian Technology Co.,Ltd.