10진수대신 비트를 사용해 하드웨어를 만드는 이유를 알아봤고 조합논리의 장치의 출력이 이 장치의 입력 함수라는 것을 배웠다. (출력값=입력값) 하지만 출력이 입력에 따라 변하기 때문에 조합논리로는 무언가를 기억할 방법이 없다. 

그래서 조합논리와 똑같이 AND, OR게이트를 연결해서 구현하는 순차논리를 알 필요가 있다. (출력값+상태값).

 

1. 조합 논리회로(Combinational Logic Circuit) 

 조합 논리회로는 입력의 변화가 바로 출력에 반영됩니다. 즉, 특정 시점의 출력이 그 시점의 입력에 의해서만 결정되는 회로입니다.

 

2. 순차 논리회로(Sequential Logic Circuit)

 순차 논리회로는 상태값을 저장해두고 그 상태값이 다시 입력으로 들어가서 다음 상태값과 출력을 결정하는 회로입니다. 조합 논리회로가 어떤 시점에서든지 출력이 입력의 조합 논리로만 결정되는 반면, 순차 논리회로는 입력을 주더라도 현재의 상태값(메모리에 저장된 값)이 함께 출력에 영향을 미칩니다. 

예) 자판기, 전자계산기

 

#1

-1정보를 1비트 기억할 방법 ( S-R 래치)

 

OR 게이트 래치 출력을 입력에 묶는 방식의 되먹임을 사용하면 정보를 기억할 수 있다. 하지만 회로는 과거의 상태를 기억하기 때문에 첫 번째 in이 1이되고 out이 1이라면 그 뒤 in이 0이되더라도 1로된다. 우린 이런 되먹임을 끊고 재설정(reset) 할 방법이 필요하다. 

이 때 S-R래치(set-reset) 좀더 똘똘하게 1비트 메모리를 만드는 방법이다. AND-OR게이트로 reset-bar(반전)을 이용해 액티브 하이 그리고 반대되는 액티브 로우의 상태에 따라 OR게이트의 입력에 되먹임을 줄 지 깰지 정한다. S-R 래치는 액비트 로우를 입력 받고 보수 출력을 제공한다. 보수 출력이란 말은 출력의 한쪽은 액티브 하이(거짓), 다른쪽은 로우(참) 라는 뜻이다. 

#2

-무언가를 기억한다는 것이 어떤 뜻인가(게이트가 있는  S-R래치)

S-R래치에 게이트 한쌍 추가하더라도 gate-bar의 입력이 하이(거짓)인 경우 set-bar와 reset-bar에 관계 없이 항상 출력이 그대로 유지된다. 1비트 정보를 유지하기 위해 한 쪽 입려에는 인버터를 추가해서 입력을 1비트만 받게 만든다. 이것을

D-래치라고 한다. 

 

 

D-래치의 문제는 gate-bar가 참(로우)인 경우  D의 변화가 그대로 출력에 나타난다. 이런 게이트를 여는 시간을 최소화해서 거의 순간적으로 D(입력)의 상태에 맞춰 출력 상태를 변경할 수 있게 하는 방법은 무엇일까....?

 

#3플립플롭

위의 문제를 해결하기 위해 

논리수준이 한 수준에서 다른 수준으로 전이되는 중간에 데이터를 잡아내는 방법(이런 전이를 에지(edge)라고 한다)

이 필요하다 논리수준사이(0~1, 1~0 )에서 전이가 순식간에 데이터를 잡아내야 한다. 이런 에지의 의해 데이터 변화가 촉발되는 래치 (edge-trigger latch)를 플립 플롭이라고 한다. S-R래치를 양의 에지에 의해 변화가 촉발되는 플립플롭(논리 수준이 0에서 1로 바뀌는 순간에 플립플롭의 출력이 바뀐다는 뜻) 그리고 음의 에지에 의해 변화가 촉발되는 플립플롭(1~0)을 만들 수 있다.

#4카운터(비동기, 동기)

플립플롭을 응용한 회로 중에는 1,2,3 순서대로 수를 세는 카운터가 있다. 3비트 리플 카운터를 보면 0에서 1로 가는 횟수를 세서 3비트 수 (C2,C1,C0)를 만들어 낸다. reset-bar을 이용하면 카운터를 0으로 재설정 할 수 있다. C0은 C1를 바꾸고 C1은 C2를 바꾸고 비트가 늘어난다면 계속 이런 과정이 반복된다. 그 와중에 각 플립플롭이 약간의 시차를 두고 바뀌기 때문에 이 회로를 비동기 카운터 라고도 부른다.

 

비동기 시스템은 언제 결과를 살펴봐야 맞는지 알기 어렵다는 단점이 있다. 이것을 해결하기 위해 각 비트의 플립플롭에 CK(Clock)신호를 병렬로 연결하면 동시에 일어나기 때문에 모든 플립플롭의 상태가 동시에 변하게 된다. 이것을 동기 카운터 라고 한다. 카운터를 사용하면 시간을 셀 수 있다. 

%레지스터:  D플립플롭을 사용하면 값을 쉽게 기억할 수 잇다. 동시에 플립플롭을 변화시키기 위해 레지스터 회로는 CK를 공유하는 여러 D플립플롭을 한 패키지에 넣은것이다. 

 

 

+ Recent posts