본문 바로가기

컴퓨터구성

순서 회로 설계, 디코더

지난 글 마지막 부분에 나왔던 edge-triggering방식은 비용이 너무 많이 들어간다.


그래서 master-slave 타입을 고안해냈다.


위 그림과 같이 2개의 플립플롭을 두고 Clock을 앞부분은 그대로 뒷부분은 Not으로 연결한다.

이 때 앞부분을 master, 뒷부분을 slave라 하며 edge-triggering과 같은 효과를 낸다.

(master는 전달되고, slave는 전달 안되는 식이기 때문이다.)


단 edge-triggering보다 안정성이 조금 떨어진다. edge-triggering은 순간적으로 변하는 반면 master-slave는 계속 작동하고 있기 때문에 잘못된 신호가 들어올수도 있기 때문이다.



여기표(excitation table)

여기라는 단어를 처음 본 것 같다.. 그냥 excitation으로 사용하겠다.

어쨋거나 excitation table은 상태를 보고 플립 플롭의 입력값을 알아내는 테이블이다.


위 그림과 같다.



설계에 필요한 내용은 얼추 다 봤다. 이제 설계 절차를 알아보자.


설계는 다음과 같은 순서대로 이뤄진다.

1. 상태의 개수 결정(플립 플롭 개수도 정할 수 있다.)

2. 상태의 값 지정

3. excitation table을 활용해 플립 플롭 선택

4. 회로의 식 만들기


간단한 예를 하나 들어보겠다.

우선 1,2번 단계는 보통 문제에서 주어진다. 다음과 같은 state 다이어그램이 있다 가정하자. 

입력 값은 S와 Z이며, 상태값인 A, B, A+, B+가 있을 것이다.

위 다이어그램을 보고 다음과 같이 진리표를 쭉 만든다.

표 크기때문에 다 만들어오긴 좀 그렇고 위와 같은 식이다. 모든 S,Z의 값에 대해 만들어야한다.

JA, KA는 A의 변화값만을, JB, KB는 B의 변화값만을 보고 넣어주면 된다.


위 진리표를 카르노맵으로 만들어 JA, KA, JB, KB 각각에 해당하는 식을 뽑아내준다.

이 경우 JA = B, KA = ZB, JB = S+A, KB = 1 이 나온다. (물론 카르노맵에 따라 조금씩 다를 수는 있다.)


나온 식을 토대로 회로를 그려주면 된다.

시뮬레이션을 돌려보면 위 다이어그램과 똑같이 나옴을 확인할 수 있다.



다음은 IC, 그 중 디코더에 대해 알아보도록 하겠다. 우선 IC가 무엇인지, IC를 만드는 기술 등등에 대해 보겠다. 별로 안중요해보이니 그냥 쓱 읽고 넘어가는 식으로 하겠다.


IC(집적회로)

특정 기능을 위해 다수의 회로를 하나의 칩 안에 집적화한 부품이다.


장점으로는 역시 비용(대량 생산)과 성능이 있다.


IC를 만드는 기술에는 TTL, ECL, MOS, CMOS 등이 있는데 순서대로 소규모 ~ 대규모이며, 속도는 ECL이 제일 빠르고 전력소모는 CMOS가 제일 적다.


디코더

입력된 값들에 대응되는 1개의 신호를 출력해준다.

즉, 입력값이 3bits라면 출력 값은 23 인 8개가 되고 각 입력값 000, 001 ... 에 대응되는 출력 값 D0, D1, ... 을 갖게 된다.


(n x m) (입력 x 출력)의 형태로 표시하며 여러 개의 디코더를 합쳐서 더 큰 디코더를 만들 수 있다.


위 사진은 2개의 2x4 디코더로 만든 3x8 디코더이다. ABC를 입력값으로 가지며 대응하는 단 1개의 값만 0으로 출력한다.

잘 보면 입력값은 ABC(010)으로 되어 있으니 출력값은 D2임을 확인할 수 있다.



'컴퓨터구성' 카테고리의 다른 글

집적 회로(IC) - register, counter  (1) 2020.04.20
집적 회로(IC) - MUX  (0) 2020.04.20
조합 회로, 순서 회로  (0) 2020.04.06
식의 간소화 - 카르노맵  (2) 2020.04.01
기본적인 Logic gates  (1) 2020.03.31