이신플러스의 달콤쌉싸름한 낙원

반응형

D Latch



load 가 1이면

첫번째 트랜지스터가 켜지고 두번째 트랜지스터가 꺼집니다.

point a will have the value of data the feedback loop is broken


load가 0이면

첫 트랜지스터는 꺼지고 두번째가 켜지게 되죠

the feedback loop is closed memory element retains its storage


기억 회로의 기초입니다.


이미 들어와있는 데이터가 기억됩니다.

cmos형태에서 자주사용되며, 우리는 이러한 게이트 보다는 and or not 게이트로 사용할것입니다.


Basic Latch

nor 게이트 2개로 만들게 됩니다.


입력은 reset, set 두개입니다.


여기서 잠깐,

컨트롤링 인풋 이란? controling input

은 and 게이트에서는 한개의 입력이 0일때 무조건 출력이 0이됩니다.

마찬가지로 or게이트에서는 한개의 입력이 1이라면 무조건 출력이 1이됩니다.

입력에서 가장 힘을 가지고 있는 입력이 컨트롤링 인풋이라고 할수 있습니다.


컨트롤링 인풋을 잘 이해하고있다면, 회로 이해가 매우 쉬워집니다.


우리는 basic latch에서는 r이 1이고 s 0 나누어집니다. 하지만 회로도에서 본다면,

s r이 모두 1 1 이 되고 r하고 s의 값이 모두 00 이 되게 된다면, 우리는 회로를 예측할수 없는 상태가 됩니다.

(실제로 회로실험을 해보면 둘중 어느 한쪽이 1이 들어오고 다른 한쪽은 0이 들어오게됩니다.

그리고 한번 불이 들어온 회로에는 대체로 계속 불이 들어오게됩니다.)

하지만 우리는 논리적으로 어느쪽에 1이 들어올지 알수 없기떄문에

우리는 이 불안정한 값을 사용할 수 없습니다.


SR Latch

클락이 추가되었습니다.

클락이 0 이라면 회로는 동작하지 않습니다.


클락이 1일때 동작하게 됩니다.


하지만 여기서도 같은 문제가 발생합니다.


r,s가 1, 1 이 되는 순간에 클락이 0이 떨어지게 되면 이 역시 논리적으로 알수 없는 상황이 됩니다.

즉 같은 문제가 발생하게되는것이죠,


S&R Reversed


s시그널과 r시그널을 반대로 넣어놓은 게이트입니다.

여기서는 nand 게이트를 4개 사용합니다.


Gated D latch


d레치는 nand 게이트로 만들어진 latch를 기본으로 시작합니다.


D(DATA)입력을 하나로 묶어서 2개로 나누고 한쪽에 NOT 게이트를 붙으므로

입력이 항상 0,1 1,0으로 반대로만 나옵니다.

그러므로 1,1이라는 숫자가 나오지않고 앞선 오류를 없앨수 있습니다.


타이밍 다이어그램을 보면 이해하기 더 쉽습니다.

클락이 0일때는 D값에 상관하지 않습니다. 값이 전해지지 않기 때문이지요.


플립플롭은


여기까지 배운 래치 들을 두개 연결한 것으로 기본적으로 만들어진다고 보시면 됩니다.


즉 주종 플립플롭 = 마스터슬레이브 플립플롭이 만들어지게됩니다.


플롭플롭에서는 동작 시간이 매우 중요합니다.


Setup time 과 hold time 이 두가지로 나눠집니다.


셋업타임은 데이터가 클럭보다 얼마나 먼저와서 기다려야하는지에 대한 시간입니다.

데이터는 엣지보다 조금 더 일찍 와있어야 합니다.

그시간을 setup타임이라고 합니다.


그리고 엣지시간 후에도 일정시간동안 유지되어줘야합니다.

이것을 hold time이라고 합니다.


만약 홀드타임을 지켜주지 않는다면 플립플롭은 이 데이터가 이전데이터인지 새로운 데이터인지 인지하기 어려워 질것입니다.

(the minimum time that the d signal must remain stable after the negative edge of the clock signal)


Edge-triggered D flip-flop

엣지 트리거드 d플립플롭입니다.

클락이 0일때

d데이터는 클럭에 의해서 가운데 값이 1의 값을 가지게됩니다. nand게이트의 not controling input이기때문에 아무런 변화를 주지 않습니다.


정리해 봅시다.


gated D latch의 경우에는 클락이 1인 경우에 d의 값을 그대로 복사합니다.

0일때에는 전의 값을 복사합니다.

pogitive-edge-triggered d 플립플롭에서는 짧은 엣지 시간에의 d값을 복사합니다.

마찬가지로 0일때에는 전의 값을 복사합니다.

negative-edge-triggered d 플립플롭에서는 엣지의 값이 1->0으로 변하는 순간의 d의값을 복사합니다.




asynchronous Clear / Preset

without regard to the clock signal


Clear는 0으로 만들어주는 경우이고

Preset은 1로 만들어주는 경우입니다.


즉 bar Clear는 0이 입력된다면 q의 값을 0으로 만들어주고

bar Preset은 0이 입력될때 q의 값을 1로 만들어줍니다.


동기 클리어를 생각해봅시다.


clear =1

the flip-flop operates normally


clear =0

the flip-flop will be cleared to 0 on the next positive edge of the clock



T(토글) 플립플롭을 살펴봅시다.

이러한 플립플롭들은 예전에 사용된 플립플롭입니다.

다양한 플립플롭이 필요했기떄문이죠, 원하는 기능을 만드는데 다양하게 사용하는것이 필요했습니다.

하지만 지금은 어떨까요?

요즘과 같이 커스텀rc에서는 쉽게부르고 삭제가 가능하기떄문에 지금은 사용이 잘 안됩니다.

toggle플립플롭은 d플립플롭 앞에 멀티플렉서가 있다고 보시면됩니다.

t가 0일때는 이전상태를 유지하고

t가 1일때는 이전상태를 반전합니다.


심볼의 모양을 확인해두세요.


jk플립플롭을 살펴봅시다.


jk플립플롭은 T플립플롭과 생긴게 많이 다르지 않습니다. t의 묶인 입력을 끊어놓은것처럼 생겼습니다.


jk가 각각  0, 1 일때는 sr플립플롭처럼 사용할수 있습니다.

j,k가 각각 1,1 일때는 T플립플롭처럼 사용할 수 있게되죠.

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

이동레지스터는 n-bit만큼 모아서 저장한 구조체라고 생각하시면됩니다.


생긴것을 보시면 클락을 모두 하나로 묶어서 동기화 시키고 있습니다.

입력은 외부입력 하나만 직접 들어가고 나머지는 첫 출력이 두번째 입력에 두번째 입력이 세번쨰 출력으로 연결됩니다.


이러한 sift 레지스터는 곱셈,나눗셈에 사용되기도 합니다.

2진수는 오른쪽이나 왼쪽으로 이동될때 곱하기2 나누기2 의 특성을 가지기 때문입니다.


레벨에 따라 감지하는 latch 는 만들 수 없습니다.

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


이 이동레지스터에 새로운 기능을 넣어봅시다.

parallel transfer

// n-bit data at one


shift/Load 입력이 생긴것을 볼수 있는데요

이 입력의 값이 0 일때 shift 레지스터의 동작을하고

1일때 Load의 동작을 하는 재밌는 레지스터가 탄생합니다.



이제 카운터(counters)를 살펴봅시다.

계수기라고도 부릅니다.

*count the number of occurrences of certain events

이러한 회로를 간단하게 구성하는 방법을 알아봅시다.


비동기와 동기 회로 따로 나누어지지만,

비동기 회로는 사실 문제점이 많습니다.

이것보다는 동기 회로를 사용하는데 중점을 가지도록합시다.

하지만 우리는 공부하는 입장으로써 비동기회로의 동작원리를 살펴봅시다.



반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading