2016-12-11 3 views
0

Я пытаюсь понять серый код и как он влияет на вывод. В принципе, конечной целью, которую я пытаюсь сделать, является создание схемы, основанной на таблице истинности. Я понимаю большую часть этого, за исключением части серого кода.Создать таблицу истинности на основе 3-битного серого кода

Предположим, что мне дана эта таблица истинности, где выход изменяется на каждом фронте нарастающего такта в соответствии с 3-битным серым кодом (последнее значение возвращается к первому значению). Как заполнить вывод? Должен ли я взять левое значение и выяснить его следующее значение в сером коде и заполнить его?

Inputs | Outputs 
------------------- 
S2 S1 S0 | N2 N1 N0 
-------------------- 
0 0 0 | ? ? ? 
0 0 1 | 
0 1 0 | 
0 1 1 | 
1 0 0 | 
1 0 1 | 
1 1 0 | 
1 1 1 | 

Моя первая реакция: я вижу, что левые столбцы не имеют серого кода. Я бы просто заполнил его в соответствии с базовой серой кодовой последовательностью? 3-битная последовательность для серого кода 000, 001, 011, 010, 110, 111, 101, 100. Я бы просто заполнил правую сторону диаграммы, как 001, 011, 110, 010 и т. Д.?

+0

Я думаю, что в вашей второй к последней строке ввода вы имеете в виду 1 1 1, и я думаю, что вы имели в виду, чтобы остановить после этого, не поставить 9-запись. –

+0

см. Вторую таблицу в https://en.wikipedia.org/wiki/Gray_code для того, что я думаю, это ваш желаемый результат. Я мог бы вставить это как ответ, но, похоже, он отдает должное чужому делу. –

+0

@JeremyKahan, вы правы, я внесла поправки –

ответ

1

Я решил. Для людей в будущем, которые наткнуться на эту тему в будущем, вот как преобразовать двоичный код в серый.

Во-первых, сбить самый значительный бит. Это первый бит серого кода. Если бы у нас было двоичное значение 100, первый бит был бы равен 1, а серый код - 1.

Чтобы найти второй бит серого кода, добавьте первый бит двоичного кода ко второму биту. В 100 это будет 1 + 0 = 1. Это второй бит серого кода, 11-.

Затем добавьте второй бит двоичного кода в третий бит. Это последний бит серого кода. 100, поэтому 0 + 0 = 0, а наш серый код становится 110.

Для четырехбитовых преобразований просто продолжайте паттерн, но добавьте двоичные биты 3 и 4, чтобы получить бит 4 серого кода.

Готовое стол для моего ответа является

Inputs | Outputs 
------------------- 
S2 S1 S0 | N2 N1 N0 
-------------------- 
0 0 0 | 0 0 0 
0 0 1 | 0 0 1 
0 1 0 | 0 1 1 
0 1 1 | 0 1 0 
1 0 0 | 1 1 0 
1 0 1 | 1 1 1 
1 1 0 | 1 0 1 
1 1 1 | 1 0 0 
Смежные вопросы