State machine 如何将有限状态机编码为二进制字符串?

State machine 如何将有限状态机编码为二进制字符串?,state-machine,State Machine,如何将有限状态机编码/解码为二进制字符串 F: [0,1,00,01,...] -> [fsm1, fsm2,...], |fsm1|=<|fsm2| Decode: Binary string -> FSM F:[0,1,00,01,…]->[fsm1,fsm2,…],| fsm1 |=FSM 为了表示FSM,状态图可以用点格式编码: 要在硬件中实现FSM,硬件描述语言是合适的工具: 要在软件中实现FSM,可以使用一个或两个查找表捕获机器 对于Mealy机器,一个LUT

如何将有限状态机编码/解码为二进制字符串

F: [0,1,00,01,...] -> [fsm1, fsm2,...], |fsm1|=<|fsm2|
Decode: Binary string -> FSM
F:[0,1,00,01,…]->[fsm1,fsm2,…],| fsm1 |=FSM

为了表示FSM,状态图可以用点格式编码:

要在硬件中实现FSM,硬件描述语言是合适的工具:

要在软件中实现FSM,可以使用一个或两个查找表捕获机器

对于Mealy机器,一个LUT就足够了,其中输出是通过状态转换定义的:每个(状态,输入)组合将索引到一个(状态,输出)元组

摩尔机器——输出由状态决定——需要第二次查找:上表将只生成状态,第二个表将该状态映射到其输出

一旦这些表以您选择的格式(比如JSON)表示,那么序列化应该很容易