विषयसूची:
- चरण 1: निर्दिष्टीकरण
- चरण 2: संपूर्ण प्रणाली का RTL दृश्य
- चरण 3: परीक्षण पर्यावरण
- चरण 4: संलग्न फ़ाइलें
वीडियो: VHDL में एक साधारण कैश नियंत्रक का डिज़ाइन: 4 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:20
मैं यह निर्देश योग्य लिख रहा हूं, क्योंकि मुझे कुछ संदर्भ VHDL कोड सीखने और कैशे नियंत्रक को डिजाइन करना शुरू करने में थोड़ा मुश्किल लगा। इसलिए मैंने स्क्रैच से खुद को कैशे कंट्रोलर डिज़ाइन किया, और FPGA पर इसका सफलतापूर्वक परीक्षण किया। मैंने यहां एक साधारण प्रत्यक्ष मैप किए गए कैश नियंत्रक को प्रस्तुत किया है, साथ ही कैश नियंत्रक का परीक्षण करने के लिए एक संपूर्ण प्रोसेसर-मेमोरी सिस्टम का मॉडल तैयार किया है। मुझे आशा है कि आप लोगों को यह निर्देश योग्य अपने स्वयं के कैश नियंत्रकों को डिज़ाइन करने के संदर्भ के रूप में उपयोगी लगेगा।
चरण 1: निर्दिष्टीकरण
ये कैश कंट्रोलर के मुख्य विनिर्देश हैं जिन्हें हम डिजाइन करने जा रहे हैं:
- डायरेक्ट मैप किया गया। (एसोसिएटिव मैप्ड कैश कंट्रोलर की तलाश में इस लिंक पर जाएं)
- सिंगल-बैंक्ड, ब्लॉकिंग कैश।
- राइट-थ्रू पॉलिसी ऑन राइट हिट्स।
- नो-राइट एलॉट या राइट अराउंड पॉलिसी ऑन राइट मिस।
- कोई बफ़र या अन्य अनुकूलन नहीं लिखें।
- टैग ऐरे शामिल है।
इसके अलावा, हम एक कैश मेमोरी और एक मेन मेमोरी सिस्टम भी डिजाइन करेंगे।
कैश मेमोरी के डिफ़ॉल्ट (कॉन्फ़िगर करने योग्य) विनिर्देश:
- 256 बाइट्स सिंगल-बैंक्ड कैश।
- 16 कैश लाइन, प्रत्येक कैश लाइन (ब्लॉक) = 16 बाइट्स।
मुख्य मेमोरी के विनिर्देश:
- सिंक्रोनस रीड / राइट मेमोरी।
- मल्टी-बैंक्ड इंटरलीव्ड मेमोरी - चार मेमोरी बैंक।
- प्रत्येक बैंक का आकार = 1 kB प्रत्येक। अत: कुल आकार = 4 kB।
- 10-बिट एड्रेस बस के साथ वर्ड (4 बाइट्स) एड्रेसेबल मेमोरी।
- पढ़ने के लिए उच्च बैंडविड्थ। एक घड़ी चक्र में डेटा चौड़ाई = 16 बाइट्स पढ़ें।
- डेटा चौड़ाई = 4 बाइट्स लिखें।
नोट: यदि आप 4-वे साहचर्य कैश नियंत्रक डिज़ाइन की तलाश कर रहे हैं, तो मेरे नए निर्देश की जाँच करें
चरण 2: संपूर्ण प्रणाली का RTL दृश्य
शीर्ष मॉड्यूल का पूर्ण RTL प्रतिनिधित्व चित्र (प्रोसेसर को छोड़कर) में दिखाया गया है। बसों के लिए डिफ़ॉल्ट चश्मा हैं:
- सभी डेटा बसें 32-बिट बसें हैं।
- पता बस = 32-बिट बस (लेकिन मेमोरी द्वारा यहां केवल 10 बिट्स को संबोधित किया जा सकता है)।
- डेटा ब्लॉक = 128 बिट्स (पढ़ने के लिए वाइड बैंडविड्थ बस)।
- सभी घटक एक ही घड़ी द्वारा संचालित होते हैं।
चरण 3: परीक्षण पर्यावरण
शीर्ष मॉड्यूल का परीक्षण एक परीक्षण बेंच का उपयोग करके किया गया था, जो कि केवल एक गैर-पाइपलाइन प्रोसेसर का मॉडल करता है (क्योंकि पूरे प्रोसेसर को डिजाइन करना बिल्कुल भी आसान नहीं है !!) टेस्ट बेंच मेमोरी को बार-बार पढ़ने/लिखने के लिए डेटा अनुरोध उत्पन्न करता है। यह विशिष्ट "लोड" और "स्टोर" निर्देशों का मजाक उड़ाता है, जो एक प्रोसेसर द्वारा निष्पादित सभी कार्यक्रमों में सामान्य है। परीक्षण के परिणामों ने कैश नियंत्रक की कार्यक्षमता को सफलतापूर्वक सत्यापित किया। देखे गए परीक्षण आँकड़े निम्नलिखित हैं:
- सभी रीड / राइट मिस और हिट सिग्नल सही ढंग से उत्पन्न हुए थे।
- सभी रीड/राइट डेटा ऑपरेशन सफल रहे।
- कोई डेटा असंगति/असंगतता समस्याओं का पता नहीं चला।
- डिज़ाइन को मैक्सम के लिए सफलतापूर्वक सत्यापित किया गया था। संचालन की घड़ी आवृत्ति = Xilinx Virtex-4 ML-403 बोर्ड (संपूर्ण प्रणाली) में 110 मेगाहर्ट्ज, अकेले कैश नियंत्रक के लिए 195 मेगाहर्ट्ज।
- मुख्य मेमोरी के लिए ब्लॉक रैम का अनुमान लगाया गया था। अन्य सभी सरणियों को LUTs पर लागू किया गया था।
चरण 4: संलग्न फ़ाइलें
इस ब्लॉग के साथ निम्नलिखित फाइलें यहां संलग्न हैं:
- कैश कंट्रोलर, कैशे डेटा एरे, मेन मेमोरी सिस्टम की वीएचडी फाइलें।
- परीक्षण बेंच।
- कैश नियंत्रक पर दस्तावेज़ीकरण।
टिप्पणियाँ:
- यहां प्रस्तुत कैश नियंत्रक के विनिर्देशों की पूरी समझ के लिए दस्तावेज़ीकरण के माध्यम से जाएं।
- कोड में किसी भी बदलाव की अन्य मॉड्यूल पर निर्भरता होती है। इसलिए बदलाव सोच-समझकर करना चाहिए। मेरे द्वारा दिए गए सभी टिप्पणियों और शीर्षकों पर ध्यान दें।
- यदि किसी कारण से, मुख्य मेमोरी के लिए ब्लॉक रैम का अनुमान नहीं लगाया जाता है, तो मेमोरी के आकार को कम करें, इसके बाद फाइलों में एड्रेस बस की चौड़ाई में बदलाव करें और इसी तरह। ताकि वही मेमोरी या तो एलयूटी या डिस्ट्रीब्यूटेड रैम पर लागू की जा सके। इससे रूटिंग समय और संसाधनों की बचत होगी। या, विशिष्ट FPGA दस्तावेज़ीकरण पर जाएँ और ब्लॉक RAM के लिए संगत कोड खोजें और तदनुसार कोड संपादित करें, और उसी पते की बस चौड़ाई विनिर्देशों का उपयोग करें। Altera FPGAs के लिए समान तकनीक।
सिफारिश की:
फ़्लिक में गेम डिज़ाइन ५ चरणों में: ५ चरण
5 चरणों में फ़्लिक में गेम डिज़ाइन: फ़्लिक गेम बनाने का एक बहुत ही सरल तरीका है, विशेष रूप से एक पहेली, दृश्य उपन्यास, या साहसिक खेल जैसा कुछ
VHDL में एक साधारण फोर-वे सेट एसोसिएटिव कैश कंट्रोलर का डिज़ाइन: 4 चरण
VHDL में एक साधारण फोर-वे सेट एसोसिएटिव कैश कंट्रोलर का डिज़ाइन: मेरे पिछले निर्देश में, हमने देखा कि एक साधारण डायरेक्ट मैप किए गए कैशे कंट्रोलर को कैसे डिज़ाइन किया जाए। इस बार हम एक कदम आगे बढ़ते हैं। हम एक साधारण चार-तरफा सेट सहयोगी कैश नियंत्रक तैयार करेंगे। लाभ ? कम छूट दर, लेकिन प्रदर्शन की कीमत पर
VHDL में प्रोग्रामेबल इंटरप्ट कंट्रोलर का डिज़ाइन: 4 चरण
वीएचडीएल में प्रोग्रामेबल इंटरप्ट कंट्रोलर का डिजाइन: इस ब्लॉग में मुझे जिस तरह की प्रतिक्रियाएं मिल रही हैं, उससे मैं अभिभूत हूं। मेरे ब्लॉग पर आने और मुझे अपने ज्ञान को आपके साथ साझा करने के लिए प्रेरित करने के लिए धन्यवाद दोस्तों। इस बार, मैं एक और दिलचस्प मॉड्यूल का डिज़ाइन प्रस्तुत करने जा रहा हूँ जो हम सभी एसओसी में देखते हैं - इंटरप्ट सी
VHDL में I2C मास्टर का डिज़ाइन: 5 चरण
VHDL में I2C मास्टर का डिज़ाइन: इस निर्देश में, VHDL में एक साधारण I2C मास्टर को डिज़ाइन करने पर चर्चा की गई है। नोट: पूर्ण छवि देखने के लिए प्रत्येक छवि पर क्लिक करें
वीएचडीएल और वेरिलोग में एक साधारण वीजीए नियंत्रक का डिजाइन: 5 कदम
VHDL और Verilog में एक साधारण VGA नियंत्रक का डिज़ाइन: इस निर्देश में, हम RTL में एक साधारण VGA नियंत्रक डिज़ाइन करने जा रहे हैं। वीजीए कंट्रोलर डिजिटल सर्किट है जिसे वीजीए डिस्प्ले को चलाने के लिए डिज़ाइन किया गया है। यह फ्रेम बफर (वीजीए मेमोरी) से पढ़ता है जो प्रदर्शित किए जाने वाले फ्रेम का प्रतिनिधित्व करता है, और आवश्यक