جدول المحتويات:
- الخطوة 1: واجهة وحدة تحكم VGA
- الخطوة 2: دمج وحدة تحكم VGA مع شاشة VGA
- الخطوة 3: تصميم الإطار المؤقت
- الخطوة 4: ملاحظات
- الخطوة 5: الملفات المرفقة
فيديو: تصميم وحدة تحكم VGA بسيطة في VHDL و Verilog: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
في هذا الدليل ، سنقوم بتصميم وحدة تحكم VGA بسيطة في RTL. وحدة تحكم VGA هي الدائرة الرقمية المصممة لتشغيل شاشات VGA. يقرأ من Frame Buffer (VGA Memory) الذي يمثل الإطار المراد عرضه ، ويولد البيانات الضرورية وإشارات المزامنة لغرض العرض.
إذا كنت تبحث عن رمز Verilog / System فيريلوج: قم بزيارة مدونتي VGA Controller ونظام الفيديو في Verilog
الخطوة 1: واجهة وحدة تحكم VGA
فيما يلي إشارات الواجهة الرئيسية في وحدة تحكم VGA
- Pixel Clock أو VGA Clock
- إشارات HSYNC و VSYNC
بالنسبة لشاشة VGA المختارة ، يجب عليك أولاً حساب تردد Pixel Clock المطلوب لقيادتها. يعتمد على 3 معلمات: إجمالي البكسل الأفقي ، إجمالي البكسل الرأسي ، معدل تحديث الشاشة.
عادة ، F = THP * TVP * معدل التحديث
ابحث عن الوثائق على ساعة البكسل اللازمة لشاشات VGA المختلفة ، في RAR المرفق.
يتم إنشاء إشارات HSYNC و VSYNC من ساعة البكسل. يعتمد توقيت إشارات HSYNC و VSYNC على عدد من المعلمات: الجبهة الأفقية والرأسية ، الخلفية الخلفية الأفقية والرأسية ، وحدات بكسل العرض الأفقية والرأسية ، عرض النبضات المتزامنة الأفقية والرأسية والأقطاب.
يتم توحيد هذه المعلمات لشاشة VGA المختارة. ابحث عن هذه المستندات في ملف RAR المرفق.
هذه المعلمات هي معلمات قابلة للتكوين في VGA Controller IP الخاص بنا.
الخطوة 2: دمج وحدة تحكم VGA مع شاشة VGA
يوضح الشكل كيفية دمج وحدة تحكم VGA مع شاشة VGA. أنت بحاجة إلى مكونين آخرين لإكمال النظام:
- الإطار المؤقت: الذاكرة التي تحتوي على الإطار المراد عرضه.
- Video DAC: DAC الذي يحول بيانات RGB الرقمية ويدفع عرض VGA بإشارات RGB التناظرية عند مستوى الجهد المناسب.
يعد ADV7125 واحدًا من أبسط وأشهر DACs للفيديو. إنها DAC ذات 8 بتات تقوم بتحويل الكلمات الرقمية RGB إلى إشارات تناظرية 0-0.7 فولت وتدفع شاشة VGA.
الخطوة 3: تصميم الإطار المؤقت
إنها الذاكرة التي "تخزن" الصورة المراد عرضها. عادة ما تكون ذاكرة وصول عشوائي (RAM) أو أحيانًا ROM. سنناقش كيفية تصميم إطار عازلة لتمثيل صورة. يمرر المخزن المؤقت للإطار هذه المعلومات الرقمية إلى Video DAC بناءً على أمر من وحدة تحكم VGA.
أولاً علينا تحديد عمق البكسل المطلوب. يقرر جودة الصورة ، وتنوع الألوان التي يمكن أن يمثلها البكسل. بالنسبة إلى DAC 8 بت ، نحتاج إلى تمثيل مكونات اللون الأساسية للبكسل: R و G و B في 8 بت لكل منهما. هذا يعني أن البكسل 24 بت.
يتم تخزين كل بكسل بطريقة متجاورة في مواقع ذاكرة Frame Buffer.
افترض أن الصورة المراد عرضها 800 × 600 بكسل.
لذلك نحتاج إلى Frame Buffer 800x600 = 480000 x 24 bit memory
الحجم الإجمالي للذاكرة 800x600x24 = 1400 كيلو بايت تقريبًا.
إذا كانت الصورة بالأبيض والأسود ، 800x600x1 = 60 كيلو بايت تقريبًا.
ربما تستخدم كتل RAM لتمثيل Frame Buffer في Xilinx FPGAs.
الخطوة 4: ملاحظات
- هناك حاجة إلى إشارات إضافية في وحدة تحكم VGA اعتمادًا على DAC المختار. لقد استخدمت ADV7125.
- أضف تأخيرات الدورة من خلال flip-flops على VSYNC و HSYNC قبل قيادة شاشة VGA. هذا بسبب اختفاء DAC والذاكرة. يجب مزامنة إشارات البكسل مع HSYNC و VSYNC. في حالتي ، كان تأخير دورتين.
- إذا كان لا يمكن تصميم Frame Buffer بحجم معين على FPGA بسبب قيود حجم ذاكرة الوصول العشوائي ، استخدم ذاكرة أصغر لتمثيل الصورة وقم ببساطة بتحرير الكود لتمرير العنوان الموجود على حدود الذاكرة المتاحة ، بدلاً من حدود الإطار الكامل. سيؤدي هذا إلى تكرار نفس الصورة مرارًا وتكرارًا على طول الشاشة بأكملها. طريقة أخرى هي مقياس البكسل حيث يتم نسخ كل بكسل لإظهار الصورة بأكملها في وضع ملء الشاشة ، بدقة أقل. يمكن القيام بذلك عن طريق تعديل منطق زيادة العنوان في الكود.
- IP محمول بالكامل عبر جميع FPGAs ويتم التحقق من توقيته حتى 100 ميجاهرتز على Virtex-4 FPGA.
الخطوة 5: الملفات المرفقة
يحتوي RAR على:
- كود تحكم VGA
- ملفات PDF لمعايير VGA.
موصى به:
تصميم وحدة تحكم بسيطة في ذاكرة التخزين المؤقت رباعية الاتجاهات في VHDL: 4 خطوات
تصميم وحدة تحكم ذاكرة تخزين مؤقت بسيطة رباعية الاتجاهات في VHDL: في التعليمات السابقة الخاصة بي ، رأينا كيفية تصميم وحدة تحكم ذاكرة تخزين مؤقت بسيطة ومباشرة. هذه المرة ، نتقدم خطوة للأمام. سنقوم بتصميم وحدة تحكم بسيطة في ذاكرة التخزين المؤقت الترابطية رباعية الاتجاهات. مميزات ؟ معدل تفويت أقل ، ولكن على حساب الأداء
تصميم وحدة تحكم المقاطعة القابلة للبرمجة في VHDL: 4 خطوات
تصميم وحدة تحكم المقاطعة القابلة للبرمجة في VHDL: لقد غمرني نوع الردود التي أحصل عليها في هذه المدونة. شكرًا يا رفاق على زيارة مدونتي وتحفيزهم على مشاركة معرفتي معكم. هذه المرة ، سأقدم تصميم وحدة أخرى مثيرة للاهتمام نراها في جميع SOCs - Interrupt C
تصميم وحدة تحكم ذاكرة تخزين مؤقت بسيطة في VHDL: 4 خطوات
تصميم وحدة تحكم ذاكرة تخزين مؤقت بسيطة في VHDL: أكتب هذه التعليمات ، لأنني وجدت أنه من الصعب بعض الشيء الحصول على بعض رموز VHDL المرجعية للتعلم والبدء في تصميم وحدة تحكم ذاكرة التخزين المؤقت. لذلك صممت وحدة تحكم في ذاكرة التخزين المؤقت بنفسي من البداية ، واختبرتها بنجاح على FPGA. لدي ص
وحدة تحكم ودائرة بسيطة للمضخة: 13 خطوة (مع صور)
وحدة تحكم ودائرة بسيطة للمضخة: طلب مشروع حديث في العمل أن أقوم بتصريف المياه من خزانين بشكل دوري. نظرًا لأن كلا من مصارف الخزان يقعان أسفل مستوى جميع المصارف في الغرفة ، فسوف أقوم بملء الدلاء ونقل المياه إلى المصارف يدويًا. قريبا أنا
وحدة تحكم إلكترونية بسيطة في السرعة (ESC) لمضاعفات الدوران اللانهائية: 6 خطوات
وحدة التحكم الإلكترونية البسيطة في السرعة (ESC) لمؤازرة الدوران اللانهائي: إذا حاولت تقديم وحدة التحكم الإلكترونية في السرعة (ESC) في الوقت الحاضر ، يجب أن تكون وقحًا أو جريئًا. عالم التصنيع الإلكتروني الرخيص مليء بالمنظمين بجودة مختلفة مع مجموعة واسعة من الوظائف. مع ذلك صديقي يسأل م