37 / 63 · अवधारणा
क्रमिक इनपुट और फ़्रेम की सीमाएँ
इनपुट क्रम और मान्य किनारे तय करें तथा serial-to-parallel रूपांतरण में बिटों के स्थान निकालें।
पाठ पढ़ना मुफ़्त है। प्रगति सेव करने के लिए नामांकन करें।
समय क्रम को वेक्टर के स्थानों में बदलें
क्रमिक इनपुट हर मान्य किनारे पर एक बिट देता है। 3-बिट रजिस्टररजिस्टर कई बिटों की अवस्था संग्रहित करता है। इस पाठ्यक्रम के तुल्यकालिक रजिस्टर निर्धारित इनपुट को क्लॉक एज पर संग्रहित करते हैं। और पढ़ें में q<={q[1:0],din} लागू करें। प्रारंभिक q=000 से 1,0,1,1 मिलने पर:
| स्वीकार किए गए बिटों की संख्या | din | अद्यतन q |
|---|---|---|
| 1 | 1 | 001 |
| 2 | 0 | 010 |
| 3 | 1 | 101 |
| 4 | 1 | 011 |
नया बिट दाईं ओर प्रवेश करता है और पुराने बिट ऊँचे इंडेक्स की ओर जाते हैं। रजिस्टर नवीनतम तीन बिटों की चलती खिड़की है; चौथा बिट मिलने पर पहला खो जाता है।
हर स्तंभ एक उदयी किनारेउदयी किनारा (rising edge) क्लॉक के 0 से 1 होने का क्षण। यह CLK=1 के पूरे स्तर-अंतराल से अलग है। और पढ़ें का अवलोकन है। इनपुट किनारे से ठीक पहले के हैं; नाम में after वाली अवस्थाएँ अद्यतन के तुरंत बाद की हैं। स्तंभों का क्रम नमूनों का क्रम दिखाता है, भौतिक प्रसार विलंबप्रसार विलंब इनपुट बदलने के बाद आउटपुट सही मान पर स्थिर होने तक का समय। तार्किक समतुल्यता और समय-संबंधी गुण अलग हैं। और पढ़ें नहीं। पहला स्तंभ reset है। इसके बाद स्वीकार हुए 1,0,1,1 में से केवल नवीनतम तीन बिट q में बचते हैं। अंतिम स्तंभ में पहले बिट का बाहर निकलना देखें।
तरंगरूप डेटा देखें
| संकेत | तरंगरूप | बस मान |
|---|---|---|
| edge | 23452 | E0 → E1 → E2 → E3 → E4 |
| reset | 10... | |
| din | 0101. | |
| q बाद में | 23452 | 000 → 001 → 010 → 101 → 011 |
MSB-first और LSB-first संचार के नियम हैं
8-बिट मान को MSBMSB सबसे अधिक स्थानिक भार वाला बिट। उसका इंडेक्स वेक्टर की घोषणा की दिशा पर निर्भर है; उसे हमेशा सबसे बड़ा इंडेक्स न मानें। और पढ़ें से भेजकर ऊपर के तरीके से आठ बार ग्रहण करने पर मूल वेक्टर बन जाता है। LSBLSB सबसे कम स्थानिक भार वाला बिट। लिखने की दिशा और इंडेक्स के नियम साथ जाँचने चाहिए। और पढ़ें से भेजने पर उलटा विन्यास मिलता है, इसलिए कनेक्शन की दिशा या अंतिम पुनर्विन्यास बदलना होगा। यह केवल प्रदर्शन विकल्प नहीं, दोनों सिरों द्वारा स्वीकृत protocol है।
केवल डेटा मान से फ़्रेम नहीं पहचाना जा सकता
कौन-सा किनारा पहला बिट है, कुल कितने बिट मिले हैं और परिणाम कब इस्तेमाल हो सकता है—यह बताने वाली अवस्था चाहिए। सामान्यतः स्वीकार किए गए बिटों का काउंटर और valid या done साथ उपयोग होते हैं। बीच में इनपुट रुकता हो, तो क्लॉक संख्या के बजाय स्वीकार हुए डेटा की संख्या गिनें।
Ready/validहैंडशेक उसी किनारे पर प्रेषक का valid और ग्रहणकर्ता का ready दोनों 1 होने पर हस्तांतरण निश्चित करने वाला अनुबंध। प्रतीक्षा के दौरान डेटा बनाए रखने के नियम भी इसका हिस्सा हैं। और पढ़ें इंटरफ़ेस में केवल ऊपर की शर्त सही होने वाले किनारे पर shift और count दोनों अद्यतन करें। केवल एक पर enable लगाने से डेटा और लंबाई की जानकारी अलग हो जाती है। दिए गए निरंतर-इनपुट अभ्यास में सभी डेटा किनारे स्वीकार होते हैं; यह सरल विशेष मामला है।
खुद आज़माएँ
8-बिट फ़्रेम में चौथे बिट के बाद दो चक्र तक valid=0 है। Ready=1 होने पर रिसीव काउंटर और शिफ्ट रजिस्टर को कैसे व्यवहार करना चाहिए?
व्याख्या पढ़ें
दोनों चक्रों में accept=0 है, इसलिए काउंटर और डेटा रजिस्टर दोनों के मान बनाए रखें। अगला valid बिट पाँचवाँ होगा। केवल क्लॉक गिनने से पर्याप्त डेटा आने से पहले ही पूर्णता का गलत संकेत निकल सकता है।