جدول المحتويات:

تصميم وحدة تحكم VGA بسيطة في VHDL و Verilog: 5 خطوات
تصميم وحدة تحكم VGA بسيطة في VHDL و Verilog: 5 خطوات

فيديو: تصميم وحدة تحكم VGA بسيطة في VHDL و Verilog: 5 خطوات

فيديو: تصميم وحدة تحكم VGA بسيطة في VHDL و Verilog: 5 خطوات
فيديو: How to Create VGA Controller in Verilog on FPGA? | Xilinx FPGA Programming Tutorials 2024, شهر نوفمبر
Anonim
تصميم وحدة تحكم VGA بسيطة في VHDL و Verilog
تصميم وحدة تحكم VGA بسيطة في VHDL و Verilog

في هذا الدليل ، سنقوم بتصميم وحدة تحكم 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
دمج وحدة تحكم 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.

موصى به: