[디지털논리회로2] 4. 순차 논리(Sequential Logic)

순차 논리(Sequential Logic)은 크게 동기식(Synchronous)와 비동기식(Asynchronous)로 나뉜다.

단어 뜻으로 쉽게 유추할 수 있지만 그렇다면 우리는 '도대체 무엇에 동기가 되고 안되는가?'를 알아야 한다.

이전 장까지 계속 플립플롭을 배웠으며 각 플립플롭이 어떻게 작동하는지에 대해서 숙지했다.

그리고 3. JK / D / T 플립플롭 (https://shanate.tistory.com/entry/%EB%94%94%EC%A7%80%ED%84%B8%EB%85%BC%EB%A6%AC%ED%9A%8C%EB%A1%9C23-JK-D-T-%ED%94%8C%EB%A6%BD%ED%94%8C%EB%A1%AD )

 

[디지털논리회로2]3. JK / D / T 플립플롭

기본적으로 많이 보게 되는 플립플롭은 JK / D / T이다. 플립플롭의 특성표를 암기하기보다는 F/F Input의 값이 어떻게 설정됐는지를 알 필요가 있다. 따라서 이번 장에서는 각각의 플립플롭에서 Inpu

shanate.tistory.com

하단을 보면 플립플롭은 CLK에 기본적으로 묶여있음을 알 수 있다.

 

기본적인 블록은 다음과 같이 약속된다.

이 플립플롭 블록들이 같은 clk에 묶인다면 그것을 동기식이라 하고 하나라도 같이 묶이지 않은 것이 있다면 비동기식이라 일컫는다.

 

디지털논리회로1에서 배운 조합 논리(Combinational Logic)과 2에서 배우게 되는 플립플롭을 합친 회로의 간결한 구성은 다음과 같다.

 

조합 논리에 오가는 외부 입/출력은 있을 수도 없을 수도 있다.

단, 플립플롭에 의해 출입하는 F/F state(조합 논리 기준으로 인풋)와 F/F Input(조합 논리 기준으로 아웃풋)은 필수불가결한 요소이다. 우리는 이 출입이 존재하지 않는다면 시퀀셜 로직이라 부를 수 없다.

또한, 괄호 안에 조합 논리 기준으로 부족한 부분을 설명한 이유는

"결국 플립플롭을 배우는 이유는 그에 따른 회로도를 그리기 위함이기 때문이다. 플립플롭은 단순 장치라 보면 되는 것이고 우리는 이에 따른 콤비네이셔널 로직의 회로를 그리는 것이 목적이다."

디지털논리회로를 처음 배울 때 기본적인 AND 게이트, OR 게이트와 같은 것에 대해 진리표(Truth Table)을 만들었다. 2에서도 마찬가지로 이 진리표를 만드는 것이 목적이고 이 진리표에 따라 회로를 그리는 것이 최종 목표라 할 수 있다.

 

이 진리표를 전에도 밝혔듯이 state transition table이라 한다.

 

-----------------------------------------------------------------------------------------------------------------------------------

이제 진리표를 만들기 위한 정보는 다 주어졌다. 다만 이 정보를 어떻게 활용을 해야하는지 숙지를 해야한다.

물론, 충분한 시간을 들여 어떻게 해나가야하는지 스스로 정립하는 것도 가능하지만 비효율적이라 생각한다.

 

1. ext Input이 있는가 없는가, 있다면 몇 개인가?

   ext Output이 있는가 없는가, 있다면 몇 개인가?

 

2. F/F이 몇 개 사용되었는가? 어떤 F/F가 사용되었는가?

 

3. F/F의 Input Equation을 작성한다. f(F/F state , ext input)

 

4. ext output의 Equation을 작성한다. f(F/F state , ext input)

 

여기서 equation은 K-map에 의해서 만들며 이를 통해 회로를 작성할 수 있게 된다.

다시 한 번 상기시켜보면 이 모든 단계가 하나의 회로를 그리기 위한 단계라는 것이다.

중간에 하나라도 꼬이게 된다면 그 회로는 정상적으로 그렸다고 할 수 없을 뿐더러 제대로 작동할지도 미지수일 것이다.