gate를 이용한 보다 복잡한 회로들
- Small-scale integration (SSI)을 이용하여 여로 gate들로 구성된 좀 더 복잡한 회로를 만드는 것은 디지털 회로 또는 실습 시간에 많이 다룬다.
- 아 장에서는 단순한
AND
, OR
gate들을 통해 구성되는 위의 component(building block이라고도 부름가 구성되는 것을 다룬다.
- programming에서는 단순한 statement와 expression들을 조합하여 function이라는 building block을 만들어내는데 이에 대한 hardware version이라고 생각할 수 있다.
Adder
half adder
Full adder
- 2개의 bit와 이전 자리에서 넘어오는 carry를 고려한 addition을 수행한다.
ripple-carry adder
-
full adder들을 순차적으로 연결하여 구현한 것이다.
input carry가 이전 자리에 대한 full adder의 출력 carry와 연결된다.
각 full adder의 출력 carry가 다음 자리의 input으로 연결되어 각 비트에서 다음 bit로 물결이 출렁이듯 전달된다는 의미로 ripple이 붙는다.
-
쉽게 이해될 수 있으나 propagation delay으로 인해 자리수가 높은 adder 구현에는 적합하지 않다.
carry Look-ahead adder
-
i+1th bit의 입력 carry(or carry-in)는 다음과 같이 ith bit의 입력 bit Ai,Bi와 carry-in Ci에 의해 결정된다. 다음은 그 식을 나타낸 것이다.
Ci+1=(AiANDBi)OR(AiANDCi)OR(BiANDCi)
-
이 식을 통해 맨 첫자리의 carry-in과 모든 자리의 A, B를 안다면 모든 자리의 carry-out을 미리 구할 수 있어 propagation의 영향을 최소화한다.(단 더 많은 gate가 필요하다.)
encoder and decoder
(Priority) encoder
- 모든 input data를 받고 그와 동일한 binary code를 output으로 전한다.
Combinational logic circuit
- 다음은
OR
gate를 이용한 간단한 예이다.
(Binary) decoder
- encoder의 반대이며 개별의 logic gate로 만들어진 combinational logic circuit이다.
- 인코딩된 number를 개별 bit의 집합으로 변환해준다. 주로 display 제어에 사용된다.
demultiplexer and multiplexer
demultiplexer
- 하나의 공통된 input line을 분리된 몇몇의 output line로 바꾸도록 설계된 combinational logic circuit이다.
- 줄여서 demux라고 한다.
- 1개의 입력을 여러 출력 중 하나로 연결한다.
- decoder에 다음과 같이 몇 가지 gate를 추가하여 만들 수 있다.
schemetic diagram
Multiplexer
- 여러 input line을 하나의 공통된 output line으로 바꿔도록 combinational logic circuit이다.
- selector라고도 불린다.
- 여러 입력 중 하나를 출력으로 연결한다.
- 줄여서 mux라고도 부른다.
- 다음은 schemetic diagram이다.
reference
1. https://dsaint31.tistory.com/entry/CI-Binary-Decoder
2. https://dsaint31.tistory.com/entry/CI-Demultiplexer-and-Multiplexer
3. CE mkdocs