조합회로란?



가산기



10진수 → 2진수 변환 방법



반가산기


반가산기는 한 자리 2진수 2개를 입력하여 합과 캐리를 계산하는 덧셈회로에요. 합은 1+1, 10+9 등.. 에 쓰는 그 합이 맞구요, 캐리는 처음들어보죠? 자리올림을 하는 애인데, 앞에서 2진수에 대해 설명한 이유가, 자리올림을 통해 00, 01, 10, 11, 100 등을 표시해줘야 하기 때문이에요. 직접 식 써서 보여줄게요.

Untitled

그럼 저 2진수를 10진수로 바꿔볼게요.

Untitled

이렇게 표기할 수 있겠네요.

어? 그러면 2진수로 11이고, 10진수로 3인 수는 어떻게 표현하나요?

그게 전가산기가 필요한 이유입니다. 우리가 자리올림을 통해 계산한 캐리는 한 자리수 덧셈을 하기 때문에, 아랫자리에서 발생한 캐리를 고려하지 않아 2비트 이상의 2진수 덧셈은 할 수 없어요. 뭐 그건 다음주에 하는걸로 하구요, 첫 수업부터 너무 많은걸 하면 여러분들이 이 수업 싫어할까봐 ㅎ

이 입력값과 출력값을 표로 한번 그려볼게요.

Untitled

이거 뭔가 어디서 본 것 같지않아요?

이것만 보면 아직 잘 모를수도 있어요.

그러면 이렇게 해볼게요.

Untitled

이렇게 나누면 어떤 논리게이트인지 알 것 같지 않아요?

Untitled

빨간색으로 표시한 A B S는 XOR과 같고,

초록색으로 표시간 A B C는 AND와 같아요.

그럼 우리는 프로테우스에서 XOR과 AND를 사용하면 조합회로를 구현할 수 있다는 것을 알 수있죠.

이걸 먼저 실습 해 볼게요.

(프로테우스 켜고)

LOGICPROBE 출력
LOGICSTATE 입력
74LS08 AND
74LS86 XOR

이거 4개로만 일단 구현 해 볼게요.

Untitled

이렇게 구현하면 돼요.

아까 표 다시한번 보면 XOR과 값이 같은 SUM(S)쪽 있죠?

입력값을 바꿧을 때 XOR이 SUM(s)과 같은 값이 나오는 걸 볼 수 있어요.

마찬가지로, A와 B가 둘다 1일때는 캐리(C)가 1이 올라가는걸 볼 수 있어요.

이게 반가산기에요. 어렵지않죠?


전가산기


이제 호ㅕ

전가산기는 저번주에 말했지만 캐리를 이용해서 만든 덧셈 회로에요.

이렇게 또 말로만 하면 어려우니까 그림으로 한번 또 설명 드릴게요.

우리는 지금까지 A, B 이렇게 2개의 입력에 대한 출력값만 실습 했는데,

이제부턴 3개가 넘어가게 될거에요.

입력값이 5개 10개 20개 넘어갈 수도 있는데 그거 하려면 밤 새야되니까

간단하게 입력값이 3개까지 인 것만 할게요.

먼저 아까처럼 식 한번 세워볼게요.

Untitled

우리 이제는 아랫자리로부터 올라온 캐리(Cin)을 포함해서 2진수로 3인 수를 만들수가 있게 됐어요.

이것도 표로 변환을 한번 해볼게요.

이거 다 쓰긴 귀찮으니까 그냥 복사 붙혀넣기 할게요.

Untitled

꼭 한번은 직접 계산해보길 바래요.

여기 잘 보면 4개씩 끊어볼게요.

Untitled

여기 빨간색 부분 결과값 아까 반가산기 할 때 결과값이랑 같죠?

초록색 부분은 반가산기 결과값의 정 반대되는 값이에요.

이걸로 알 수 있는 점은 반가산기 2개와 OR게이트를 합치면 전가산기가 나온다는것을 알 수 있어요.

값이 전부 반대로 됐다고 전에 모든 값을 반대로 출력해버리는 논리부정의 의미를 가진 NOT이라는 논리게이트를 떠올릴 수 있는데,

그건 현재 값에 대한 부정이고, 반가산기와 반가산기의 반대값 두 개의 값을 모두 출력해야하는데 NOT을 써버리면 모든값이 바뀌어버려요.

그래서 OR을 사용합니다.

추가로, 예전에 제가 논리기호 설명할 때 지나가면서 설명했는데 혹시 기억하려나 모르겠네요. XOR를 한번 더 알려드릴게요.

Untitled

입력값이 하나 더 늘었다고 경우의 수가 2배가 늘었네요.

그래서 3개까지만 하는것 도 있어요.

입력값 하나 더 늘면 또 여기서 2배 늘어요 경우의 수가.

여튼, XOR는 A랑 B가 둘 다 0일때, 둘 다 1일때 결과값이 0이라고 했는데,

XOR에 들어오는 입력값이 3개가 되었을 때 A B C가 전부 1이 들어오면 0이아니라 1이네요.

여기서 알 수 있는 것은 간단하게 이거에요.

XOR는 입력값에서 1의 갯수홀수면 출력값이 1이고, 짝수면 출력값이 0이다.

여기까지만 기억 해주시고, 프로테우스 실습으로 넘어갈게요.

사용해야하는 디바이스는 이렇게 5개에요.

| --- | --- |

아까 반가산기 만들었던거 있죠?

그 반가산기를 하나 더 만들어 줄 거에요.

한번 만들어 볼게요.

  1. A, B, C(Carry)입력값 3개를 준다.
  2. 처음 만든 반가산기에서 XOR부분의 출력이 되는 부분을 앞에 하나 더 만든 반가산기 XOR부분에 입력값으로 준다.
  3. 처음 만든 반가산기에서 AND부분의 출력이 되는 부분을 OR 입력값으로 준다.
  4. C를 나머지 XOR 입력부분에 넣어주고, 이전 반 가산기와 똑같이 회로를 이어준다.


과제