거북이처럼 천천히

감산기 본문

논리 회로/디지털 논리 회로

감산기

유로 청년 2024. 7. 3. 10:43

1. 감산기 (Subtractor)

  • 감산기는 두 개의 이진수를 가지고 뺄셈 연산을 수행하는 논리 회로이다.
  • 하지만, 감산기는 가산기를 통해 연산 및 대체할 수 있기 때문에 상대적으로 잘 사용하지 않는다.
  • 이진수인 값인 B에 대해서 2의 보수를 취해준 뒤, A 값과 B의 2의 보수 값을 가산기를 통해 덧셈연산을 수행하면 감산기를 통한 뺄셈 연산 (A-B)을 수행한 것과 동일한 효과 및 기능을 얻을 수 있다.

 

 

 

 

 

2. Half subtractor

  • 1bit 크기를 갖는 이진수에 대한 뺄셈연산을 수행하는 논리회로
  • 반감산기는 Difference와 Borrow Output (자리 빌림 출력) 만 출력하며, Borrow Input (자리 빌림 입력) 을 입력값으로 받지 않는다.
  • 따라서 Half subtractor를 완전한 감산기라 할 수 없다.
  • Half subtractor의 진리표는 다음과 같다.

Truth table of half subtractor

  • 위 진리표를 토대로 출력 값, D (Difference)와 Bo (Borrow Out)을 논리식으로 표현하면 다음과 같다.

(왼) Half subtractor의 논리식, (오른) Half subtractor의 논리 회로

 

 

2.1. Half subtractor의 구현 (PSpice)

 

< Logic circuit >

 

< Simulatiom >

 

 

 

 

 

3. Full subtractor

  • 전감산기는 두 개의 반감산기로 구성되어 1비트의 2진수를 뺄 수 있다.
  • 입력 값으로 A, B, Borrow-in (이전 비트 자리에서 자리 빌림을 표현)을 받고,
    출력 값으로 Difference (차이), Borrow-out (상위 비트로 부터 자리 빌림을 표현)을 출력한다.
  • 전감산기 (Full subtractor)의 진리표 (Truth Table)은 다음과 같다.

(왼) Full subtractor의 진리표, (오른) D와 Bout의 논리식 간략화

 

 

3.1. Full subtractor 의 구현 (PSpice)

 

< Logic circuit >

 

 

< Simulation > 

 

  • 진리표와 동일하게 각각의 입력값에 대해서 그에 대한 출력값 (D, Bout)이 출력됨을 확인

 

 

 

 

 

 

 

 

4. 병렬 가감산기 (Parallel adder / subtractor)

  • 2의 보수를 이용하면 가산기로 감산 연산을 수행할 수 있다.
  • 2의 보수를 이용하여 감산하는 방법은 다음과 같다.
    - '빼는 수'를 2의 보수로 만든다.
    - 2의 보수를 '빼임수'에 더한다.
    - 자리 올림이 생기면 무시한다. 이때는 더한 결과가 그대로 감산 값이다.
    - 자리올림이 생기지 않으면, 더한 결과를 2의 보수로 만들고 (-1)를 붙인다.
  • 2의 보수를 이용하여 가산기로 감산 연산을 수행함으로서 추가적으로 감산기를 만들 필요 없이 가산기만으로 사칙 연산 수행이 가능하다.

 

 

 

4.1. 4 bit Parallel adder / subtractor의 구현 (PSpice)

 

< Logic circuit >

 

 

< Simulation > 

  • 시뮬레이션은 PSpice 무료 평가판으로 "무료 평가판에서는 시뮬레이션으로 돌릴 수 있는 게이트의 갯수가 제한되어 있어" 시뮬레이션으로 확인할 수 없었다.

'논리 회로 > 디지털 논리 회로' 카테고리의 다른 글

MUX와 DEMUX  (1) 2024.07.03
Encoder와 Decoder  (0) 2024.07.03
4 bit parallel adder (4비트 병렬 가산기)  (0) 2024.07.02
가산기  (0) 2024.06.30
카르노 맵 (1)  (0) 2024.06.27