상세 컨텐츠

본문 제목

디지털공학 - Sequential Circuit - storage elements

study/electronic engineering

by 경재왕 2020. 6. 9. 00:30

본문

현재 state를 저장해 활용해 보자.

 

Sequential circuit이랑 output이 f(state, in)이 된다.

저장하는 element는 래치(Latch)와 플립플롭(Flip-Flops)으로 구성된다.

 

present state와 next state가 추가된다. 

동기와 비동기로 나뉜다. clock pulse C를 이용하는 것은 동기신호 이다. 

 

SR LATCH를 봐보자.

1) NOR 게이트로 구성된 래치이다.

 

S(SET), R(RESET)이 인풋으로 들어가고 NOR게이트를 거쳐 Q와 Q'로 나온다.

처음에, S가 1이 들어간다고 생각해 보자. S에 1이 들어가면 OR은 무조건 1이 나온다. N을 거치므로 반대인 0이 출력된다. 다시 이 0이 위에 NOR에 들어간다고 하고 R에 0이 들어간다 그러면 1의 값이 나온다.

정리하면 S R이 1 0 이 들어가면 Q Q'는 1 0 이 나온다.

이 상태에서 (중요) 0 0이 들어가면 유지되는 값으로 1 0이 나온다. 즉, 저장된다.

 

간단하게 외울 점은,

SR LATCH(with nor)에선 1 1이 들어가면 값이 안나오고, 0 0이 들어가면 앞에 값이 유지된다.

 

2) 다시, NAND 게이트로 구성된 래치를 봐보자.

 

R에 0이 들어가면 AND 이므로 무조건 0이 나오고 N을 거쳐 1이 출력된다. 이게 S로 들어가서 S에 1이 들어가면 AND로 1이 나오고 N을 거쳐 0이 출력된다. 따라서 정리하면, S R이 1 0이 들어가면 Q Q'는 0 1이 출력된다. 

이 상태에서 1 1이 들어가면 유지되는 값으로 0 1이 출력된다. 즉, 저장된다.

 

간단하게 외울 점은,

 

SR LATCH(with nand)에선 = S'R' LATCH라고도 한다. = 0 0 이들어가면 값이 안나오고, 1 1이 들어가면 앞에 값이 유지된다. 

 

3) 더 나아가 C 컨트롤, 클락을 넣어보자.

 

회로의 구성은 4개의 NAND 게이트와 C가 들어간다.

C에 0이 들어가면 SR이 무엇이 나오든 인풋 값으로 (S'R' LATCH에) 1 1이 들어간다.

NAND SR LATCH의 인풋이 11이 들어가면 무조건 유지이므로 NO CHANGE 값, 현 상태를 HOLDING한다.

 

반면 C가 1로 켜진다면, 인풋값 SR의 반대값이 NAND SR LATCH에 들어간다. 

이 말은 즉슨, C가 1로 켜진다면 그 후에 NAND SR LATCH의 작동이 BASIC 한 NOR SR LATCH로 바뀐다는 것이다.

00은 유지되고, 11은 정의되지 않는 값이 나온다. 

 

OUTPUT인 Q 관점에서 봐보자.

C가 1로 켜진 시점에서 (0이면 유지되므로 의미 없다.)

원래 Q가 0이고 S R 이 0 0 이 들어오면, (동작은 BASIC SR LATCH로 작동) > 유지되므로 0 값

0이고 S R이 0 1이 들어오면 Q값은 S에 영향을 받으므로 > 0

0이고 S R이 1 0이 들어오면 Q값은 S에 영향을 받으므로 > 1

0이고 S R이 1 1이 들어오면 정의되지 않음.

 

다시 1이고 0 0이 들어오면 변화 없으므로 1

0 1이 들어오면 0

1 0이 들어오면 1

1 1이 들어오면 정의 되지 않는다.

 

이를 간단하게 표현하면 C가 1일때, S R이 01 > Q가 0, 10 > Q가 1, 11이면 Q가 UNDEFINED이다.

 

여기서 Q(t)는 current state이고, Q(t+1)은 next state이다.

 

4) D Latch의 등장이다.

보면 SR의 11이나 S'R'의 00이면 정의되지 않는 값이 나온다.

이를 없애기 위해 D 로 인풋을 통합한다. 

일반적인 C가 들어간 LATCH에 인풋값을 D와 D'로 준다. 즉 1 0 또는 0 1 밖에 인풋이 들어갈 수 있다.

 

간단히 C가 0 이면 이 역시 유지된다. NO CHANGE

C가 1이 들어가고

D가 0이 들어가면 기본 SR로 Q가 0이 출력되고

D가 1이 들어가면 Q가 1이 출력된다.

 

그러나 이렇게 좋아보이는 D LATCH에도 단점이 있으니, 바로 TRANSPARENT 하다. 투명하다.

C가 계속 1일때 아웃풋 값은 계속 바뀐다. 이건 안좋다. 우리가 원하는 것은 1클락당 한번만 바뀌게 (UPDATE) 하고 싶다.

 

FLIP FLOP을 이용해 보자. 

 

 

 

 

 

관련글 더보기