Схемы, использующие технику карт Карно

Должна быть разработана комбинационная схема, которая подсчитывает количество появлений 1 бита на 4-битном входе. Однако вход 1111 является недопустимым входом для схемы, и выход в этом случае будет 00.

Один действительный вход для такой схемы может быть 1110 с выходом 11; другой действительный вход может быть 1010 с выходом 10.

Нарисуйте таблицу истинности для схемы. Используйте карту Карно, чтобы спроектировать схему и нарисовать ее, используя И, ИЛИ и НЕ ворота.

1 ответ

Поскольку в 4-битном входе может быть не более 4-х входов, мы можем закодировать выход в 3-битное двоичное число.

Таблица истинности будет выглядеть так:

 w x y z   y_2 y_1 y_0
---------+-------------   number of positive bits
 0 0 0 0 |  0   0   0   ~ 0
 0 0 0 1 |  0   0   1   ~ 1
 0 0 1 0 |  0   0   1   ~ 1
 0 0 1 1 |  0   1   0   ~ 2
---------+-------------
 0 1 0 0 |  0   0   1   ~ 1
 0 1 0 1 |  0   1   0   ~ 2
 0 1 1 0 |  0   1   0   ~ 2
 0 1 1 1 |  0   1   1   ~ 3
---------+-------------
 1 0 0 0 |  0   0   1   ~ 1
 1 0 0 1 |  0   1   0   ~ 2
 1 0 1 0 |  0   1   0   ~ 2
 1 0 1 1 |  0   1   1   ~ 3
---------+------------- 
 1 1 0 0 |  0   1   0   ~ 2
 1 1 0 1 |  0   1   1   ~ 3
 1 1 1 0 |  0   1   1   ~ 3
 1 1 1 1 |  1   0   0   ~ 4

НО! Выход в вашем случае только на два бита. Ваша спецификация также считает ввод 1111 недействительным с выводом 00. поэтому вы можете просто удалить наиболее значимый столбец в таблице истинности, и никаких других изменений не будет:

 w x y z   y_1 y_0
---------+---------   number of positive bits
 0 0 0 0 |  0   0   ~ 0
 0 0 0 1 |  0   1   ~ 1
 0 0 1 0 |  0   1   ~ 1
 0 0 1 1 |  1   0   ~ 2
---------+-------------
 0 1 0 0 |  0   1   ~ 1
 0 1 0 1 |  1   0   ~ 2
 0 1 1 0 |  1   0   ~ 2
 0 1 1 1 |  1   1   ~ 3
---------+-------------
 1 0 0 0 |  0   1   ~ 1
 1 0 0 1 |  1   0   ~ 2
 1 0 1 0 |  1   0   ~ 2
 1 0 1 1 |  1   1   ~ 3
---------+------------- 
 1 1 0 0 |  1   0   ~ 2
 1 1 0 1 |  1   1   ~ 3
 1 1 1 0 |  1   1   ~ 3
 1 1 1 1 |  0   0   ~ invalid, showing zeros

Теперь вы можете использовать разные стили для минимизации выходных функций y_1 а также y_0, но я думаю, что карты Карно подходят для этого.

Перенесите строки таблицы истинности для каждой из выходных функций в отдельную K-карту, используя индексы (номер строки в таблице, проиндексированный с нуля) или сравнивая комбинации переменных.

Для функции вывода y_0 итоговая K-карта выглядит следующим образом, и, как вы можете видеть, это минимизированная функция SOP (DNF; дизъюнкция конъюнкций), в которой не найдено более крупных групп (членов).

y_0 = ¬w·¬x·¬y·z + ¬w·x·¬y·¬z + ¬w·¬x·y·¬z + ¬w·x·y·z 
       + w·¬x·y·z + w·x·y·¬z + w·¬x·¬y·¬z + w·x·¬y·z

K-карта для выходной функции y_0

Для наиболее значимого бита вывода я выбрал POS (CNF; соединение дизъюнкций), потому что меньше случаев 0 биты чем 1 биты на выходе.

Функция вывода может быть как в y_0 описывается выделением всех правильных битов. В этом случае это будут K-карта и функция:

y_1 = (w + x + y + z) · (w + x + y + ¬z) · (w + ¬x + y + z) 
      · (w + x + ¬y + z) · (¬w + ¬x + ¬y + ¬z) · (¬w + x + y + z)

K-карта для выходной функции y_1 до минимизации

Но это можно свести к минимуму для этой функции вывода в K-карте:

y_1 = (w + x + y) · (w + y + z) · (w + x + z) 
      · (¬w + ¬x + ¬y + ¬z) · (x + y + z) 

K-карта для выходной функции y_1 после минимизации

После этого вы можете просто использовать правильные ворота или преобразовать их в более подходящую комбинацию ворот, используя сетки Ротта.

Другие вопросы по тегам