Właśnie zacząłem studiować inżynierię komputerową i mam wątpliwości co do zachowania bramki XOR.
Projektuję układy z Logisimem, którego XOR zachowują się inaczej niż nauczyłem się. Dla mnie powinien on zachowywać się jak bramka parzystości, dając wysoką wydajność, gdy dane wejściowe otrzymają nieparzystą kombinację. Nie dotyczy to jednak więcej niż dwóch danych wejściowych. Jak powinien się zachowywać?
Przeczytałem również w książce, że bramki XOR nie są produkowane z więcej niż dwoma wejściami. Czy to jest poprawne? Czemu?
digital-logic
gabrieljcs
źródło
źródło
Odpowiedzi:
Istnieją różne punkty widzenia dotyczące zachowania wyłącznej bramki LUB z więcej niż dwoma wejściami. Najczęściej taka bramka XOR zachowuje się jak kaskada bramek 2-wejściowych i pełni funkcję parzystości nieparzystej. Jednak niektórzy interpretują znaczenie wyłączności-LUB bardziej dosłownie i mówią, że wyjście powinno wynosić 1, jeśli tylko jedno z danych wejściowych to 1. Wydaje mi się, że Logisim używa tej drugiej interpretacji i gdzieś w moja zardzewiała pamięć Widziałem to w bibliotece komórek ASIC. Jednym z międzynarodowych standardowych symboli dla bramki XOR jest prostokąt oznaczony etykietą,
=1
który wydaje się bardziej spójny z definicją „1 i tylko 1”.EDYCJA: Definicja wyłącznej-OR jako „1 i tylko 1” jest rzadka, ale można ją znaleźć. Na przykład IEEE-Std91a-1991 podaje symbol wyłączności-LUB na p. 62 z dopiskiem: „Wyjście jest w stanie 1, jeśli jedno i tylko jedno z dwóch wejść stoi w stanie 1”. W przypadku więcej niż 2 wejść standard zaleca stosowanie zamiast tego symbolu „nieparzystej parzystości”. Strony internetowe omawiające tę mylącą sytuację to XOR: The Interesting Gate i dema gate w TAMS . Wyszukiwarka Google wyświetli również strony, które twierdzą, że ściśle mówiąc, nie ma czegoś takiego jak brama XOR z więcej niż dwoma wejściami.
źródło
W bramie XOR wyjście jest wysokie, gdy wejścia są różne. Jeśli wejścia są takie same, wyjście jest niskie.
Stąd ta tabela prawdy:
Możesz znaleźć bramę XOR, która ma więcej niż dwa wejścia, ale tak naprawdę nie są one XOR z 3 wejściami. Wprowadzają one XOR A i B, a ich wynikiem „R” jest XOR z wejściem C. A wynikiem R XOR C jest następnie XOR z wejściem 4 i tak dalej.
Oto tabela prawdy dla pokazanego trzy wejścia XOR:
Prostym algorytmem parzystości jest bit XOR w odebranej wiadomości na przykład przez Ethernet. Jeśli nadawca i odbiorca wiedzą, że XOR bitów wiadomości powinien wynosić 0 (jeden bit w wiadomości ma na celu dodanie jednego, aby wiadomość o dowolnej długości mogła być równa 0, gdy XORed), wówczas odbiorca może wiedzieć, czy 1 bit został odwrócony. Jest to zła kontrola parzystości, ponieważ może ona znaleźć tylko nieparzystą liczbę zmian bitów, ale pokazuje koncepcję.
źródło
Jeśli weźmiesz 4 wejścia i podasz dwa do jednego XOR, a dwa do drugiego, weź dwa wyjścia XOR i podaj je do trzeciego XOR, jego wyjście robi to, co według ciebie powinno (myślę).
źródło
XOR nie jest całkowicie bramą parzystości. Jeśli zdefiniujesz wyjście XOR jako 1, gdy jedno i tylko jedno wejście ma wartość 1, wówczas trzy wejściowe XOR dałoby 0 dla wejścia all-1. Nie jest to często używane, dlatego istnieje niewiele bramek XOR z 3 wejściami.
Co większość ludzi ma na myśli, gdy mówią, że XOR to dodatek modulo 2, który jest dokładnie sprawdzaniem parzystości. Większość bram oznaczonych jako 3-wejściowe XOR to tak naprawdę bramki dodatkowe modulo 2. W przypadku dwóch wejść dodanie modulo 2 jest takie samo jak XOR, ale 0 z opisanego powyżej XOR jest zamiast tego bramką 1 w modulo 2. Bramy Modulo 2 z dowolną liczbą wejść mogą być wytwarzane z prostych bram XOR z dwoma wejściami.
źródło
Zrobiłem trochę wyszukiwania, widząc twoje pytanie i znalazłem układ scalony, który jest 3-wejściową bramą XOR. 74LVC1G386 z nxp. link do strony nxp pokazującej wyniki wyszukiwania dla tego numeru części w witrynie nxp to http://www.nxp.com/search?q=74lvc1g386&type=keyword&rows=10
źródło
Poszedłem tam i przetestowałem! Napisałem mały plik verilog, zasymulowałem i spojrzałem na przebieg.
Okazuje się, że poprawną interpretacją verilog jest: Dziwna jest liczba 1 w danych wejściowych Interpretacja AKA 2 tego artykułu
źródło
Zgodnie z logiką prostej bramki wejściowej OR z wieloma wejściami przyjmuje najwyższą wartość spośród wszystkich danych wejściowych, jednak nie podejmuje decyzji. Jeśli chodzi o EXOR (pomieszanie z połową sumatora jest tylko zbiegiem okoliczności, ponieważ nie dzieje się to w logice wielowartościowej EXOR), podejmuje decyzję, która z nich jest najwyższa spośród danych wejściowych, ale jeśli najwyższa (w tym 0 + 0 .. 1 + 1) są takie same, nie wybiera się między wejściami, co oznacza, że nie może podjąć decyzji, którą wybrać. Brak spadku oznacza, że wydajność wynosi zero. Na przykład, jeśli ktoś zostanie poproszony o zakup maksymalnej liczby słodyczy jednej marki w jednej lalce, a jeśli są dwie marki (radix = 2), może wybrać tę, która ma największą liczbę słodyczy, ale jeśli obie marki są dostępne bezpłatnie, nie może również wybrać żadnego (oznacza 0,0), jeśli obie marki oferują ten sam numer (1, 1) słodyczy, których nie może podjąć, oznacza, że produkcja wynosi zero. Tę samą logikę można rozszerzyć w przypadku 3, 4 lub więcej marek słodyczy. Dotyczy to również logiki wielowartościowej. (x + x + .. + x = 0, gdzie x może mieć dowolną wartość), W trzech wejściowych bramkach EXOR 1 + 1 + 1 = 0 (w przeciwieństwie do normalnej interpretacji 1 + 1 + 1 = 1, która wydaje się błędna, ponieważ pomieszane z parzystością). Dr VT Ingole
źródło