Სარჩევი:

მარტივი VGA კონტროლერის დიზაინი VHDL და Verilog– ში: 5 ნაბიჯი
მარტივი VGA კონტროლერის დიზაინი VHDL და Verilog– ში: 5 ნაბიჯი

ვიდეო: მარტივი VGA კონტროლერის დიზაინი VHDL და Verilog– ში: 5 ნაბიჯი

ვიდეო: მარტივი VGA კონტროლერის დიზაინი VHDL და Verilog– ში: 5 ნაბიჯი
ვიდეო: Breaking Through The (Google) Glass Ceiling by Christopher Bartholomew 2024, დეკემბერი
Anonim
მარტივი VGA კონტროლერის დიზაინი VHDL და Verilog
მარტივი VGA კონტროლერის დიზაინი VHDL და Verilog

ამ ინსტრუქციურად, ჩვენ ვაპირებთ შევქმნათ მარტივი VGA კონტროლერი RTL– ში. VGA კონტროლერი არის ციფრული წრე, რომელიც შექმნილია VGA დისპლეების მართვისთვის. ის იკითხება ჩარჩო ბუფერიდან (VGA მეხსიერება), რომელიც წარმოადგენს ჩვენების ჩარჩოს და ქმნის საჭირო მონაცემებს და სინქრონიზაციის სიგნალებს ჩვენების მიზნით.

თუ თქვენ ეძებთ Verilog/System verilog კოდს: ეწვიეთ ჩემს ბლოგს VGA კონტროლერს და ვიდეო სისტემას Verilog– ში

ნაბიჯი 1: VGA კონტროლერის ინტერფეისი

ქვემოთ მოცემულია VGA კონტროლერის მთავარი ინტერფეისის სიგნალები

  • Pixel საათი ან VGA საათი
  • HSYNC და VSYNC სიგნალები

არჩეული VGA ეკრანისთვის, თქვენ ჯერ უნდა გამოთვალოთ Pixel Clock– ის სიხშირე, რომელიც საჭიროა მისი მართვისთვის. ეს დამოკიდებულია 3 პარამეტრზე: სულ ჰორიზონტალური პიქსელი, სულ ვერტიკალური პიქსელი, ეკრანის განახლების მაჩვენებელი.

როგორც წესი, F = THP * TVP * განახლების მაჩვენებელი

იპოვეთ დოკუმენტაცია პიქსელის საათის შესახებ, რომელიც საჭიროა სხვადასხვა VGA დისპლეისთვის, თანდართულ RAR– ში.

HSYNC და VSYNC სიგნალები წარმოიქმნება Pixel საათიდან. HSYNC და VSYNC სიგნალების დრო დამოკიდებულია პარამეტრების რაოდენობაზე: ჰორიზონტალური და ვერტიკალური წინა ღერი, ჰორიზონტალური და ვერტიკალური ზურგჩანთა, ჰორიზონტალური და ვერტიკალური ჩვენების პიქსელები, ჰორიზონტალური და ვერტიკალური სინქრონიზაციის პულსის სიგანე და პოლარობა.

ეს პარამეტრები სტანდარტიზებულია არჩეული VGA დისპლეისთვის. იპოვეთ ეს დოკუმენტები თანდართულ RAR– ში.

ეს პარამეტრები არის კონფიგურირებადი პარამეტრები ჩვენს VGA კონტროლერის IP- ში.

ნაბიჯი 2: VGA კონტროლერის ინტეგრირება VGA დისპლეით

VGA კონტროლერის ინტეგრირება VGA დისპლეით
VGA კონტროლერის ინტეგრირება VGA დისპლეით

ფიგურა გვიჩვენებს, თუ როგორ ხდება VGA კონტროლერის ინტეგრირება VGA დისპლეით. სისტემის დასასრულებლად გჭირდებათ კიდევ ორი კომპონენტი:

  • ჩარჩოს ბუფერი: მეხსიერება, რომელიც ინახავს ჩარჩოს ჩვენებას.
  • ვიდეო DAC: DAC, რომელიც გარდაქმნის RGB ციფრულ მონაცემებს და მართავს VGA ჩვენებას RGB ანალოგური სიგნალებით შესაბამის ძაბვის დონეზე.

ერთ -ერთი ყველაზე მარტივი და პოპულარული ვიდეო DAC არის ADV7125. ეს არის 8 ბიტიანი DAC, რომელიც გარდაქმნის RGB ციფრულ სიტყვებს 0-0,7 V ანალოგურ სიგნალებად და მართავს VGA ეკრანს.

ნაბიჯი 3: ჩარჩოს ბუფერის დიზაინი

ეს არის მეხსიერება, რომელიც 'ინახავს' გამოსახულების ჩვენებას. როგორც წესი, ეს არის RAM ან ზოგჯერ ROM. ჩვენ განვიხილავთ, თუ როგორ უნდა შეიქმნას ჩარჩო ბუფერი გამოსახულების წარმოსადგენად. ჩარჩო ბუფერი გადასცემს ამ ციფრულ ინფორმაციას ვიდეო DAC– ზე VGA კონტროლერის ბრძანებით.

პირველ რიგში, ჩვენ უნდა განვსაზღვროთ პიქსელის საჭირო სიღრმე. ის წყვეტს სურათის ხარისხს, პიქსელის ფერის მრავალფეროვნებას. 8 ბიტიანი DAC– სთვის, ჩვენ უნდა წარმოვადგინოთ პიქსელის ძირითადი ფერის კომპონენტები: R, G და B თითოეული 8 ბიტებში. ეს ნიშნავს, რომ პიქსელი არის 24 ბიტიანი.

თითოეული პიქსელი ინახება მიმდებარედ Frame Buffer მეხსიერების ადგილებში.

დავუშვათ, რომ გამოსახული სურათი არის 800x600 პიქსელი.

ამიტომ ჩარჩო ბუფერი საჭიროა 800x600 = 480000 x 24 ბიტიანი მეხსიერებით

მეხსიერების საერთო ზომაა 800x600x24 = 1400 კბ დაახლ.

თუ შავი და თეთრი სურათია, 800x600x1 = 60 კბ დაახ.

შესაძლოა დაბლოკოს ოპერატიული მეხსიერება Xilinx FPGA– ში Frame Buffer– ის წარმოსადგენად.

ნაბიჯი 4: შენიშვნები

  • დამატებითი სიგნალები საჭიროა VGA კონტროლერზე, არჩეული DAC- ის მიხედვით. მე გამოვიყენე ADV7125.
  • დაამატეთ ციკლის შეფერხებები VSYNC- სა და HSYNC- ზე VGA ეკრანის მართვამდე. ეს გამოწვეულია DAC და მეხსიერების დაყოვნებით. პიქსელის სიგნალები უნდა იყოს სინქრონიზებული HSYNC და VSYNC. ჩემს შემთხვევაში, ეს იყო 2 ციკლის შეფერხება.
  • თუ მოცემული ზომის ჩარჩო ბუფერი არ შეიძლება დაპროექტდეს FPGA– ზე ბლოკის მოცულობის შეზღუდვის გამო, გამოიყენეთ მცირე მეხსიერება გამოსახულების გამოსახატად და უბრალოდ შეასწორეთ კოდი, რომ გადაახვიოთ მისამართი არსებული მეხსიერების საზღვარზე და არა სრული ჩარჩოს საზღვარზე. ეს იმეორებს ერთსა და იმავე სურათს მთელ ეკრანზე. კიდევ ერთი მეთოდი არის პიქსელის მასშტაბირება, რომლის დროსაც თითოეული პიქსელი მეორდება, რომ მთლიანი გამოსახულება აჩვენოს სრულ ეკრანზე, ნაკლები გარჩევადობით. ეს შეიძლება გაკეთდეს კოდში მისამართის გაზრდის ლოგიკის შეცვლით.
  • IP არის სრულიად პორტატული ყველა FPGA– ზე და დრო დამოწმებულია 100 MHz– მდე Virtex-4 FPGA– ზე.

ნაბიჯი 5: თანდართული ფაილები

RAR შეიცავს:

  • VGA კონტროლერის კოდი
  • VGA სტანდარტების PDF ფაილები.

გირჩევთ: