我无法确定 Q1 和 Q2 的布尔方程。我所做的是将值输入到卡诺图中。但是由于状态图只包含 3 个状态(00、01 和 11),我有点不确定如何设置卡诺。我知道如果它有四个状态(00、01、11 和 10)会是什么样子。
这就是我的卡诺的样子,虽然它可能是错误的
编辑:我应该在我的卡诺中添加最后一行 (10) 并且只输入不关心吗?
我无法确定 Q1 和 Q2 的布尔方程。我所做的是将值输入到卡诺图中。但是由于状态图只包含 3 个状态(00、01 和 11),我有点不确定如何设置卡诺。我知道如果它有四个状态(00、01、11 和 10)会是什么样子。
这就是我的卡诺的样子,虽然它可能是错误的
编辑:我应该在我的卡诺中添加最后一行 (10) 并且只输入不关心吗?
我会说,K-map 可以作为草稿,但我建议将每个输出变量(“新”Q_1
和Q_0
状态图的下一步中)制作自己的 K-map。
这样,您可以分别最小化每个函数。
我以这种方式填写了真值表:
+-----------------++-----------+
input variables || next state
+-----+-----+-----++-----+-----+
| Q_1 | Q_0 | x || Y_1 | Y_0 |
+-----+-----+-----++-----+-----+
| 0 | 0 | 0 || 0 | 1 |
| 0 | 0 | 1 || 0 | 0 |
| 0 | 1 | 0 || 0 | 0 |
| 0 | 1 | 1 || 1 | 1 |
+-----+-----+-----++-----+-----+
| 1 | 0 | 0 || X | X |
| 1 | 0 | 1 || X | X |
| 1 | 1 | 0 || 0 | 0 |
| 1 | 1 | 1 || 1 | 1 |
+-----+-----+-----++-----+-----+
确定下一个状态的输出函数(Y_1
作为“新”下一个Q_1
,Y_0
作为“新”下一个Q_0
)是:
由于变量的顺序,卡诺图中的索引与真值表的行相对应。
另请注意,我使用“dont-care”X 输出(用于10
状态)来最小化第二个函数(Q_0
)。
机器应该(理论上)永远不会进入“不关心”状态,因此您不必担心在函数中使用它。
如果不圈出X
函数Y_0
会更长:Y_0 = ¬x·¬Q_1·¬Q_0 + x·Q_0
. 与X
它是唯一的:Y_0 = ¬x·¬Q_0 + x·Q_0
。
如果您觉得不清楚,请随时在评论中提问。