Як має працювати XOR з більш ніж двома входами?


27

Я щойно почав вивчати комп’ютерну техніку, і у мене виникають певні сумніви щодо поведінки воріт XOR.

Я проектував схеми з Logisim, чиї XOR поводяться інакше, ніж я дізнався. Для мене він повинен поводитись як ворота паритету, даючи високий вихід, коли входи отримують непарну комбінацію. Однак це не більше ніж на два входи. Як він повинен поводитися?

Я також читав у книзі, що ворота XOR не виробляються з більш ніж двома входами. Це правильно? Чому?


1
Чому б (або майже ніколи) з> 2 входами? Два типових способу використання воріт XOR: 1) перевірка рівності, і 2) контроль / маніпулювання полярністю сигналу. Більше двох входів не має сенсу.
Wouter van Ooijen

1
Чи не була б сума в повному суматорі представлена ​​як A ^ B ^ Cin?
gabrieljcs

Ви можете висловити це таким чином, але це не означає, що це хороший спосіб його реалізації.
Wouter van Ooijen

1
Щойно я перевірив мою версію Logisim, і "1 і лише 1" є поведінкою за замовчуванням, але є можливість змінити її на функцію непарного парності.
Джо Хасс

Справді, Джо. Посилання на це посилання має обговорення з цього питання, на що відповів розробник Logisim, Карл Берч.
gabrieljcs

Відповіді:


23

Існують різні точки зору щодо того, як повинен вести себе ексклюзивний АБО затвор із більш ніж двома входами. Найчастіше такі ворота XOR поводяться як каскад 2-х вхідних воріт і виконують функцію непарного парності. Однак деякі люди тлумачать значення ексклюзивного АБО більш буквально і кажуть, що вихід повинен бути рівним 1, якщо і тільки якщо саме один з входів є 1. Я, здається, пам'ятаю, що Логісім використовує останнє тлумачення, і десь у моя іржава пам'ять Я бачив це в бібліотеці клітин ASIC. Одним із міжнародних стандартних символів для ворота XOR є прямокутник, позначений ярликом, =1який, здається, більше відповідає визначенню "1 і лише 1".

EDIT: Визначення виключного АБО як "1 і лише 1" є рідкістю, але його можна знайти. Наприклад, IEEE-Std91a-1991 дає символ для ексклюзивного-АБО на p. 62 з приміткою: "Вихід стоїть у своєму 1-стані, якщо один і лише один з двох входів стоїть на своєму 1-стані." Для більш ніж 2 входів стандарт рекомендує використовувати символ "непарний паритет". Веб-сайти, які обговорюють цю заплутану ситуацію, включають XOR: The Цікаві ворота та демонстраційні ворота в TAMS . Пошук у Google також з’явиться на сайтах, які стверджують, що, строго кажучи, немає такого поняття, як ворота XOR з більш ніж двома входами.


4
Що стосується мене, другий (1 і єдиний 1) - єдиний правильний спосіб зробити це - все інше насправді не є ексклюзивним .
Поліном

3
Не існує різної точки зору, обидві точки технічно правильні, однак "1, якщо тільки один із входів є 1" не розширюється, як ви могли подумати. Коли ви каскадуєте 2-х вхідні XOR, кожен висновок подається на штирі третього XOR, це показує вищевказану точку. Ворота з декількома входами походять від 2-х вхідних примітивів. Таким чином, таблиця правдивості 4вхідних даних є ((A⊕B) ⊕ (C⊕D)), що призводить до остаточного 1 виводу, якщо є непарна кількість справжніх входів.
Кріс Бансен

@KrisBahnsen Як зазначалося в ОП, дійсно є дві точки зору (спробуйте XOR за замовчуванням у Logisim, якщо вам потрібні докази). Ваше твердження про те, що мульти вхідні ворота походять від 2-вхідних примітивів, дається як би це універсальна істина, але ми вже навели вам зустрічний приклад.
Джо Хасс

@JoeHass, я ніколи не використовував logisim, я в основному використовую LogicWorks; в якому XOR з декількома входами веде себе, як я описав вище, непарна кількість справжніх входів - це справжній вихід. Сторінка вікі на XOR (en.wikipedia.org/wiki/XOR) погоджується, що те, що я сказав, є істинним. Я також ніколи фактично не бачив багатокористувацьку ІК-модуль XOR, тому не можу звернутися до таблиць даних, щоб спробувати спростувати те, що я сказав. Логісім, здається, є єдиним, що реалізує схему XOR з декількома входами з логікою "1 якщо і тільки ..." Якщо ви можете знайти інше джерело, я визнаю, що я помиляюся, і що існує кілька визначень XOR.
Кріс Бансен

Добре роз'яснення, дякую, що ви вклали часу на дослідження стандартів набагато більше, ніж у мене.
Кріс Бансен

11

Для двома воротами XOR вихід високий, коли входи різні. Якщо входи однакові, вихід низький.

Звідси ця таблиця істини:

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

Ви можете знайти ворота XOR, які мають більше двох входів, але насправді вони не є XOR на 3 входи. Вони XOR вводять A і B, а результат їх "R" - це XOR з входом C. А результат R XOR C - це XOR з входом 4 і так далі.

Ось таблиця правдивості для трьох показаних XOR:

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

Простий алгоритм парності - це біти XORing в отриманому повідомленні, наприклад, Ethernet. Якщо відправник і одержувач знають, що XORing бітів повідомлення повинен бути 0 (один біт у повідомленні надається, щоб мати змогу додати один, щоб повідомлення будь-якої довжини могло бути 0, коли XORed), одержувач може знати, якщо 1 біт був перевернутий. Це погана перевірка парності, оскільки вона може знайти лише непарну кількість бітових змін, але показує концепцію.


1
Я математик, ця відповідь мені виглядає жахливою. Я розумію, що такий вихід, як правило, призначений 3-вхідним XOR, але 01101000 мені здається набагато більш логічним. + Приємна відповідь.
Бен Крослі

1

Якщо ви берете 4 входи і подаєте два в один XOR і два на інший, тоді візьміть два виходи XOR і подайте їх до третього XOR, його вихід робить те, що ви вважаєте, що повинно (я думаю).


1
Мене більше турбують віси, а не хау. Дякую за відповідь, хоча.
gabrieljcs

@root, насправді ви запитали "Як воно має вести себе?" Ви не питали, чому ніде. Це правильна відповідь, вона дає ((A⊕B) ⊕ (C⊕D)), що є тим же самим, як 4-вхідний XOR, який є тим же самим, що і декілька 2-вхідних XOR, каскадних разом.
Кріс Бансен

Ти правий. Вибачте за непорозуміння.
gabrieljcs

1

XOR - не повністю ворота паритету. Якщо ви визначите вихід XOR як 1, коли один і лише один з входів 1, три XOR введення дасть вам 0 для всіх-1 введення. Це використовується не дуже часто, тому XOR-ворота мають 3 входи.

Що більшість людей мають на увазі, коли кажуть, що XOR - це модуль 2, який точно перевіряє паритет. Більшість воріт, позначених як 3-х вхідні XOR, насправді є модулями 2-х воріт. Для двох входів додавання модуля 2 - це те саме, що і XOR, але 0 з описаного вище XOR - це замість воріт 1 у модулі 2. Ворота Modulo 2 з довільною кількістю входів можуть бути виготовлені з простих двома вхідними воротами XOR.


1

Я трохи пошукав, побачивши ваше запитання, і знайшов IC, який є 3-х вхідним XOR-воротами. 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
Mahesh

1
Будь ласка, не публікуйте іншого посилання! Розкажи, як ця річ працює!
Джо Хасс

це 3-х вхідний XOR-шлюз, який функціонує так само, як ми вивчали / знаємо. тобто, вона дає високий o / p для непарної кількості високих входів (як на аркуші даних). Тому чому поділилося посилання. :)
Махеш Мохандасан

1

Отже, я поїхав туди і випробував! Я написав невеликий файл verilog, змоделював і подивився на форму хвилі.

Виявляється, правильне тлумачення для verilog таке: Існує непарна кількість 1 у вхідній інтерпретації AKA 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

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


-1

Відповідно до логіки простого вхідного або АВТО-ворота, він передбачає найвище значення серед усіх входів, однак він не приймає рішення. Що стосується EXOR (змішання з половиною суматора є лише збігом обставин, оскільки це не відбувається в багатозначній логіці EXOR), він приймає рішення про те, який з найвищих серед вхідних даних, але якщо найвищий (включаючи 0 + 0). 1 + 1) однаково не вдасться вибрати між входами, це означає, що він не може прийняти рішення, який вибрати. Немає відхилення означає, що вихід дорівнює нулю. Наприклад, якщо когось попросять придбати максимальну кількість солодощів однієї марки в одній лялечці і якщо є дві марки (radix = 2), він може вибрати ту, яка має найвищу кількість солодких, але якщо обидві марки доступні безкоштовно, він не може вибрати будь-який (означає 0,0) так само, якщо обидві марки пропонують однаковий номер (1, 1) солодощів він не може прийняти рішення означає, що вихід нульовий. Таку ж логіку можна поширювати на 3, 4 і більше кількість марок солодощів (з більшим радіасом). Це в рівній мірі застосовно до багатозначної логіки. (x + x + .. + x = 0, де x може мати будь-яке значення), у трьох вхідних воротах EXOR 1 + 1 + 1 = 0 (на відміну від звичайної інтерпретації 1 + 1 + 1 = 1, яка здається помилковою, будучи змішаний з паритетом). В.Т. Інголе, к.е.н.


Це пояснення є надмірно складним, і, здається, не дає остаточної відповіді на питання.
сутінки
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.