Логическое выражение из диаграммы конечного автомата

У меня возникли проблемы с определением логического уравнения для Q1 и Q2. Что я сделал, так это ввел значения в карту карно. Но поскольку диаграмма состояний состоит только из 3 состояний (00, 01 и 11), я немного не уверен, как настроить Karnaugh. Я знаю, как бы это выглядело, если бы у него было четыре состояния (00, 01, 11 и 10).

Диаграмма состояний

Вот как выглядит мой карно, хотя, наверное, это неправильно

Вот так выглядит мой карно, хотя, возможно, он неправильный

Редактировать: Должен ли я добавить последнюю строку (10) в свой Karnaugh и просто ввести все равно?


person LarmadVara    schedule 08.04.2017    source источник


Ответы (1)


Я бы сказал, что K-карта хороша в качестве черновика, но я бы предложил сделать каждую из выходных переменных («новые» Q_1 и Q_0 на следующем шаге диаграммы состояний) собственной K-картой.

Таким образом, вы можете минимизировать функцию отдельно для каждого из них.

Я заполнил таблицу истинности следующим образом:

+-----------------++-----------+
  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):

Функции вывода в K-картах

Индексы в картах Карно соответствуют строкам таблицы истинности из-за порядка переменных.

Также обратите внимание, что я использовал вывод 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.

Если вам это покажется непонятным, не стесняйтесь спросить в комментарии, пожалуйста.

person Kit Ostrihon    schedule 06.05.2017