다음 gif에 나온것과 같다.
1. 현재 보이는 것이 Sense Amplifier Based Register이다.
2. CLK = 0일 때, 위에 표시한 2개의 PMOS는 켜지고, 아래의 NMOS는 꺼져서, 가운데 있는 Back to Back Inv는 동작하지 않는다.
3. 그리고 PMOS가 켜져서, R = S = 1이 된다.
4. Latch는 Q와 QB값을 예전의값 그대로 hold하게 된다.
5. CLK가 rising edge일때 어떻게 되냐면
6. 위의 2개의 PMOS는 꺼지고 아래의 NMOS가 켜져서, BTB Inv가 동작을 시작하게 되는데,
7. 만약 A = 1이라고 한다면, BTB Inv의 왼쪽의 NMOS에서 1->0으로 떨어지게 된다. 이게 왜냐면,
8. 처음에 PMOS가 켜졌을 때, Y의 값이 1로 잡혔기 때문이다. 그래서 계속 켜져있어서 저기가 1->0이 된 것이다.
9. 그래서 R의 값이 1->0으로 떨어지고 S의 값은 BTB inv 때문에 계속 1이므로, 결국 Q는 rising edge로 바뀔 때에, 1로 된다.
10. 그리고 falling edge일 때는 또 R = S = 1로 precharge 되서 Q, Q_bar 값을 hold 한다.
+) 추가로, clk=1일 때, a의 값이 바뀐다 해도, 일단 왼쪽 a가 게이트로 연결된 mos는 켜지나 꺼지나 상관이 없고 오른쪽 a_bar에 연결된 모스는 켜져도 이미 그 위의 nmos가 꺼져버린 상태라 소용이 없다
----------------------------------------------------
그런데 여기서 아래의 빨간색 동그라미를 친 MOS가 왜 필요하나? 라는 의문을 가질 수 있다.
이것은 짧게 말하면, clk가 1인 상태에서 IN값이 변했을 때, 값이 변하지 않도록 해주기 위함이다.
왼쪽의 그림처럼, 표시한 MOS가 없다면, IN이 1->0이 되었을 때, IN이 연결된 MOS는 꺼지게 되는데, 그 위에 leakage path때문에, 전압이 충전되어 다시 0->1이 되어버릴 수도 있다. 하지만 오른쪽 처럼
MOS가 있다면, discharge path가 생기기 때문에 문제가 없다.
'수업 > 디지털집적회로' 카테고리의 다른 글
| Multiplexer Based Latches (0) | 2015.06.08 |
|---|---|
| Set up Time Violation, Hold Time Violation (0) | 2015.06.08 |
| Set-up time을 제대로 지키지 않을 시에 발생하는 문제 (0) | 2015.06.08 |