Как должен работать XOR с более чем двумя входами?

27

Я только начал изучать компьютерную инженерию, и у меня есть некоторые сомнения относительно поведения шлюза XOR.

Я проектировал схемы с Logisim, чьи XOR ведут себя не так, как я узнал. На мой взгляд, он должен вести себя как шлюз четности, обеспечивая высокий выход всякий раз, когда входы получают нечетную комбинацию. Это не для более чем двух входов. Как это должно вести себя?

Я также читал в книге, что ворота XOR не производятся с более чем двумя входами. Это верно? Зачем?

gabrieljcs
источник
1
Почему нет (или почти никогда) с> 2 входами? Двумя типичными случаями использования XOR являются: 1) проверка на равенство и 2) контроль / манипулирование полярностью сигнала. Ни один из них не имеет смысла для более чем 2 входов.
Воутер ван Ойджен
1
Разве сумма в полном сумматоре не будет представлена ​​как A ^ B ^ Cin?
gabrieljcs
Вы можете выразить это таким образом, но это не значит, что это хороший способ реализовать это.
Воутер ван Оойен
1
Только что проверил мою версию Logisim, и «1 и только 1», по-видимому, является поведением по умолчанию, но есть возможность изменить его на функцию нечетной четности.
Джо Хасс
Действительно, Джо. Эта ссылка содержит обсуждение этого вопроса, на которое ответил разработчик Logisim, Карл Берч.
gabrieljcs

Ответы:

23

Существуют разные точки зрения относительно того, как должен вести себя логический элемент ИЛИ с более чем двумя входами. Чаще всего такой вентиль XOR ведет себя как каскад 2-входных вентилей и выполняет функцию нечетной четности. Тем не менее, некоторые люди интерпретируют значение исключающего ИЛИ более буквально и говорят, что выходные данные должны быть равны 1, если и только если ровно один из входных данных равен 1. Я действительно напоминаю, что Logisim использует последнюю интерпретацию, и где-то в моя ржавая память Я видел это в библиотеке ячеек ASIC. Одним из международных стандартных символов для ворот XOR является прямоугольник, помеченный знаком, =1который, как представляется, более соответствует определению «1 и только 1».

РЕДАКТИРОВАТЬ: определение «исключающее ИЛИ» как «1 и только 1» встречается редко, но его можно найти. Например, IEEE-Std91a-1991 дает символ для исключающего ИЛИ на p. 62 с пометкой: «Выход находится в своем 1-состоянии, если один и только один из двух входов находится в своем 1-состоянии». Для более чем 2 входов стандарт рекомендует использовать символ «нечетная четность». Веб-сайты, на которых обсуждается эта запутанная ситуация, включают XOR: Интересные Ворота и демонстрации гейта в TAMS . Поиск в Google также найдет сайты, которые утверждают, что, строго говоря, нет такой вещи, как ворота XOR с более чем двумя входами.

Джо Хасс
источник
4
Насколько я понимаю, второй (1 и только 1) - единственный правильный способ сделать это - все остальное не является действительно эксклюзивным .
Полином
3
Не существует другой точки зрения, обе точки технически правильны, однако «1, если только если ровно один из входов равен 1», не расширяется, как вы думаете. Когда вы каскадируете 2 входных XOR, каждый выход подается на контакты третьего XOR, это показывает вышеуказанную точку. Много входные вентили получены из их 2 входных примитивов. Таким образом, таблица истинности 4input - ((A⊕B) ⊕ (C⊕D)), что приводит к окончательному результату 1, если существует нечетное количество истинных входов.
Крис Бансен
@KrisBahnsen Как указывал ОП, действительно есть две точки зрения (попробуйте XOR по умолчанию в Logisim, если вам нужны доказательства). Ваше утверждение о том, что шлюзы с несколькими входами получены из примитивов с двумя входами, выглядит так, как будто это универсальная истина, но мы уже дали вам контрпример.
Джо Хасс
@JoeHass, я никогда не использовал logisim, я в основном использую LogicWorks; в котором XOR с несколькими входами ведет себя так, как я описал выше, нечетное количество истинных входов является истинным выходом. Страница вики на XOR (en.wikipedia.org/wiki/XOR) соглашается с тем, что то, что я сказал, также верно. Я также никогда не видел ИС с несколькими входами XOR, поэтому я не могу обратиться к таблицам, чтобы попытаться опровергнуть то, что я сказал. Кажется, что Logisim является единственной вещью, которая реализует схему XOR с несколькими входами с логикой «1, если и только ...». Если вы можете найти другой источник, я признаю, что я не прав и что существует множество определений XOR.
Крис Бансен,
Хорошее разъяснение, спасибо, что уделили время изучению стандартов гораздо больше, чем я.
Крис Баннсен
11

В XOR с двумя вентилями выход высокий, когда входы разные. Если входы одинаковые, выход низкий.

Отсюда и таблица истинности:

введите описание изображения здесь

Вы можете найти вентиль XOR, который имеет более двух входов, но на самом деле они не являются XOR с 3 входами. Они XOR вводят A и B, и результат их «R» равен XOR с входом C. И результат R XOR C равен XOR с входом 4 и так далее.

Вот таблица истинности для трех введенных XOR:

введите описание изображения здесь

Простой алгоритм контроля четности - это биты XOR в полученном сообщении, например, через Ethernet. Если отправитель и получатель знают, что XOR для битов сообщения должен быть равен 0 (один бит в сообщении предоставлен, чтобы иметь возможность добавить единицу, чтобы сообщение любой длины могло быть 0, когда XORed), тогда получатель может знать, если 1 бит был перевернут. Это плохая проверка четности, поскольку она может найти только нечетное количество битовых изменений, но показывает концепцию.

IQT
источник
1
Я математик, этот ответ выглядит ужасно для меня. Я понимаю, что это выход, обычно предназначенный для XOR с 3 входами, но 01101000 кажется мне гораздо более логичным. + Хороший ответ.
Бен Кроссли
1

Если вы возьмете 4 входа и подадите два к одному XOR и два к другому, тогда возьмите два выхода XOR и подайте их к третьему XOR, его выход будет делать то, что вы считаете нужным (я думаю).

Энди ака
источник
1
Меня больше волнует почему, а не как. Спасибо за ответ, хотя.
gabrieljcs
@ корень, на самом деле, вы спросили "Как это должно вести себя?" Вы нигде не спрашивали почему. Это правильный ответ, он выдает ((A⊕B) ⊕ (C⊕D)), который совпадает с XOR с 4 входами, который совпадает с каскадными множественными XOR с 2 входами.
Крис Бансен,
Вы правы. Извините за недопонимание.
gabrieljcs
1

XOR не является полностью воротами паритета. Если вы определяете выход XOR как 1, когда один и только один из входов равен 1, тогда XOR с тремя входами даст вам 0 для входа all-1. Это используется не очень часто, и поэтому имеется мало 3-х входных XOR-гейтов.

Что большинство людей имеют в виду, когда говорят, что XOR - это сложение по модулю 2, которое точно является проверкой четности. Большинство вентилей, помеченных как XOR с 3 входами, на самом деле являются модулями с 2 входами. Для двух входов сложение по модулю 2 - это то же самое, что и XOR, но 0 из XOR, описанного выше, это вместо 1 в вентилях по модулю 2. Затворы по модулю 2 с произвольным числом входов могут быть получены из простых затворов XOR с двумя входами.

Дагги
источник
1

Я немного поискал, увидев ваш вопрос, и нашел микросхему, представляющую собой входной XOR-вход с 3 входами. 74LVC1G386 от nxp. ссылка на сайт nxp с результатами поиска по этому номеру детали на сайте nxp: http://www.nxp.com/search?q=74lvc1g386&type=keyword&rows=10

Махеш Мохандасан
источник
2
Спасибо за помощь, но ваш ответ будет бесполезным, если NXP изменит свою поисковую систему. Пожалуйста, суммируйте то, что вы нашли здесь, чтобы оно имело прочную ценность.
Джо Хасс
Я просто искал, чтобы увидеть, есть ли какое-нибудь производство, предоставляющее XOR более 3 входных данных, и нашел это ... так что подумал, что это поможет мне поделиться им ... вот ссылка на их лист данных nxp.com/documents/ data_sheet / 74LVC1G386.pdf
Махеш Мохандасан,
1
Пожалуйста, не размещайте другую ссылку! Расскажите нам, как это работает!
Джо Хасс
это XOR-вход с тремя входами, который функционирует так же, как мы изучали / знаем. то есть, он дает высокое значение o / p для нечетного числа высоких входных данных (как в техническом паспорте)., поэтому разделял ссылку. :)
Махеш Мохандасан
1

Итак, я пошел туда и проверил! Я написал небольшой файл verilog, смоделировал и посмотрел на форму волны.

Оказывается, правильная интерпретация для verilog: во вводной интерпретации 2 АКА этой статьи есть нечетное количество единиц.

module top (y1, y2);
output y1, y2;
reg a, b, c;
wire x1, x2;
wire t;

xor(t, a, b);
xor(x2, t, c);

assign y2 = x2;
assign y1 = x1;

xor(x1, a, b, c);

initial
begin
  $dumpfile("test.vcd");
  $dumpvars(y1, y2, a, b, c, x1, x2);

#20
#10  a = 0; b = 0; c = 0;
#10  a = 0; b = 0; c = 1;
#10  a = 0; b = 1; c = 0;
#10  a = 0; b = 1; c = 1;
#10  a = 1; b = 0; c = 0;
#10  a = 1; b = 0; c = 1;
#10  a = 1; b = 1; c = 0;
#10  a = 1; b = 1; c = 1;
#10  a = 0; b = 0; c = 0;
end

endmodule

введите описание изображения здесь

mentatkgs
источник
-1

Согласно логике простого логического вентиля с несколькими входами, он принимает самое высокое значение среди всех входов, однако не принимает решения. Что касается EXOR (смешивание с половинным сумматором является простым совпадением, поскольку это не происходит в многозначной логике EXOR), то он принимает решение о том, какой из них самый высокий среди входных данных, но если самый высокий (включая 0 + 0). 1 + 1) одинаковы: он не может выбрать среди входных данных, что означает, что он не может принять решение, какой из них выбрать. Отсутствие децентрации означает, что выход равен нулю. Например, если кого-то просят купить максимальное количество конфет одной марки в одном магазине, и если есть две марки (основание = 2), он может выбрать ту, которая имеет наибольшее количество конфет, но если обе марки доступны бесплатно, он не может выбрать любой (означает 0,0), если оба бренда предлагают один и тот же номер (1, 1) из конфет он не может принять решение, значит, выход равен нулю. Эту же логику можно распространить на 3, 4 и более числа брендов (с более высоким основанием) сладостей. Это в равной степени применимо к многозначной логике. (x + x + .. + x = 0, где x может иметь любое значение), В трех входных логических элементах EXOR 1 + 1 + 1 = 0 (в отличие от обычной интерпретации 1 + 1 + 1 = 1, которая представляется неверной, будучи перепутал с паритетом). В.Т. Инголе, к.т.н.

Виджай Инголь
источник
Это объяснение неоправданно сложно и, похоже, не дает окончательного ответа на вопрос.
сумерки