एसआर लैच को कैसे समझें


14

मैं अपने सिर को चारों ओर नहीं लपेट सकता कि एसआर लाच कैसे काम करता है। लगातार, आप R से एक इनपुट लाइन प्लग करते हैं, और S से दूसरी, और आप Q और Q ′ में परिणाम प्राप्त करने वाले हैं।

हालाँकि, R और S दोनों को दूसरे के आउटपुट से इनपुट की आवश्यकता होती है, और दूसरे के आउटपुट को दूसरे के आउटपुट से इनपुट की आवश्यकता होती है। मुर्गी या अंडा पहले क्या आता है ??

जब आप पहली बार इस सर्किट को प्लग करते हैं, तो यह कैसे शुरू होता है?

एसआर लाच


1
मुझे आखिरकार किताब बट हाउ डू इट नो में एक बहुत ही शानदार जवाब मिला । आप इसे 24 पृष्ठ पर लिंक पर देख सकते हैं।
कोडीबस्टीन

एसआर लैच की बेहतर समझ के लिए और यह 00, 01, 10 और 11 जैसे विभिन्न इनपुट के लिए कैसे व्यवहार करता है, इस वीडियो को देखें। www.youtube.com/watch?v=VtVIDgilwlA

जवाबों:


5

एक अवधारणात्मक प्रश्न। वास्तव में, यदि आप एक सिमुलेशन कार्यक्रम में इस कुंडी का निर्माण करते हैं, तो यह वास्तव में आपको दिखाएगा कि यह भविष्यवाणी नहीं कर सकता है कि यह किस राज्य में शुरू होगा:

आरएस कुंडी NOR गेट्स के साथ, अधिकांश सिग्नल "अज्ञात" के लिए लाल रंग के होते हैं

लेकिन अगर आप किसी एक इनपुट को हाई सेट करते हैं (जो बाईं ओर पुशबुटन हैं), सिग्नल (1 या [कुछ भी] बराबर 1 याद रखें) के माध्यम से प्रचार करेगा और सर्किट उस अवस्था को लेट जाएगा:

एक ही कुंडी;  एक इनपुट अधिक है;  रेखाएँ सभी हल्के या गहरे हरे रंग की होती हैं

ये NOR द्वार हैं, इसलिए इनपुट अधिक होने पर उल्टा आउटपुट कम हो जाता है। मेरे द्वारा उपयोग किया जाने वाला कार्यक्रम लॉजिसिम है। यह छोटा है, और मैं इसे शुरू करने के लिए सलाह देता हूं। लॉजिक कंपाइलर (FPGA और बाकी सब) अनइंस्टाल्ड स्टेट्स के बारे में शिकायत करना पसंद करते हैं। यह एक महान पहला उदाहरण था।

अब, मुझे पता है कि वास्तविक जीवन में, सर्किट अपने आप ही एक या दूसरे राज्य में बेतरतीब ढंग से कुंडी लगाएगा। कई अन्य लोगों ने कहा है कि बाहर। लेकिन कभी-कभी, यह महत्वपूर्ण है कि यह मज़बूती से एक राज्य या किसी अन्य में शुरू होता है, और यही सभी चेतावनी के बारे में है।


महान स्पष्टीकरण के लिए धन्यवाद .. अगर मैं सही हो जाता हूं, जब प्लग किया जाता है, तो सर्किट कुछ यादृच्छिक स्थिति में बंद हो जाता है?
CodyBugstein

@ मैं "वाक्यांश" यादृच्छिक राज्य का उपयोग नहीं करूंगा, लेकिन "अपरिभाषित राज्य"। यह बेतरतीब ढंग से चुन सकता है, यह हर बार एक ही बात हो सकती है, महत्वपूर्ण बात यह है कि आप नहीं जानते हैं और परवाह नहीं करते हैं। आपको यह महसूस करने की ज़रूरत है कि आउटपुट पर निर्भर होने से पहले आपको कुंडी (आर या एस उच्च संक्षेप में स्पंदन करके) को आरंभ करना होगा।
स्कॉट चैंबरलेन

मैं सिर्फ आपके उत्तर को समझने और उन चीजों को समझने में लगा हूं, जो पहले याद हो गई थीं। महान व्याख्या!
कॉडीबगस्टीन

5

फ्लिप-फ्लॉप को एक द्वि-स्थिर मल्टीविब्रेटर के रूप में लागू किया जाता है; इसलिए, Q और Q 'को S = 1, R = 1 को छोड़कर सभी इनपुट के लिए एक-दूसरे का विलोम होने की गारंटी है, जिसकी अनुमति नहीं है। एसआर फ्लिप-फ्लॉप के लिए उत्तेजना तालिका यह समझने में सहायक है कि इनपुट पर सिग्नल लगाए जाने पर क्या होता है।

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

आउटपुट क्यू और क्यू 'तेजी से राज्यों को बदल देगा और एस और आर पर सिग्नल लगाए जाने के बाद स्थिर स्थिति में आराम करने के लिए आएगा।

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).

यदि हम एसआर फ्लिप-फ्लॉप के सरलतम कार्यान्वयन की जांच करते हैं (देखें http://en.wikipedia.org/wiki/File:Transistor_Bistable_interactive_animated_EN.svg ), हमें पता चलता है कि यह दो द्वि-ध्रुवीय जंक्शन ट्रांजिस्टर (BJTs) और चार से बना है रेसिस्टर्स (SPDT स्विच के साथ SPST टॉगल स्विच को ग्राउंड में बदलें जो ग्राउंड पोटेंशियल और V + के बीच सेट और रीसेट लाइनों को स्विच कर सकते हैं)। BJT को सामान्य एमिटर इनवर्टर के रूप में कॉन्फ़िगर किया गया है। प्रत्येक ट्रांजिस्टर के कलेक्टर (आउटपुट) को विपरीत ट्रांजिस्टर के बेस (इनपुट) में वापस फीड किया जाता है। इनपुट S तार-ओर्डेड है BJT के आउटपुट के साथ जिसका कलेक्टर कनेक्शन आउटपुट Q (R1 / R3 का जंक्शन) के रूप में कार्य करता है। इनपुट आर वायर-ओडेड है आउटपुट के साथ बीजेटी जिसका कलेक्टर कनेक्शन आउटपुट क्यू '(आर 2/4 के जंक्शन) के रूप में कार्य करता है।

जब सर्किट पहले शक्तियां देता है, तो न तो ट्रांजिस्टर एक सेकंड के एक छोटे से अंश के लिए संतृप्ति क्षेत्र में आगे-पक्षपाती है, जिसका अर्थ है कि Q और Q दोनों तर्क स्तर पर हैं। प्रत्येक कलेक्टर में उपलब्ध वोल्टेज को आधार खिलाया जाता है। विपरीत ट्रांजिस्टर, जिसके कारण यह संतृप्ति क्षेत्र में पक्षपाती हो जाता है। ट्रांजिस्टर जो आगे-बायस्ड हो जाता है, पहले करंट का संचालन शुरू करेगा, जो बदले में, अपने कलेक्टर रेसिस्टर में वोल्टेज ड्रॉप होने का कारण बनेगा, इसके आउटपुट को तर्क स्तर पर सेट करेगा। कलेक्टर वोल्टेज में यह गिरावट विपरीत ट्रांजिस्टर को रोक देगी। आगे-पक्षपाती हो जाना; इसलिए, फ्लिप-फ्लॉप की प्रारंभिक स्थिति सेट करना। यह मूल रूप से एक हार्डवेयर रेस की स्थिति है जो एक अप्रत्याशित परिणाम की ओर ले जाती है।


क्या आप प्रदान किए गए लिंक पर सर्किट एनीमेशन कर सकते हैं, लेकिन अधिक सरल शब्दों में? मैं एक शुरुआती अंडरग्रेजुएट कोर्स ले रहा हूं
CodyBugstein

3

जैसा आपने कहा, यह अपरिभाषित है। व्यवहार में, ऐसे ग्राहक या quirks होते हैं जिन्हें कुंडी को एक निश्चित अवस्था में रखना चाहिए, लेकिन इस बात की कोई गारंटी नहीं है कि वह किस अवस्था में होगा। यह दो द्वारों में बेमेल के कारण होता है जो किसी दिए गए प्रारंभिक अवस्था को परिभाषित करेगा (मूल रूप से सर्किट कैन 'वास्तविक डिजिटल एसआर कुंडी के रूप में व्यवहार नहीं करता है लेकिन यह वास्तविक जीवन में एक जटिल एनालॉग सर्किट है)। प्रारंभिक उत्पादन कम या ज्यादा यादृच्छिक हो जाएगा, या तो Q=1 and ~Q=0या Q=0 and ~Q=1

डेटाशीट के द्वारा स्पष्ट उल्लेख को छोड़कर मैं एक राज्य को दूसरे पर चुने जाने पर भरोसा नहीं करूंगा क्योंकि वास्तविक init राज्य बैच में विभिन्न भागों, बोर्ड पर प्लेसमेंट, पर्यावरणीय कारकों (तापमान / आर्द्रता / आदि), और उम्र बढ़ने के बीच बदल सकता है। (कोई मतलब नहीं कारकों की एक पूरी सूची)।

राज्य को परिभाषित करने का सबसे अच्छा तरीका स्टार्टअप के बाद या तो सेट या रीसेट एसआर कुंडी को एक ज्ञात स्थिति में लाना है।

एक साइड नोट के रूप में, एसआर और आर को एक ही समय में एसआर लैच करने से अपरिभाषित व्यवहार का परिणाम मिलेगा और आप आउटपुट सेट करने के लिए समान वूडू पर भरोसा कर रहे हैं (एक वास्तविक कार्यान्वयन दोनों आउटपुट को बंद कर सकता है, बेतरतीब ढंग से दो को टॉगल कर सकता है,) दोनों आउटपुट को चालू करें, आदि)। जैसा कि सुपरकैट ने टिप्पणी की थी कि यदि एक पिन एसआर कुंडी से पहले किसी अन्य स्थिति में प्रवेश नहीं करता है, क्योंकि केवल एक पिन पर जोर दिया जा रहा है। अन्य प्रकार की कुंडी / फ्लिप फ्लॉप एक अलग व्यवहार को परिभाषित कर सकते हैं, उदाहरण के लिए जेके फ्लिप-फ्लॉप आउटपुट को टॉगल करने के लिए दोनों पिनों को परिभाषित करते हैं (Q = ~ Qprev, ~ Q = Qprev)।


लेकिन मेरा सवाल यह है कि अगर दोनों इनपुट अभी तक मौजूद नहीं हैं तो दोनों पर भरोसा कैसे किया जा सकता है? यह "आप मुझे हवा में उठाते हैं, तो मैं आपको उठाऊंगा और हम दोनों हवा में तैरते रहेंगे"
CodyBugstein

2
@ आईरे - फ्लिप-फ्लॉप का एक पक्ष हमेशा दूसरे द्वारा संचालित होने पर धड़कता है। यह आमतौर पर मामूली टाइमिंग मिसमैच के कारण हमेशा उसी तरह से पॉवर देता है लेकिन इस तरह के डिवाइस पर कोई गारंटी नहीं होती है।
एंडी उर्फ

1
बिल्कुल सही। यह बेमेल की एक घटना पर निर्भर करता है। आपको दोनों पक्षों के बिल्कुल समान होने के बारे में नहीं सोचना चाहिए। वे नहीं हैं। उनमें से एक धीमी है, दूसरी तेजी से, और इससे उनमें से एक शुरू में चालू हो जाएगा।
गुस्तावो लिटोव्स्की

हां, मैं प्रारंभिक स्थिति को सुनिश्चित करने के लिए इस बेमेल व्यवहार पर भरोसा करूंगा "वैध" (हमें क्यू = ~ क्यू नहीं मिलता है), लेकिन मैं इस व्यवहार पर भरोसा नहीं करूंगा यह सुनिश्चित करने के लिए कि क्यू हमेशा स्टार्टअप पर एक निश्चित स्थिति है एक बैच में भागों के बीच भिन्न हो सकते हैं या तापमान / समय पर समान भाग के लिए बदल सकते हैं। बेशक डेटशीट अन्यथा राज्य कर सकती है, लेकिन सामान्य तौर पर मैं इस पर निर्भर नहीं होता।
helloworld922

यह बहुत आम है कि एक कुंडी के व्यवहार को तब परिभाषित किया जाएगा जब दोनों इनपुट "सक्रिय" अवस्था में हों [NOR कुंडी के लिए उच्च; एक नंद कुंडी] के लिए कम, बशर्ते कि आदानों में से एक दूसरे के पहले निष्क्रिय हो जाए।
सुपरकैट

2

ध्यान रखें कि द्वार अशुभ हैं। यह एक सकारात्मक प्रतिक्रिया पाश प्रदान करता है। यह मानते हुए कि S और R दोनों शून्य हैं और एक आउटपुट एक है, यह दूसरा आउटपुट को वापस लाने के लिए दूसरे गेट में फीड करेगा। इस तरह, द्वार दो स्थिर अवस्थाओं में से हैं।

जैसे ही आप S या R में से किसी एक को सेट करते हैं, यह संबंधित गेट को आउटपुट शून्य के लिए मजबूर करेगा, जो बदले में, दूसरे गेट को आउटपुट शून्य करने के लिए मजबूर करेगा। फिर से, स्थिर।

उदाहरण के लिए, प्रारंभिक स्थिति: S = 0, R = 0, Q = 0, Q # = 1. आपने अब S = 1. सेट किया है। यह लोअर गेट आउटपुट (Q #) को 0. में बदल देगा। यह 0 ऊपरी में फीड हो जाता है फाटक, उस आउटपुट (Q) को मजबूर करता है। यह 1 निचले द्वार पर वापस जाता है। जब आप S को 0 पर सेट करते हैं, तो निचले गेट को दूसरे गेट से 1 प्राप्त होता है। यह Q # आउटपुट को 0 पर रखेगा।

यदि Q पहले से ही 1 है और आप S से 1 सेट करते हैं, तो निचले गेट के दोनों इनपुट 1 हैं और इसलिए कोई बदलाव नहीं हुआ है।


मुझे समझ में नहीं आता है कि क्यू 'कभी भी एक हो सकता है अगर कोई इनपुट नहीं हैं जो वास्तव में कभी निष्पादित हो सकते हैं।
CodyBugstein

फिर से, स्थिर अवस्था केवल तब होती है जब Q और Q # में से एक होता है। यदि नहीं, (जैसे बिजली ऊपर), तो फाटक दो स्थिर अवस्थाओं में से एक को जल्दी से मान लेगा, यह दो फाटकों की वास्तविक गति और इस तरह होगा। एक बार गेट स्थिर होने के बाद, आप दो इनपुट का उपयोग स्थिर अवस्थाओं के बीच स्विच करने के लिए कर सकते हैं।
नवंबर को 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 पर सेट। जैसा कि अन्य ने उल्लेख किया है, यह एक अस्थिर स्थिति है।
जो हस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.