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

기본적으로 많이 보게 되는 플립플롭은 JK / D / T이다.

플립플롭의 특성표를 암기하기보다는 F/F Input의 값이 어떻게 설정됐는지를 알 필요가 있다. 따라서 이번 장에서는 각각의 플립플롭에서 Input이 어떻게 설정되느냐에 따른 기능을 숙지할 필요가 있다.

 

 

D-F/F는 가장 간단한 특성표를 가지고 있다. 기본적으로 다음 상태(Next State)가 0이 되도록 하는 Reset, 1이 되도록 하는 Set의 기능이 있다. D 플립플롭의 특성표는 다음과 같다.

특성표를 보면 알 수 있듯이, 현재 상태는 상관 없이 다음 상태를 보기만 하면 해당 플립플롭이 어떻게 작동하는지 손쉽게 확인이 가능하다.

 

 

T-F/F는 D 플립플롭과 다른 기능을 가지고 있다. Store와 Toggle 기능을 하는데 현재 상태를 다음 상태에서도 유지할지 아니면 현재 상태에 반대되는 상태를 만들지의 기능을 한다. 특성표는 다음과 같다.

 

그 중 JK는 현재 상태를 유지하는 Store, 다음 상태(Next State)를 무조건 0으로 변화시키는 Reset, 다음 상태를 무조건 1로 변화시키는 Set, 현재 상태의 값을 다음 상태에서 보수화해버리는 Toggle이 있다. 특성표는 다음과 같다.

X가 의미하는 것은 Don't Care로 현재 상태의 영향을 받지 않음을 의미한다.

 

 D플립플롭으로 설정한다면 Next State의 값만 보고 F/F Input의 값을 알 수 있고, F/F Input의 값만 안다면 Next State의 값을 바로 알 수 있다.

※ 기본적으로 F/F Input = Next State at D Flip-Flop 이다. 단, 무작정 암기하기보다는 표를 만들어 보고 당연히 그럴 수 밖에 없다는 것을 인지한다.

 

 T플립플롭은 단순하게 입력값과 다음 상태의 값만을 보고 판단할 수 없다.

Next State의 값을 모른다면 입력값과 현재 상태를 동시에 확인해야하며, F/F Input을 모를 때도 마찬가지로 현재 상태와 다음 상태를 동시 확인해야 한다.

예)

D플립플롭처럼 F/F Input 하나만 봐서는 이 Next State의 값을 전혀 판단할 수 없다. 하지만 T 플립플롭의 인풋에 따른 기능을 숙지하고 있다면 인풋이 1일 때, 기능은 Toggle이라는 것을 알 수 있다. 따라서 현재 상태가 0이면 그에 따른 다음 상태는 1이 되는 것을 쉽게 확인가능하다.

 

 

JK플립플롭 또한 T플립플롭과 마찬가지로 입력값과 Next State만으로는 정확한 특성표의 파악이 불가능하다. 이 또한 예제 하나로 정리를 해보려 한다.

특성표를 외우지 말고 인풋에 따른 기능만을 숙지하면 된다는 것을 이 포스팅 첫 문단에서 적었다. 

JK=01이면, 우리는 이 플립플롭은 당연히 0으로 Set할 것이라는 것을 알 수 있다. 따라서 이 때의 경우에는 Present State가 무엇이든지 간에 Next State는 무조건 0으로 귀결됨을 알 수 있다.

 

 

디지털논리회로를 1부터 수강했다면 1에서의 제일 중요하게 배우는 것은 Cobinational Logic이다. 이 때, 우리는 수도 없이 많은 Truth Table(진리표)를 그리며 문제를 풀고 이해했을 것이다.

2에서도 1과 비슷하게 흘러가게 되는데 2에서는 Sequential Logic을 중요시하게 배운다. 이 때, 우리는 State Transition Table을 이용할 것이다. 이 표를 물 흐르듯이 그리려면 서문에서 밝혔듯이 인풋에 따른 기능만큼은 반드시 숙지해야 한다.

 

 

 

 

단, 플립플롭은 클락 엣지에서만 온전한 기능을 한다는 것을 인지해야 한다. Rising이든 Falling이든 클락 엣지에 있어야만 플립플롭은 제대로 된 작동을 하지만 엣지와 엣지 사이에서는 State가 변하지 않는다. 변하지 않는다는 것은 그 사이에서는 Store 기능을 한다는 것을 의미한다. 

이는 문제에서 중요하게 고려되는 설정은 아니지만 추후에 이 디지털논리회로를 기반으로 한 Verilog와 관련된 과목을 수강하게 될 때, 이 CLK를 고려하지 않는다면 원하는 프로그램을 만들 수 없다는 것은 자명하다.