Tricky Circuit

전가산기: 세 입력

자리올림을 다음으로 보내기

전가산기는 두 비트, 즉 이진 숫자 0 또는 1과 Cin(Carry input, 이전 자리에서 오는 입력 자리올림)을 더합니다. 현재 자리의 합과 다음 자리로 보내는 출력 자리올림을 만듭니다.

대화형 실험 열기

실험대

회로 설정을 바꾸고 측정값을 예상한 뒤 과제를 확인하세요. 학습용 모델이며 각 수업에서 가정을 설명합니다.

로그인하여 진도 저장. 게스트 진도는 이 기기에 저장돼요.

실험실을 전체 창으로 열기

동작 원리

이상적인 이진 논리입니다. 0은 낮음, 1은 높음이며 측정 전압이 아닙니다. 전원, 전류, 출력 부하와 응답 지연은 생략합니다. 그림은 기능이며 칩 핀 배치가 아닙니다.

A와 B는 데이터, Cin은 Carry input인 입력 자리올림, S는 합, Cout은 출력 자리올림입니다. T = A + B + Cin, T = S + 2Cout입니다. XOR는 Exclusive OR, 배타적 논리합으로 입력 비트가 다르면 1입니다. ⊕와 =1이 이 함수를 나타냅니다. 자리올림은 그 자리의 한 단위이며 추가 전압이 아닙니다.

난이도
  1. 만들기 · 회로 만들기

    A = 0, B = 0, Cin = 1로 전원을 켜세요. S = 1, Cout = 0을 만드세요.

    힌트가 필요한가요?

    A = 0; B = 0; Cin = 1 → S = 1; Cout = 0

  2. 탐구하기 · 입력 바꾸기

    A = 1, B = 1, Cin = 0으로 하세요. S = 0, Cout = 1을 만드세요.

    힌트가 필요한가요?

    A = 1; B = 1; Cin = 0 → S = 0; Cout = 1

  3. 스스로 풀기 · 문제 해결

    A = 1, B = 1, Cin = 1로 하세요. S = 1, Cout = 1을 만드세요.

    힌트가 필요한가요?

    A = 1; B = 1; Cin = 1 → S = 1; Cout = 1

추가 읽기와 회로 레시피

자리올림을 다음으로 보내기

계산기는 여러 자리에 이 블록을 반복합니다. 각 블록이 작은 덧셈을 하고 자리올림을 더 큰 자리로 보냅니다.

T = A + B + Cin; T = S + 2Cout; S = A ⊕ B ⊕ Cin

합 비트는 합계가 홀수인지, 자리올림은 둘 이상인지 나타냅니다. 둘이 함께 영에서 셋까지 표시합니다.

유용한 규칙

세 입력이 모두 높으면 합계는 셋, 이진 11입니다. 합 비트 하나만으로는 부족합니다.

모델 밖에서는

반가산기 두 개와 논리합으로 전가산기를 만듭니다. 논리합은 하나 이상의 입력이 1이면 1, 논리곱은 두 입력 모두 1일 때만 1입니다. 그림은 ≥1과 &로 표시합니다. 실제 전파에는 시간이 걸리며 모델은 즉시입니다.

피하면 좋은 함정

Cin과 Cout은 다른 신호입니다. Cin은 기억이 아니고 Cout도 항상 그 복사본은 아닙니다.

A = 0, B = 0이고 Cin을 0에서 1로 바꿉니다. 결과는…

  1. S = 1, Cout = 0
  2. S = 0, Cout = 1
  3. S = 1, Cout = 1
더 읽기

합계가 영에서 하나로 올라가므로 일의 자리만 필요합니다.

회로 만들기

A = 0, B = 0, Cin = 1로 하세요. 입력 자리올림만으로 합계 1입니다.

T = 1; S = 1; Cout = 0

입력 바꾸기

A = 1, B = 1, Cin = 1로 하세요. 합계 3은 합 1과 자리올림 1입니다.

T = 3; S = 1; Cout = 1

다른 경로 시도

Cin을 고정하고 A와 B를 교환하세요. 그다음 A와 B를 높게 유지하고 Cin을 바꿔 합과 자리올림을 비교하세요.

bob.cs.sonoma.edu