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.