Complex circuit using Gates

노정훈·2023년 4월 11일
0

CE

목록 보기
11/24

Adder

Half Adder

  • 2개의 bit를 입력으로 addition 수행.
  • 이전 자리에서 넘어오는 carry에 대한 고려를 하지 않아 half adder라 불림.

Full Adder

  • 2개의 bit와 이전 자리에서 넘어오는 carry를 고려한 addition 수행

Ripple-carry Adder

  • full adder들을 순차적으로 연결한 것
  • input carry가 이전 자리에 대한 full adder의 출력 carry와 연결되는 형태
  • propagation delay의 발생으로 자리수가 높은 adder 구현에는 적합하지 않은 형태

Carry Look-ahead Adder

  • i+1번째 bit의 입력 carry가 다음과 같이 i번째 bit의 입력 bit AiA_i, BiB_i, carry in CiC_i에 의해 결정
Ci+1=(Ai  AND  Bi)  OR  (Ai  AND  Ci)  OR  (Bi  AND  Ci)C_{i+1} = (A_i\; AND\; B_i)\; OR\; (A_i\; AND\; C_i)\; OR\; (B_i\; AND\; C_i)
  • ripple carry adder의 문제점이 carry들이 순차적으로 입력된다는 것인데 이 경우에는 첫자리의 carry-in과 A,B를 안다면 모든 자리의 carry-out을 구할 수 있음
Ci+2=(Ai+1  AND  Bi+1)  OR  (Ai+1  AND  Ci+1)  OR  (Bi+1  AND  Ci+1)C_{i+2} = (A_{i+1}\; AND\; B_{i+1})\; OR\; (A_{i+1}\; AND\; C_{i+1})\; OR\; (B_{i+1}\; AND\; C_{i+1})

Ci+2=(Ai+1  AND  Bi+1)  OR  (Ai+1  AND  [(Ai  AND  Bi)  OR  (Ai  AND  Ci)  OR  (Bi  AND  Ci)])  OR  (Bi+1  AND  [(Ai  AND  Bi)  OR  (Ai  AND  Ci)  OR  (Bi  AND  Ci)])C_{i+2} = (A_{i+1}\; AND\; B_{i+1})\; OR\; \\ (A_{i+1}\; AND\; [(A_i\; AND\; B_i)\; OR\; (A_i\; AND\; C_i)\; OR\; (B_i\; AND\; C_i)])\; OR\; \\ (B_{i+1}\; AND\; [(A_i\; AND\; B_i)\; OR\; (A_i\; AND\; C_i)\; OR\; (B_i\; AND\; C_i)])

  • 이를 가장 첫째 자리까지 수행하여 구하면 한번에 모든 자리의 carry를 구할 수 있음.
  • propagation delay의 영향을 최소화할 수 있음.

Encoder and Decoder

Encoder

  • Take all of their data inputs one at a time and converts them into an equivalent binary code at its outputs.

Decoder

  • The exact opposite to that of an Encoder.
  • Encoding된 number를 개별 bit의 집합으로 변환해주며 display 제어에 응용됨.

cf) display decoder

Demux and Mux

Demux

  • Demultiplexer를 줄여서 Demux라 부름.
  • 1개의 input line을 여러 output line 중 하나로 연결.

  • Schemetic diagram은 위와 같음.

Mux

  • 위와 같이 decoder로 간략히 나타낼 수 있음.
  • Multiplexer, 다른 이름으로는 selector라고도 불림.
  • 여러 input line 중 하나를 하나의 output line으로 연결

  • Schemetic diagram은 위와 같음.

References:
1) https://dsaint31.tistory.com/entry/CI-Binary-Decoder
2) https://dsaint31.tistory.com/entry/CI-Demultiplexer-and-Multiplexer
3) https://projects.raspberrypi.org/en/projects/halfadder
4) https://ko.m.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC:Full-adder.svg
5) https://ko.m.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC:4-bit_carry_lookahead_adder.svg
6) https://dsaint31.me/mkdocs_site/CE/ch02_co/ce02_05_1_adder/

profile
노정훈

0개의 댓글