본문 바로가기

Computer Science/컴퓨터 과학이 여는 세계

컴퓨터과학이 여는 세계_6.3 디지털 논리회로 만들기: 응답_이광근


 전기회로를 이용해 가위바위보도 만들 수 있다.

 우선, 전기 신호는 0과 1 둘밖에 없으니 신호 여러개를 사용하여 더 많은 경우의 수를 만들어 보자. 가위 바위 보는 낼 수 있는 세가지 경우의 수가 있으니 전기신호 두 개를 사용하여 만들면,

가위를 00

바위를 01

보자기는 10

이라고 할 수 있다. 또, 결과 값도 세가지이니 (A와 B 두 명이서 가위바위보를 한다고 하자) 마찬가지로 전기신호 두 개를 사용하면,

비기면 11

A가 이기면 10

B가 이기면 01

로 표현할 수 있다.

 각각의 경우에 대하여 표를 만들어 보자.

 이제 각각에 대하여 부울식을 만들어 보자. C가 1인 식을 찾아 C0와 C1 각각 NOT과 AND로 한줄을 표현하고 다음줄을 OR로 이어쓰면 된다.

C0 =

(~A0, ~A1, ~B0, ~B1) or        (0 0  0 0)

(~A0, ~A1, B0, ~B1) or        (0 0  1 0)

(~A0, A1, B0, B1) or        (0 1  1 1)

(~A0, A1, ~B0, B1) or        (0 1  0 1)

(A0, ~A1, ~B0, B1) or        (1 0  0 1)

(A0, ~A1, B0, ~B1)        (1 0  1 0)


C1 =

(~A0, ~A1, ~B0, ~B1) or            (0 0  0 0)

(~A0, ~A1, ~B0, B1) or        (0 0  0 1)

(~A0, A1, ~B0, B1) or        (0 1  0 1)

(~A0, A1, B0, ~B1) or        (0 1  1 0)

(A0, ~A1, ~B0, ~B1) or        (1 0  0 0)

(A0, ~A1, B0, ~B1)         (1 0  1 0)

  (편의상 AND를 콤마(,)로 표현했다)

 조금 긴 노동이지만 표현할 수는 있다. 헌데, 여기서

(A, B) or (A, C) = A, (B or C)

~A or A = 1 (참)

이 식을 응용해 써보자.

C0 =

(~A0, ~A1, ~B1), (~B0 or B0) or

(~A0, A1, B1), (~B0 or B0) or

(A0, ~A1), (~B0, B1 or B0, ~B1)

=

(~A0, ~A1, ~B1) or (~A0, A1, B1) or (A0, ~A1)


C1 =

(~A0, ~A1, ~B0), (~B1 or B1) or

(~A0, A1), (~B0, B1 or B0, ~B1) or

(A0, ~A1, ~B1), (~B0 or B0)

=

(~A0, ~A1, ~B0) or (~A0, A1) or (A0, ~A1, ~B1)


C0 = (~A0, ~A1, ~B1) or (~A0, A1, B1) or (A0, ~A1)

C1 = (~A0, ~A1, ~B0) or (~A0, A1) or (A0, ~A1, ~B1)

 이와 같이 훨씬 간단히 만들 수 있다. 이것이 가위 바위 보 회로를 만드는 방법이다.