Mundarija:

VHDL va Verilog -dagi oddiy VGA boshqaruvchisi dizayni: 5 qadam
VHDL va Verilog -dagi oddiy VGA boshqaruvchisi dizayni: 5 qadam

Video: VHDL va Verilog -dagi oddiy VGA boshqaruvchisi dizayni: 5 qadam

Video: VHDL va Verilog -dagi oddiy VGA boshqaruvchisi dizayni: 5 qadam
Video: 計算機結構:Arduino 與 Altera DE2-70 的 Hello 程式 -- CoArduinoDe270Hello.avi 2024, Noyabr
Anonim
VHDL va Verilogda oddiy VGA boshqaruvchisini loyihalash
VHDL va Verilogda oddiy VGA boshqaruvchisini loyihalash

Ushbu qo'llanmada biz RTL -da oddiy VGA boshqaruvini loyihalashtirmoqchimiz. VGA Controller - bu VGA displeylarini boshqarishga mo'ljallangan raqamli elektron. U ko'rsatiladigan ramkani ifodalovchi Frame Buffer (VGA Memory) dan o'qiydi va ko'rsatish uchun kerakli ma'lumotlarni va sinxronizatsiya signallarini ishlab chiqaradi.

Agar siz Verilog/System verilog kodini qidirmoqchi bo'lsangiz: Verilogdagi VGA Controller va Video System blogimga tashrif buyuring.

1 -qadam: VGA tekshirgichining interfeysi

Quyida VGA kontrolleridagi asosiy interfeys signallari keltirilgan

  • Pikselli soat yoki VGA soati
  • HSYNC va VSYNC signallari

Tanlangan VGA displeyi uchun avval uni haydash uchun zarur bo'lgan Pixel Clock chastotasini hisoblash kerak. Bu 3 parametrga bog'liq: umumiy gorizontal piksellar, umumiy vertikal piksellar, ekranni yangilash tezligi.

Odatda, F = THP * TVP * yangilanish tezligi

Har xil VGA displeylari uchun zarur bo'lgan pikselli soat hujjatlarini biriktirilgan RARda toping.

HSYNC va VSYNC signallari Pixel soatlaridan ishlab chiqariladi. HSYNC va VSYNC signallarining vaqti parametrlar soniga bog'liq: gorizontal va vertikal old chiziq, gorizontal va vertikal orqa chiziq, gorizontal va vertikal displey piksellari, gorizontal va vertikal sinxronlash pulslarining kengligi va qutblari.

Bu parametrlar tanlangan VGA displeyi uchun standartlashtirilgan. Bu hujjatlarni biriktirilgan RARda toping.

Bu parametrlar VGA Controller IP -da sozlanishi parametrlardir.

2 -qadam: VGA displeyi bilan VGA boshqaruvchisini birlashtirish

VGA displeyi bilan VGA boshqaruvchisini birlashtirish
VGA displeyi bilan VGA boshqaruvchisini birlashtirish

Rasmda VGA displeyini VGA displeyi bilan qanday birlashtirish mumkinligi ko'rsatilgan. Tizimni to'ldirish uchun sizga yana ikkita komponent kerak bo'ladi:

  • Ramka buferi: ko'rsatiladigan ramkani saqlaydigan xotira.
  • Video DAC: RGB raqamli ma'lumotlarini o'zgartiradigan va VGA displeyini RGB analog signallari bilan mos keladigan kuchlanish darajasida boshqaradigan DAC.

Oddiy va ommabop Video DAClardan biri bu ADV7125. Bu RGB raqamli so'zlarni 0-0.7 V analog signallarga aylantiradigan va VGA displeyini boshqaradigan 8 bitli DAC.

3 -qadam: ramka bufer dizayni

Bu ko'rsatiladigan tasvirni "saqlaydigan" xotira. Odatda bu RAM yoki ba'zida ROM. Biz tasvirni ko'rsatish uchun ramka buferini qanday loyihalashni muhokama qilamiz. Frame bufer bu raqamli ma'lumotni VGA Controller buyrug'i bo'yicha Video DACga uzatadi.

Birinchidan, biz kerakli piksel chuqurligini aniqlashimiz kerak. U tasvirning sifatini, piksellar rangining xilma -xilligini aniqlaydi. 8-bitli DAC uchun biz pikselning asosiy rang komponentlarini ko'rsatishimiz kerak: R, G va B har biri 8 bitda. Bu shuni anglatadiki, piksel 24 bitli.

Har bir piksel Frame Buffer xotira joylarida ketma -ket saqlanadi.

Tasavvur qilaylik, tasvir 800x600 piksel.

Shuning uchun Frame Buffer 800x600 = 480000 x 24 bitli xotiraga muhtoj

Xotiraning umumiy hajmi 800x600x24 = taxminan 1400 kB.

Agar qora va oq tasvir bo'lsa, 800x600x1 = 60 kB taxminan.

Blokli RAMlar, ehtimol, Xilinx FPGA -larda Frame Buferni ifodalash uchun ishlatilgan.

4 -qadam: Eslatmalar

  • Tanlangan DACga qarab VGA tekshirgichida qo'shimcha signallar kerak. Men ADV7125 dan foydalanganman.
  • VGA displeyini haydashdan oldin VSYNC va HSYNC-dagi flip-floplar orqali tsikl kechikishlarini qo'shing. Buning sababi DAC va xotira kechikishidir. Piksel signallari HSYNC va VSYNC bilan sinxronlashtirilishi kerak. Menimcha, bu 2 tsikl kechikish edi.
  • Agar ramka o'lchamlari cheklanganligi sababli berilgan o'lchamdagi ramka buferi FPGA -da ishlab chiqilmasa, tasvirni ko'rsatish uchun kichikroq xotiradan foydalaning va kodni to'liq ramka chegarasi emas, balki mavjud xotira chegarasidagi manzilga o'tkazish uchun tahrir qiling. Bu butun ekran bo'ylab bir xil tasvirni qayta -qayta takrorlaydi. Yana bir usul - bu piksellar sonini o'lchash, bunda har bir piksel butun tasvirni to'liq ekranda, kamroq aniqlikda ko'rsatish uchun takrorlanadi. Buni koddagi manzillarni ko'paytirish mantig'ini o'zgartirish orqali amalga oshirish mumkin.
  • IP barcha FPGA-larda to'liq ko'chiriladi va Virtex-4 FPGA-da 100 MGts gacha tasdiqlangan.

5 -qadam: biriktirilgan fayllar

RAR tarkibiga quyidagilar kiradi:

  • VGA tekshirgich kodi
  • PDF VGA standartlari.

Tavsiya: