Мазмуну:

VHDL жана Verilogдо жөнөкөй VGA контроллеринин дизайны: 5 кадам
VHDL жана Verilogдо жөнөкөй VGA контроллеринин дизайны: 5 кадам

Video: VHDL жана Verilogдо жөнөкөй VGA контроллеринин дизайны: 5 кадам

Video: VHDL жана Verilogдо жөнөкөй VGA контроллеринин дизайны: 5 кадам
Video: ModelSim & Verilog - Язык Проектирования Схем §10 2024, Ноябрь
Anonim
VHDL жана Verilogдо жөнөкөй VGA контроллеринин дизайны
VHDL жана Verilogдо жөнөкөй VGA контроллеринин дизайны

Бул көрсөтмөдө биз RTLде жөнөкөй VGA контроллерин иштеп чыгалы деп жатабыз. VGA Controller - бул VGA дисплейлерин айдоого арналган санариптик схема. Бул көрсөтүлө турган кадрды чагылдырган Frame Bufferден (VGA Memory) окуйт жана көрсөтүү үчүн керектүү маалыматтарды жана синхрондоштуруу сигналдарын жаратат.

Эгерде сиз Verilog/System верилогунун кодун издесеңиз: Verilogдагы VGA Controller жана Video System блогума баш багыңыз

1 -кадам: VGA контроллеринин интерфейси

Төмөндө VGA контроллериндеги негизги интерфейс сигналдары келтирилген

  • Пикселдик саат же VGA сааты
  • HSYNC жана VSYNC сигналдары

Тандалган VGA дисплейи үчүн, адегенде аны айдоого керектүү Pixel Clock жыштыгын эсептөө керек. Бул 3 параметрден көз каранды: Жалпы горизонталдык пикселдер, жалпы вертикалдуу пикселдер, экранды жаңыртуу ылдамдыгы.

Адатта, F = THP * TVP * Refresh Rate

Ар кандай VGA дисплейлери үчүн керектүү пикселдик сааттын документтерин тиркелген RARден табыңыз.

HSYNC жана VSYNC сигналдары Pixel саатынан түзүлөт. HSYNC жана VSYNC сигналдарынын убактысы параметрлердин санына жараша болот: горизонталдык жана вертикалдуу алдыңкы, горизонталдык жана вертикалдуу арткы, горизонталдык жана вертикалдуу дисплей пикселдери, горизонталдык жана вертикалдуу синхронизациялоочу импульстун туурасы жана полярдыктары.

Бул параметрлер тандалган VGA дисплейи үчүн стандартташтырылган. Бул документтерди тиркелген RARден табыңыз.

Бул параметрлер биздин VGA Controller IPдеги конфигурацияланган параметрлер.

2 -кадам: VGA дисплейи менен VGA контроллерин интеграциялоо

VGA дисплейи менен VGA контроллерин бириктирүү
VGA дисплейи менен VGA контроллерин бириктирүү

Сүрөттө VGA дисплейи менен VGA контроллерин кантип бириктирүү көрсөтүлгөн. Системаны аягына чыгаруу үчүн дагы эки компонент керек:

  • Frame Buffer: Көрсөтүлө турган кадрды камтыган эстутум.
  • Видео DAC: RGB санариптик маалыматын өзгөрткөн жана VGA дисплейин RGB аналогдук сигналдар менен тиешелүү чыңалуу деңгээлинде айдаган DAC.

Эң жөнөкөй жана популярдуу Video DACтердин бири ADV7125. Бул RGB санарип сөздөрдү 0-0.7 V аналогдук сигналдарга айландырган жана VGA дисплейин башкарган 8-бит DAC.

3 -кадам: Frame Buffer Дизайн

Бул көрсөтүлө турган сүрөттү "сактаган" эс. Бул адатта RAM же кээде ROM. Биз сүрөттү чагылдыруу үчүн кадрдык буферди кантип иштеп чыгууну талкуулайбыз. Frame buffer бул санариптик маалыматты VGA Controller командасы боюнча Video DACка өткөрүп берет.

Биринчиден, биз керектүү пиксел тереңдигин чечишибиз керек. Бул сүрөттүн сапатын, пикселдин түстөрүнүн түрдүүлүгүн чечет. 8-бит DAC үчүн биз пикселдин негизги түс компоненттерин көрсөтүшүбүз керек: R, G жана B ар бири 8 бит. Бул пикселдин 24 биттик экенин билдирет.

Ар бир пиксель Frame Buffer эстутумунда үзгүлтүксүз түрдө сакталат.

Көрсөтүлө турган сүрөт 800x600 пиксел дейли.

Демек, Frame Buffer 800x600 = 480000 x 24 bit эстутумуна муктаж

Эстутумдун жалпы көлөмү 800x600x24 = 1400 кБ болжол менен.

Ак -кара сүрөт болсо, 800x600x1 = 60 кБ болжол менен.

Блок RAM'лери Xilinx FPGA'ларда Frame Bufferди көрсөтүү үчүн колдонулушу мүмкүн.

4 -кадам: Эскертүүлөр

  • Кошумча сигналдар тандалган DACке жараша VGA контроллеринде керек. Мен ADV7125 колдондум.
  • VGA дисплейин айдоонун алдында VSYNC жана HSYNC боюнча флип-флоптор аркылуу циклдин кечигүүсүн кошуңуз. Бул DAC жана Memory кечигүүлөрүнөн улам. Пикселдик сигналдар HSYNC жана VSYNC менен синхрондоштурулушу керек. Менин учурда, бул 2 цикл кечигүү болчу.
  • Эгерде берилген өлчөмдөгү Frame Buffer блоктун кочкорунун өлчөмүнө байланыштуу FPGAда иштелип чыкпаса, сүрөттү көрсөтүү үчүн кичирээк эстутумду колдонуңуз жана кодду толук кадрдын чегине эмес, жеткиликтүү эс тутумунун чегине жылдыруу үчүн кодду түзөтүңүз. Бул бүт экран боюнча бир эле сүрөттү кайталай берет. Дагы бир ыкма - бул пикселди масштабдоо, анда ар бир пиксел бүткүл сүрөттү толук экранда, азыраак токтомдо көрсөтүү үчүн кайталанат. Муну коддогу даректерди көбөйтүү логикасын өзгөртүү аркылуу жасаса болот.
  • IP бардык FPGAларда толугу менен портативдүү жана Virtex-4 FPGAда 100 МГцке чейин текшерилген.

5 -кадам: Тиркелген файлдар

RAR камтыйт:

  • VGA Controller коду
  • VGA стандарттарынын PDF форматтары.

Сунушталууда: