입력이 2 개 이상인 XOR은 어떻게 작동합니까? 공부하기 시작했으며 XOR 게이트의 동작과 관련하여 의문이

방금 컴퓨터 공학을 공부하기 시작했으며 XOR 게이트의 동작과 관련하여 의문이 있습니다.

Logisim으로 회로를 투영하고 있는데, XOR은 내가 배운 것과 다르게 동작합니다. 나에게 그것은 패리티 게이트처럼 행동해야하며 입력이 홀수 조합을받을 때마다 높은 출력을 제공해야합니다. 그러나 두 개 이상의 입력에는 적용되지 않습니다. 어떻게 행동해야합니까?

또한 XOR 게이트가 두 개 이상의 입력으로 생성되지 않는다는 책을 읽었습니다. 그 맞습니까? 왜?



답변

입력이 3 개 이상인 배타적 OR 게이트가 어떻게 동작해야하는지에 대한 관점이 다릅니다. 대부분의 XOR 게이트는 2 입력 게이트의 캐스케이드처럼 작동하며 홀수 패리티 기능을 수행합니다. 그러나 일부 사람들은 배타적 OR의 의미를보다 문자 그대로 해석하고 입력 중 하나가 정확히 1 인 경우에만 출력이 1이어야한다고 말합니다 .Logisim은 후자의 해석을 사용하고 어딘가에 녹슨 메모리를 ASIC 셀 라이브러리에서 보았습니다. XOR 게이트의 국제 표준 기호 중 하나는 =1“1과 1″정의와보다 일치하는 것으로 레이블이 지정된 사각형 입니다.

편집 : 배타적 OR의 “1과 유일한 1″의 정의는 드물지만 찾을 수 있습니다. 예를 들어, IEEE-Std91a-1991은 p.1의 배타적 OR에 대한 기호를 제공합니다. “두 개의 입력 중 하나만 하나의 상태에만 있으면 출력은 1 상태에있게됩니다.” 2 개 이상의 입력의 경우 표준은 “odd parity”기호를 대신 사용하는 것이 좋습니다. 이 혼란스러운 상황을 논의하는 웹 사이트에는 XOR : TAMS 의 흥미로운 게이트게이트 데모가 포함됩니다 . 구글 검색은 또한 엄밀히 말하면 입력이 두 개 이상인 XOR 게이트와 같은 것은 없다고 주장하는 사이트를 제공합니다.


답변

2 개의 게이트 XOR에서 입력이 다르면 출력이 높습니다. 입력이 동일하면 출력이 낮습니다.

그러므로이 진리표는 :

두 개 이상의 입력이있는 XOR 게이트를 찾을 수 있지만 실제로는 3 개의 입력 XOR이 아닙니다. XOR 입력 A 및 B와 그 결과 “R”은 입력 C와 XOR입니다. 그리고 R XOR C의 결과는 입력 4와 XOR입니다.

다음은 세 가지 입력 XOR에 대한 진리표입니다.

간단한 패리티 알고리즘은 예를 들어 이더넷을 통해 수신 된 메시지의 XORing 비트입니다. 발신자와 수신자가 메시지 비트 XORing이 0이어야 함을 알고있는 경우 (XOR 된 경우 임의 길이의 메시지가 0이 될 수 있도록 메시지의 1 비트에 비트를 추가 할 수 있도록 1 비트가 제공됨) 수신자는 1인지 여부를 알 수 있습니다. 비트가 뒤집어졌습니다. 홀수의 비트 변경 만 찾을 수 있지만 개념을 보여주기 때문에 이것은 패리티 검사가 잘못되었습니다.


답변

4 개의 입력을 가져 와서 2 대 1 XOR과 2 대 다른 XOR로 공급하면 두 개의 XOR 출력을 가져 와서 세 번째 XOR에 공급하면 출력이 생각하는대로 작동합니다.


답변

XOR은 완전하게 패리티 게이트가 아닙니다. 입력 중 하나만 1 일 때 XOR의 출력을 1로 정의하면 3 개의 입력 XOR이 모든 1 입력에 대해 0을 제공합니다. 이것은 자주 사용되지 않으므로 3 입력 XOR 게이트가 거의 없습니다.

XOR이라고 말할 때 대부분의 사람들이 의미하는 것은 정확히 패리티 검사기 인 모듈로 2 덧셈입니다. 3- 입력 XOR로 표시된 대부분의 게이트는 실제로 모듈로 2 추가 게이트입니다. 두 입력의 경우 모듈로 2 추가는 XOR과 동일하지만 위에서 설명한 XOR의 0은 모듈로 2 게이트의 1입니다. 임의의 수의 입력을 갖는 모듈로 2 게이트는 간단한 2 입력 XOR 게이트에서 생성 할 수 있습니다.


답변

나는 당신의 질문을보고 약간의 검색을하고 3 입력 XOR 게이트 인 IC를 발견했습니다. nxp의 74LVC1G386. nxp 사이트에서이 부품 번호에 대한 검색 결과를 표시하는 nxp 사이트 링크는 http://www.nxp.com/search?q=74lvc1g386&type=keyword&rows=10 입니다 .


답변

그래서 거기에 가서 테스트했습니다! 작은 verilog 파일을 작성하여 시뮬레이션하고 파형을 보았습니다.

verilog에 대한 올바른 해석은 다음과 같습니다.이 기사 의 입력 AKA 해석 2에 1이 홀수입니다.

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


답변

단순한 다중 입력 OR 게이트의 논리에 따라 모든 입력 중에서 가장 높은 값을 가정하지만 결정하지는 않습니다. EXOR (다중 가산 논리 EXOR에서는 발생하지 않기 때문에 반가산기와 우연의 일치로 나타납니다)과 관련하여 입력 중 어느 것이 가장 높은지, 가장 높은지 (0 + 0 포함)인지 결정합니다. 1 + 1) 입력을 정확하게 선택하지 못하면 입력을 선택할 수 없습니다. 예를 들어 누군가가 하나의 doller에서 한 브랜드의 최대 과자 수를 구매하도록 요청하고 두 개의 브랜드가있는 경우 (radix = 2) 가장 높은 단수를 가진 브랜드를 선택할 수 있지만 두 브랜드 모두 두 브랜드가 동일한 번호를 제공하는 경우 (0,0)을 선택할 수 없습니다. 1) 과자의 결정을 내릴 수 없다는 것은 출력이 0임을 의미합니다. 3, 4 개 이상의 브랜드 (높은 기수) 과자에 대해 동일한 논리를 확장 할 수 있습니다. 이는 다중 값 논리에도 동일하게 적용됩니다. (x + x + .. + x = 0 여기서 x는 임의의 값을 가질 수 있음), 3 개의 입력 EXOR 게이트 1 + 1 + 1 = 0 (정상적인 해석 1 + 1 + 1 = 1과 비교하여 잘못된 것으로 나타남) 패리티와 혼합). VT 인골 레 박사