【问题标题】:Boolean expression from a State machine diagram状态机图中的布尔表达式
【发布时间】:2017-04-08 13:52:05
【问题描述】:
我无法确定 Q1 和 Q2 的布尔方程。我所做的是将值输入到卡诺图中。但由于状态图仅包含 3 个状态(00、01 和 11),我有点不确定如何设置卡诺。我知道如果它有四个状态(00、01、11 和 10)会是什么样子。
这就是我的卡诺的样子,不过可能是错的
编辑:我应该在我的 Karnaugh 中添加最后一行 (10) 并输入 don't care 吗?
【问题讨论】:
标签:
boolean-expression
karnaugh-map
state-diagram
【解决方案1】:
我会说,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)。
机器应该(理论上)永远不会进入“dont-care”状态,因此您不必担心在函数中使用它。
如果不循环X,Y_0 函数会更长:Y_0 = ¬x·¬Q_1·¬Q_0 + x·Q_0。对于X,它只是:Y_0 = ¬x·¬Q_0 + x·Q_0。
如果您觉得不清楚,请随时在评论中提问。