6 / 37 · अवधारणा
वेक्टर इंडेक्स, बिट क्रम और चिह्न
बिट संख्या, क्रमिक प्रेषण क्रम और अंकगणितीय अर्थ को अलग करके डेटा पथ पढ़ें।
पाठ पढ़ना मुफ़्त है। प्रगति सेव करने के लिए नामांकन करें।
इंडेक्स नाम है; declaration की दिशा अर्थ तय करती है
logic [7:0] a; में a[7] सबसे बायाँ स्थान है। logic [0:7] b; में b[0] सबसे बायाँ है। दोनों को 8'h96 देने पर बाएँ से बिट क्रम 10010110 ही है, लेकिन हर बिट का इंडेक्स अलग है। “बिट 0 हमेशा LSBLSB सबसे कम स्थानिक भार वाला बिट। लिखने की दिशा और इंडेक्स के नियम साथ जाँचने चाहिए। है” मानने से पहले declaration की दिशा जाँचें।
व्यावहारिक समीक्षा में पूरे इंटरफ़ेस की दिशा सुसंगत रखना उपयोगी है। तरंगरूप टूल का प्रदर्शन क्रम और फ़ाइल में बिट array का क्रम भी स्पष्ट करें। इस कोर्स की इनपुट JSON arrays LSB से शुरू होती हैं, जबकि RTL वेक्टर सामान्यतः MSBMSB सबसे अधिक स्थानिक भार वाला बिट। उसका इंडेक्स वेक्टर की घोषणा की दिशा पर निर्भर है; उसे हमेशा सबसे बड़ा इंडेक्स न मानें। से पढ़े जाते हैं।
स्थानांतरण की दिशा वास्तविक कनेक्शन से जाँचें
q <= {q[1:0], din}; में अगला q[2] पुराना q[1], अगला q[1] पुराना q[0] और अगला q[0] din है।
चित्र बाईं ओर बनाया गया है या नहीं, उससे अधिक सटीक विनिर्देश यह है कि किस इंडेक्स को कौन-सा सिग्नल मिलता है।
तीर एक बिट के संग्रहण स्थानों का क्रम दिखाते हैं। सभी रजिस्टररजिस्टर कई बिटों की अवस्था संग्रहित करता है। इस पाठ्यक्रम के तुल्यकालिक रजिस्टर निर्धारित इनपुट को क्लॉक एज पर संग्रहित करते हैं। और पढ़ें एक ही किनारे पर पुराने मान पढ़ते हैं। इसका अर्थ यह नहीं कि din एक ही किनारे में q2 तक पहुँच जाता है।
- din: इस किनारे पर स्वीकारने वाला बिट
- q0: din को capture करें
- q1: पुराना q0 capture करें
- q2: पुराना q1 capture करें
अंकगणितीय और तार्किक shift
>> तार्किक दायाँ shift है, जो बाईं ओर के खाली, अधिक महत्वपूर्ण स्थानों को 0 से भरता है। >>> का बायाँ operand signed होने पर इसे चिह्न विस्तार वाले अंकगणितीय shift के रूप में उपयोग कर सकते हैं। समान बिट क्रम पर भी operand की signed declaration अलग होने से परिणाम अलग हो सकता है।
logic signed [7:0] x;
logic [7:0] logical_right, arithmetic_right;
assign logical_right = x >> 1;
assign arithmetic_right = x >>> 1;x=8'b11111000 (-8) पर परिणाम क्रमशः 01111100 और 11111100 हैं। ऋणात्मक मान का अंकगणितीय दायाँ shift हमेशा पूर्णांक भाग के ऋणात्मक rounding नियम जैसा नहीं होता, इसलिए संख्यात्मक algorithm में इसे अलग जाँचें।
खुद आज़माएँ
3-बिट q=101, din=0 पर q<={q[1:0],din} और q<={din,q[2:1]} के अगले मान अलग-अलग निकालें।
व्याख्या पढ़ें
पहला परिणाम 010 और दूसरा भी 010 है। इस इनपुट पर दोनों दिशाएँ संयोग से समान हैं। q=001, din=0 लेने पर क्रमशः 010 और 000 मिलते हैं, जिससे दिशा का दोष अलग दिखता है।