1 / 37 · अवधारणा
RTL: एक साथ काम करने वाले परिपथों का वर्णन
सॉफ़्टवेयर के क्रम और समानांतर हार्डवेयर संरचना को अलग समझें; वर्तमान अवस्था, अगली अवस्था और देखने का समय तय करें।
पाठ पढ़ना मुफ़्त है। प्रगति सेव करने के लिए नामांकन करें।
परिपथ लगातार काम करता है
RTL बताता है कि संयोजन तर्क के रास्ते मान रजिस्टरों के बीच कैसे जाते हैं। मॉड्यूल हार्डवेयर की सीमा है; दो इंस्टेंस दो परस्पर काम करने वाली संरचनाएँ बनाते हैं, क्रम से चलने वाली फ़ंक्शन कॉल नहीं। इनपुट बदलते समय भी परिपथ सक्रिय रहता है। डिजिटल लॉजिक परिपथ में सीखे गेट, भंडारण और अवस्था मशीन को स्पष्ट SystemVerilog इंटरफ़ेस तथा दोहराने योग्य जाँच में बदलें। कोड लिखने से पहले हर सिग्नल की चौड़ाई, ड्राइवर, वैधता और रीसेट समझाएँ।
वर्तमान और अगली अवस्था अलग करें
यह पूरा मॉड्यूल बिना चिह्न वाले चार-बिट sample को आठ-बिट रजिस्टर में जोड़ता है। सिंक्रोनस रीसेट ऊँचे स्तर पर सक्रिय है और enable से अधिक प्राथमिकता रखता है। सक्षम किनारे पर sample जुड़ता है; अन्य किनारों पर sum बना रहता है। गणना modulo 256 पर वापस घूमती है।
module accumulator (
input logic clk, rst, enable,
input logic [3:0] sample,
output logic [7:0] sum
);
logic [7:0] next_sum;
assign next_sum = sum + {4'b0000, sample};
always_ff @(posedge clk) begin
if (rst) sum <= 8'b0;
else if (enable) sum <= next_sum;
end
endmodulenext_sum संयोजन परिणाम है: sum या sample बदलने से यह बिना क्लॉक किनारे भी बदल सकता है। sum अवस्था रखता है और बढ़ते किनारे पर बदलता है। दोनों को logic कहना उनकी हार्डवेयर भूमिका एक नहीं करता। इस क्लॉक ब्लॉक में अंतिम else न होना रजिस्टर को बनाए रखता है; संयोजन ब्लॉक में छूटा असाइनमेंट latch माँग सकता है। पहले ब्लॉक का प्रकार पहचानें।
सिमुलेशन से पहले किनारों की सारणी बनाएँ
हर पंक्ति किनारे से ठीक पहले की अवस्था और इनपुट लेती है; नॉनब्लॉकिंग अपडेट के बाद परिणाम देखें।
| किनारा | rst | enable | sample | पहले sum | बाद में sum |
|---|---|---|---|---|---|
| E0 | 1 | 1 | 9 | अज्ञात | 0 |
| E1 | 0 | 1 | 3 | 0 | 3 |
| E2 | 0 | 0 | 7 | 3 | 3 |
| E3 | 0 | 1 | 5 | 3 | 8 |
| E4 | 1 | 1 | 15 | 8 | 0 |
E4 पर रीसेट जीतता है और जोड़ नहीं होता। पुराना sum=250 और स्वीकार sample=10 होने पर आठ-बिट परिणाम 4 है। नौवाँ बिट बचाना इंटरफ़ेस और गणना का अनुबंध बदल देगा।
स्थानीय क्रम और संरचनात्मक समवर्ती काम
संयोजन प्रक्रिया के भीतर ब्लॉकिंग = असाइनमेंट प्रक्रिया के क्रम में चलते हैं। अलग प्रक्रियाएँ और सतत असाइनमेंट समवर्ती होते हैं। नॉनब्लॉकिंग <= उपलब्ध मानों से दायाँ पक्ष निकालते हैं और अपडेट निर्धारित करते हैं। स्रोत का क्रम विलंब का विनिर्देश नहीं है। एक क्लॉक रुकने के लिए संचायक में #10 न लिखें: विलंब और क्लॉक जनरेटर सामान्य सिमुलेशन टेस्टबेंच में होते हैं। संश्लेषण योग्य अवस्था संक्रमण में किनारा और अवस्था होते हैं, sleep नहीं।
अभ्यास: एक आवश्यकता बदलें
घूमकर वापस आने के बजाय 255 पर संतृप्त करें। ऑपरेंड स्पष्ट रूप से बढ़ाकर नौ-बिट जोड़ निकालें। बिट 8=1 हो तो 255 रखें, अन्यथा 7:0। रीसेट और enable की प्राथमिकता न बदलें। 0+0,250+5,250+6, अक्षम किनारा और साथ reset/enable जाँचें: अपेक्षित क्रम 0,255,255, पुरानी अवस्था,0 है। केवल 250+5 खोया carry नहीं पकड़ता;250+6 शामिल करें। स्रोत, किनारों की सारणी और अपेक्षाएँ सुरक्षित करें। पाठ पूरा चिह्नित करना पढ़ाई दर्ज करता है, सिमुलेटर का निष्पादन नहीं।