SR 래치를 이해하는 방법


14

SR 래치가 어떻게 작동하는지 머리를 감쌀 수 없습니다. 겉보기에는 R의 입력 라인과 S의 입력 라인을 연결하면 Q와 Q '의 결과를 얻을 수 있습니다.

그러나 R과 S 모두 상대방의 출력에서 ​​입력이 필요하고 상대방의 출력에서 ​​상대방의 출력에서 ​​입력이 필요합니다. 닭고기 나 계란이 먼저 나오는 이유는 무엇입니까?

이 회로를 처음 연결하면 어떻게 시작됩니까?

SR 래치


1
나는 마침내 책 그러나 어떻게 그것을 아는가 에 정말 환상적인 답변을 찾았습니다 . 24 페이지의 링크에서 확인할 수 있습니다.
CodyBugstein

SR Latch를 더 잘 이해하고 00, 01, 10 및 11과 같은 다른 입력에 대해 어떻게 동작하는지 알아 보려면이 비디오를 확인하십시오. www.youtube.com/watch?v=VtVIDgilwlA

답변:


5

지각적인 질문. 실제로, 시뮬레이션 프로그램에서이 래치를 빌드하면 실제로 어떤 상태에서 시작할지 예측할 수 없음을 보여줍니다.

NOR 게이트가있는 RS 래치, 대부분의 신호는 "알 수 없음"에 빨간색으로 표시됩니다

그러나 입력 중 하나를 높게 설정하면 (왼쪽의 푸시 버튼 임) 신호가 전파되고 (1 OR [anything]은 1 임) 회로는 해당 상태를 래치합니다.

같은 걸쇠;  하나의 입력이 높다;  선이 모두 밝거나 짙은 녹색으로 바

NOR 게이트이므로 입력이 높을 때 반전 출력이 낮아집니다. 내가 사용한 프로그램은 Logisim입니다. 작고 처음부터 추천합니다. 논리 컴파일러 (FPGA 및 기타 모든 것)는 초기화되지 않은 상태에 대해 불평하는 것을 좋아합니다. 이것은 훌륭한 첫 번째 예였습니다.

이제는 실생활에서 회로가 자체적으로 하나 또는 다른 상태로 무작위로 래치됩니다. 다른 많은 사람들이 그것을 지적했습니다. 그러나 때때로 어떤 상태에서든 안정적으로 시작하는 것이 중요하며 이것이 바로 모든 경고에 관한 것입니다.


큰 설명을 주셔서 감사합니다 .. 연결하면 회로가 임의의 상태에서 시작됩니다.
CodyBugstein

@Imray "무작위 상태"라는 문구를 사용하지 않고 "정의되지 않은 상태"라는 문구를 사용합니다. 무작위로 선택할 수 있고 매번 같은 일이 될 수 있습니다. 중요한 것은 당신이 모르고 돌보지 않는 것입니다. 출력에 의존하기 전에 래치를 초기화해야합니다 (R 또는 S를 짧게 펄싱).
Scott Chamberlain

나는 당신의 대답을 다시 읽고 이전에 놓친 것들을 이해했습니다. 좋은 설명!
CodyBugstein

5

플립 플롭은 쌍 안정 멀티 바이브레이터로 구현됩니다. 따라서 Q와 Q '는 허용되지 않는 S = 1, R = 1을 제외한 모든 입력에 대해 서로 역으로 보장됩니다. SR 플립 플롭의 여기 테이블은 신호가 입력에 적용될 때 발생하는 상황을 이해하는 데 도움이됩니다.

S R  Q(t) Q(t+1)   
----------------
0 x   0     0       
1 0   0     1   
0 1   1     0   
x 0   1     1   

출력 Q 및 Q '는 신호가 S 및 R에 적용된 후 상태를 빠르게 변경하고 정상 상태로 유지됩니다.

Example 1: Q(t) = 0, Q'(t) = 1, S = 0, R = 0. 

State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(0 OR 1) = 0
         Q'(t+1 state 1) = NOT(S OR Q(t)) =  NOT(0 OR 0) = 1

State 2: Q(t+1 state 1)  = NOT(R OR Q'(t+1 state 1)) = NOT(0 OR 1) = 0
         Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  =  NOT(0 OR 0) = 1     

Since the outputs did not change, we have reached a steady state; therefore, Q(t+1) = 0, Q'(t+1) = 1.


Example 2: Q(t) = 0, Q'(t) = 1, S = 0, R = 1

State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(1 OR 1) = 0
         Q'(t+1 state 1) = NOT(S OR Q(t))  = NOT(0 OR 0) = 1


State 2: Q(t+1 state 2)  = NOT(R OR Q'(t+1 state 1)) = NOT(1 OR 1) = 0
         Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  =  NOT(0 OR 0) = 1     


We have reached a steady state; therefore, Q(t+1) = 0, Q'(t+1) = 1.


Example 3: Q(t) = 0, Q'(t) = 1, S = 1, R = 0

State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(0 OR 1) = 0
         Q'(t+1 state 1) = NOT(S OR Q(t)) =  NOT(1 OR 0) = 0

State 2: Q(t+1 state 2)  = NOT(R OR Q'(t+1 state 1)) = NOT(0 OR 0) = 1
         Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  = NOT(1 OR 0) = 0     

State 3: Q(t+1 state 3)  = NOT(R OR Q'(t+1 state 2)) = NOT(0 OR 0) = 1
         Q'(t+1 state 3) = NOT(S OR Q(t+1 state 2))  = NOT(1 OR 1) = 0     

We have reached a steady state; therefore, Q(t+1) = 1, Q'(t+1) = 0.


Example 4: Q(t) = 1, Q'(t) = 0, S = 1, R = 0

State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(0 OR 0) = 1
         Q'(t+1 state 1) = NOT(S OR Q(t)) =  NOT(1 OR 1) = 0

State 2: Q(t+1 state 2)  = NOT(R OR Q'(t+1 state 1)) = NOT(0 OR 0) = 1
         Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  = NOT(1 OR 1) = 0     

We have reached a steady state; therefore, Q(t+1) = 1, Q'(t+1) = 0.


Example 5: Q(t) = 1, Q'(t) = 0, S = 0, R = 0

State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(0 OR 0) = 1
         Q'(t+1 state 1) = NOT(S OR Q(t)) =  NOT(0 OR 1) = 0

State 2: Q(t+1 state 2)  = NOT(R OR Q'(t+1 state 1)) = NOT(0 OR 0) = 1
         Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  = NOT(0 OR 1) = 0     

We have reached a steady; state therefore, Q(t+1) = 1, Q'(t+1) = 0.


With Q=0, Q'=0, S=0, and R=0, an SR flip-flop will oscillate until one of the inputs is set to 1.

    Example 6: Q(t) = 0, Q'(t) = 0, S = 0, R = 0

    State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(0 OR 0) = 1
             Q'(t+1 state 1) = NOT(S OR Q(t)) =  NOT(0 OR 0) = 1

    State 2: Q(t+1 state 2)  = NOT(R OR Q'(t+1 state 1)) = NOT(0 OR 1) = 0
             Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  = NOT(0 OR 1) = 0     

    State 3: Q(t+1 state 3)  = NOT(R OR Q'(t+1 state 2)) = NOT(0 OR 0) = 1
             Q'(t+1 state 3) = NOT(S OR Q(t+1 state 2)) =  NOT(0 OR 0) = 1

    State 4: Q(t+1 state 4)  = NOT(R OR Q'(t+1 state 3)) = NOT(0 OR 1) = 0
             Q'(t+1 state 4) = NOT(S OR Q(t+1 state 3))  = NOT(0 OR 1) = 0     
    ...


As one can see, a steady state is not possible until one of the inputs is set to 1 (which is usually handled by power-on reset circuitry).

SR 플립 플롭의 가장 간단한 구현 ( http://en.wikipedia.org/wiki/File:Transistor_Bistable_interactive_animated_EN.svg 참조 )을 살펴보면 두 개의 바이폴라 접합 트랜지스터 (BJT)와 네 개로 구성되어 있음을 알 수 있습니다. 저항 (SPST 토글 스위치를 접지 및 V + 사이에서 설정 및 재설정 라인을 전환 할 수있는 SPDT 스위치로 접지로 교체) BJT는 공통 이미 터 인버터로 구성됩니다. 각 트랜지스터의 콜렉터 (출력)는 반대쪽 트랜지스터의베이스 (입력)로 피드백됩니다. 입력 S는 컬렉터 연결이 출력 Q (R1 / R3의 정션) 역할을하는 BJT의 출력과 유선으로 연결됩니다. 입력 R은 컬렉터 연결이 출력 Q '(R2 / R4의 정션) 역할을하는 BJT의 출력과 유선으로 연결됩니다.

회로가 처음으로 전원을 켜면 트랜지스터가 포화 영역으로 순식간에 순식간에 바이어스되지 않습니다. 이는 Q와 Q '가 논리 레벨 1에 있음을 의미합니다. 각 컬렉터에서 사용 가능한 전압은베이스에 공급됩니다 반대쪽 트랜지스터의 전류가 포화 영역으로 순방향 바이어스되도록한다. 순방향 바이어스가 된 트랜지스터는 먼저 전류를 전도하기 시작하여 컬렉터 저항에서 전압 강하가 발생하여 출력을 로직 레벨 0으로 설정합니다. 콜렉터 전압이 떨어지면 반대쪽 트랜지스터가 앞으로 편향되고; 따라서 플립 플롭의 초기 상태를 설정합니다. 기본적으로 예측할 수없는 결과를 초래하는 하드웨어 경쟁 조건입니다.


제공된 링크에서 회로 애니메이션을보다 간단한 용어로 볼 수 있습니까? 초보자 초급 과정
CodyBugstein April

3

당신이 말했듯이, 그것은 정의되지 않았습니다. 실제로 래치를 특정 상태로 두어야하는 과도 현상 또는 쿼크가 있지만 어떤 상태가 될 것인지 보장 할 수는 없습니다. 이는 주어진 초기 상태를 정의하는 두 게이트에서 일치하지 않기 때문에 발생합니다 (기본적으로 회로는 진정한 디지털 SR 래치로 작동하지는 않지만 실제와 같이 복잡한 아날로그 회로입니다). 초기 출력은 다소 무작위 적이거나 Q=1 and ~Q=0또는 Q=0 and ~Q=1입니다.

데이터 시트에서 명시 적으로 언급하지 않는 경우 실제 초기화 상태는 배치, 보드 배치, 환경 요인 (온도 / 습도 등) 및 노화의 다른 부분 사이에서 변경 될 수 있으므로 다른 상태보다 선택된 상태에 의존하지 않습니다. (완전한 요인 목록이 아님).

상태를 정의하는 가장 좋은 방법은 시작 후 SR 래치를 알려진 상태로 설정하기 위해 세트를 설정하거나 재설정하는 것입니다.

참고로, 일반적으로 S와 R을 동시에 주장하는 SR 래치는 정의되지 않은 동작을 초래할 수 있으며 비슷한 부두에 의존하여 출력을 설정합니다 (실제 구현은 두 출력을 모두 차단하고 두 개를 임의로 토글 할 수 있음) 두 출력 켜기 등). 한 핀이 다른 핀보다 먼저 어서 트되지 않으면 수퍼 캣이 언급 한 것처럼 하나의 핀만 어서 SR 래치가 알려진 상태로 들어갈 수 있습니다. 다른 유형의 래치 / 플립 플롭은 다른 동작을 정의 할 수 있습니다. 예를 들어 JK 플립 플롭은 두 핀을 모두 지정하여 출력을 토글하도록 정의합니다 (Q = ~ Qprev, ~ Q = Qprev).


그러나 내 질문은 두 입력이 아직 존재하지 않는 입력에 의존하는 경우 어떻게 설정할 수 있습니까? 그것은 "당신이 나를 공중으로 들어 올린 다음 내가 당신을 들어 올릴 것이고 우리는 공중에 떠있을 것입니다"
CodyBugstein

2
@Imray-플립 플롭의 한쪽은 새로 전원을 공급할 때 항상 다른 쪽을 이깁니다. 약간의 타이밍 불일치로 인해 일반적으로 항상 동일한 방식으로 전원이 켜지지 만 이러한 유형의 장치에 대해서는 보장 할 수 없습니다.
Andy 일명

1
바로 그거죠. 불일치 현상에 따라 다릅니다. 양쪽이 정확히 동일하다고 생각할 필요는 없습니다. 그들은 아니야. 그중 하나는 느리고 다른 하나는 더 빠르며, 그 중 하나는 처음에 켜집니다.
Gustavo Litovsky

예, 초기 상태가 "유효"하도록하기 위해이 불일치 동작에 의존하지만 (Q = ~ Q는 얻지 못함)이 동작에 의존하여 Q가 항상 시작시 특정 상태가되도록하는 것은 아닙니다. 배치에서 부품마다 다를 수 있으며 온도 / 시간에 따라 동일한 부품으로 변경 될 수도 있습니다. 물론 데이터 시트에 달리 명시되어있을 수도 있지만, 일반적으로 달리 명시하지는 않겠습니다.
helloworld922

래치의 동작은 두 입력이 모두 "활성"상태 일 때 정의됩니다 (NOR 래치의 경우 높음; 입력 중 하나가 다른 쪽보다 눈에 띄게 비활성화 되는 경우 NAND 래치의 경우 낮음] .
supercat

2

게이트가 반전된다는 것을 명심하십시오. 이것은 긍정적 인 피드백 루프를 제공합니다. S와 R이 모두 0이고 하나의 출력이 1이라고 가정하면이 게이트는 다른 게이트로 피드백하여 다른 출력을 0으로 강제합니다. 이런 식으로 게이트는 두 가지 안정적인 상태 중 하나에 있습니다.

S 또는 R 중 하나를 1로 설정하면 해당 게이트가 0을 출력하고 다른 게이트는 0을 출력합니다. 다시, 안정.

예를 들어 초기 상태는 S = 0, R = 0, Q = 0, Q # = 1입니다. 이제 S = 1로 설정합니다. 그러면 낮은 게이트 출력 (Q #)이 0으로 변경됩니다.이 0은 상단으로 공급됩니다. 출력 (Q)을 1로 강제합니다.이 1은 하위 게이트로 피드백됩니다. S를 다시 0으로 설정하면 하위 게이트는 여전히 다른 게이트에서 1을 수신합니다. Q # 출력을 0으로 유지합니다.

Q가 이미 1이고 S를 1로 설정하면 하단 게이트의 두 입력이 모두 1이므로 변경 사항이 없습니다.


실제로 실행할 수있는 입력이 없으면 Q '가 어떻게 될 수 있는지 이해할 수 없습니다.
CodyBugstein

다시, 안정 상태는 ONE OF Q 및 Q #이 1 인 경우에만 해당됩니다. 그렇지 않은 경우 (예 : 전원 공급시) 게이트는 두 게이트의 실제 속도 등에 따라 두 가지 안정적인 상태 중 하나를 빠르게 가정합니다. 게이트가 안정되면 두 입력을 사용하여 안정 상태 사이를 전환 할 수 있습니다.
DoxyLover

1

나는 당신이 요구하는 중요한 비트가 래치가 알 수없는 상태로 작동한다는 사실과 관련이 있다고 생각합니다. 그래서 우리는 어떻게 알려진 상태로 만들 수 있습니까? NOR 게이트에 대한 입력 중 하나가 1이면 다른 입력의 상태에 관계없이 출력은 0이어야합니다. 따라서 SET 또는 RESET 입력 조합을 적용하면 래치의 이전 상태에 관계없이 항상 래치가 설정 또는 재설정 상태가됩니다.


예, 당신은 내 질문을 이해합니다! 그러나 나는 아직도 당신이 쓴 것에 대답하지 않습니다. 래치가 연결되지 않았고 갑자기 처음으로 x와 y가 연결되었다고 가정합니다. 초기 게이트를 통과 할 수없는 경우 Q에 어떤 영향을 미칠 수 있습니까?
CodyBugstein

나는 당신이 R과 S 입력이 X와 Y의 값을 얻는다는 것을 의미한다고 가정합니다. X 또는 Y가 하나라면, 그 NOR 게이트의 출력은 0 이어야합니다 ... 이것은 NOR 게이트가 작동하는 방식입니다. 따라서 0은 다른 NOR 게이트로 피드백되며, 입력에 대해 0을 갖는 것으로 추정됩니다 (X가 1이면 Y가 0이거나 그 반대). 이제 두 번째 NOR 게이트에는 두 개의 입력이 0이고 그 출력은 1이어야합니다. Q와 Q '에 어떤 일이 일어날 지 말할 수없는 유일한 상황은 X와 Y (S와 R 모두를 의미)가 전원을 켠 직후에 0으로 설정하십시오. 다른 사람들이 지적했듯이, 이것은 불안정한 상태입니다.
Joe Hass
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.