جدول المحتويات:
- الخطوة 1: المواصفات
- الخطوة 2: عرض RTL للنظام بأكمله
- الخطوة 3: اختبار البيئة
- الخطوة 4: الملفات المرفقة
فيديو: تصميم وحدة تحكم ذاكرة تخزين مؤقت بسيطة في VHDL: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
أنا أكتب هذه التعليمات ، لأنني وجدت أنه من الصعب قليلاً الحصول على بعض رموز VHDL المرجعية للتعلم والبدء في تصميم وحدة تحكم ذاكرة التخزين المؤقت. لذلك صممت وحدة تحكم في ذاكرة التخزين المؤقت بنفسي من البداية ، واختبرتها بنجاح على FPGA. لقد قدمت هنا وحدة تحكم بسيطة في ذاكرة التخزين المؤقت المعينة مباشرة ، بالإضافة إلى تصميم نظام ذاكرة معالج كامل لاختبار وحدة التحكم في ذاكرة التخزين المؤقت. أتمنى أن تجدوا هذه التعليمات مفيدة كمرجع لتصميم وحدات التحكم في ذاكرة التخزين المؤقت الخاصة بك.
الخطوة 1: المواصفات
هذه هي المواصفات الرئيسية لوحدة التحكم في ذاكرة التخزين المؤقت التي سنقوم بتصميمها:
- تعيين مباشر. (انتقل إلى هذا الرابط إذا كنت تبحث عن Associative Mapped Cache Controller)
- بنك واحد ، حظر ذاكرة التخزين المؤقت.
- سياسة الكتابة على زيارات الكتابة.
- عدم الكتابة تخصيص أو الكتابة حول النهج في الكتابة المفقودة.
- لا كتابة عازلة أو تحسينات أخرى.
- تم دمج العلامات Array.
بالإضافة إلى ذلك ، سنقوم بتصميم ذاكرة تخزين مؤقت ونظام ذاكرة رئيسي أيضًا.
المواصفات الافتراضية (القابلة للتكوين) لذاكرة التخزين المؤقت:
- 256 بايت مخبأ مفرد.
- 16 سطر من ذاكرة التخزين المؤقت ، كل سطر من خطوط التخزين المؤقت (كتلة) = 16 بايت.
مواصفات الذاكرة الرئيسية:
- ذاكرة القراءة / الكتابة المتزامنة.
- ذاكرة معشق متعددة البنوك - أربعة بنوك ذاكرة.
- حجم كل بنك = 1 كيلو بايت لكل بنك. وبالتالي ، الحجم الإجمالي = 4 كيلو بايت.
- ذاكرة قابلة للعنونة Word (4 بايت) مع ناقل عنوان 10 بت.
- نطاق ترددي أعلى للقراءة. قراءة عرض البيانات = 16 بايت في دورة ساعة واحدة.
- كتابة عرض البيانات = 4 بايت.
ملاحظة: تحقق من التعليمات الأحدث الخاصة بي إذا كنت تبحث عن تصميم وحدة تحكم ذاكرة التخزين المؤقت الترابطية رباعية الاتجاهات
الخطوة 2: عرض RTL للنظام بأكمله
يظهر تمثيل RTL الكامل للوحدة العلوية في الشكل (باستثناء المعالج). المواصفات الافتراضية للحافلات هي:
- جميع حافلات البيانات هي حافلات 32 بت.
- ناقل العنوان = ناقل 32 بت (ولكن فقط 10 بتات قابلة للعنونة هنا بواسطة الذاكرة).
- كتلة البيانات = 128 بت (ناقل النطاق الترددي العريض للقراءة).
- يتم تشغيل جميع المكونات بواسطة نفس الساعة.
الخطوة 3: اختبار البيئة
تم اختبار الوحدة النمطية العلوية باستخدام منضدة الاختبار ، التي تعمل ببساطة على تصميم معالج غير مدمج (لأن تصميم معالج كامل ليس بالأمر السهل على الإطلاق !!). يقوم جهاز الاختبار بإنشاء طلبات قراءة / كتابة بيانات إلى الذاكرة بشكل متكرر. هذا يسخر من تعليمات "التحميل" و "التخزين" النموذجية الشائعة في جميع البرامج التي ينفذها المعالج. نجحت نتائج الاختبار في التحقق من وظيفة وحدة التحكم في ذاكرة التخزين المؤقت. فيما يلي إحصائيات الاختبار التي تمت ملاحظتها:
- تم إنشاء جميع إشارات القراءة / الكتابة Miss و Hit بشكل صحيح.
- تمت جميع عمليات قراءة / كتابة البيانات بنجاح.
- لم يتم الكشف عن مشاكل عدم اتساق البيانات / عدم تناسقها.
- تم التحقق من توقيت التصميم بنجاح لـ Maxm. تردد التشغيل على مدار الساعة = 110 ميجا هرتز في لوحة Xilinx Virtex-4 ML-403 (نظام كامل) ، 195 ميجا هرتز لوحدة التحكم في ذاكرة التخزين المؤقت وحدها.
- تم استنتاج كتلة ذاكرة الوصول العشوائي للذاكرة الرئيسية. تم تنفيذ جميع المصفوفات الأخرى على طرفية المستعملين (LUTs).
الخطوة 4: الملفات المرفقة
الملفات التالية مرفقة هنا مع هذه المدونة:
- ملفات VHD لوحدة التحكم في ذاكرة التخزين المؤقت ، وصفيف بيانات ذاكرة التخزين المؤقت ، ونظام الذاكرة الرئيسي.
- اختبار مقاعد البدلاء.
- التوثيق على وحدة التحكم في ذاكرة التخزين المؤقت.
ملحوظات:
- راجع الوثائق لفهم كامل لمواصفات Cache Controller المعروضة هنا.
- أي تغييرات في الكود لها اعتماد على الوحدات النمطية الأخرى. لذلك ، يجب إجراء التغييرات بحكمة. انتبه إلى جميع التعليقات والعناوين التي قدمتها.
- إذا لم يتم الاستدلال على كتل RAM لأي سبب من الأسباب للذاكرة الرئيسية ، فقم بتقليل حجم الذاكرة ، متبوعًا بالتغييرات في عرض ناقل العنوان عبر الملفات وما إلى ذلك. بحيث يمكن تنفيذ نفس الذاكرة إما على جداول البحث أو ذاكرة الوصول العشوائي الموزعة. سيوفر هذا وقت التوجيه والموارد. أو انتقل إلى وثائق FPGA المحددة وابحث عن الكود المتوافق لـ Block RAM وقم بتحرير الكود وفقًا لذلك ، واستخدم نفس مواصفات عرض ناقل العنوان. نفس الأسلوب لـ Altera FPGAs.
موصى به:
تصميم وحدة تحكم بسيطة في ذاكرة التخزين المؤقت رباعية الاتجاهات في VHDL: 4 خطوات
تصميم وحدة تحكم ذاكرة تخزين مؤقت بسيطة رباعية الاتجاهات في VHDL: في التعليمات السابقة الخاصة بي ، رأينا كيفية تصميم وحدة تحكم ذاكرة تخزين مؤقت بسيطة ومباشرة. هذه المرة ، نتقدم خطوة للأمام. سنقوم بتصميم وحدة تحكم بسيطة في ذاكرة التخزين المؤقت الترابطية رباعية الاتجاهات. مميزات ؟ معدل تفويت أقل ، ولكن على حساب الأداء
تصميم وحدة تحكم المقاطعة القابلة للبرمجة في VHDL: 4 خطوات
تصميم وحدة تحكم المقاطعة القابلة للبرمجة في VHDL: لقد غمرني نوع الردود التي أحصل عليها في هذه المدونة. شكرًا يا رفاق على زيارة مدونتي وتحفيزهم على مشاركة معرفتي معكم. هذه المرة ، سأقدم تصميم وحدة أخرى مثيرة للاهتمام نراها في جميع SOCs - Interrupt C
تصميم وحدة تحكم VGA بسيطة في VHDL و Verilog: 5 خطوات
تصميم وحدة تحكم VGA بسيطة في VHDL و Verilog: في هذه التعليمات ، سنقوم بتصميم وحدة تحكم VGA بسيطة في RTL. وحدة تحكم VGA هي الدائرة الرقمية المصممة لتشغيل شاشات VGA. يقرأ من Frame Buffer (VGA Memory) الذي يمثل الإطار المراد عرضه ، ويولد
وحدة تحكم إلكترونية بسيطة في السرعة (ESC) لمضاعفات الدوران اللانهائية: 6 خطوات
وحدة التحكم الإلكترونية البسيطة في السرعة (ESC) لمؤازرة الدوران اللانهائي: إذا حاولت تقديم وحدة التحكم الإلكترونية في السرعة (ESC) في الوقت الحاضر ، يجب أن تكون وقحًا أو جريئًا. عالم التصنيع الإلكتروني الرخيص مليء بالمنظمين بجودة مختلفة مع مجموعة واسعة من الوظائف. مع ذلك صديقي يسأل م
وحدة تحكم Nes مع ذاكرة 8 جيجابايت / مصابيح LED تضيء الشعار: 4 خطوات
وحدة تحكم Nes مع ذاكرة 8 جيجابايت / مصابيح LED تضيء الشعار: كل هذا يرحب بـ Nes ، لا يمكن فعل أي شيء لتحسينه. لذلك اعتقدت أن هذا رائع جدًا! لقد ابتسمت فقط من رآها. لقد وضع الأشخاص مصابيح LED مثل هذه من قبل ، وذاكرات USB ، ولكن ليس بهذه الطريقة وليس بأصل عادي