Съдържание:

Проектиране на обикновен 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 дисплеи. Той чете от Frame Buffer (VGA Memory), който представлява кадъра за показване, и генерира необходимите данни и синхронизиращи сигнали за целите на дисплея.

Ако търсите Verilog/System verilog код: Посетете моя блог VGA контролер и видео система в Verilog

Стъпка 1: Интерфейс на VGA контролер

Следват основните сигнали на интерфейса във VGA контролер

  • Pixel Clock или VGA Clock
  • HSYNC и VSYNC сигнали

За избрания VGA дисплей първо трябва да изчислите честотата на Pixel Clock, необходима за задвижването му. Зависи от 3 параметъра: Общи хоризонтални пиксели, Общи вертикални пиксели, Честота на опресняване на екрана.

Обикновено F = THP * TVP * Честота на опресняване

Намерете документацията за пикселния часовник, необходима за различни VGA дисплеи, в прикачения RAR.

HSYNC и VSYNC сигналите се генерират от Pixel clock. Времето за сигналите на HSYNC и VSYNC зависи от броя на параметрите: хоризонтален и вертикален преден капак, хоризонтален и вертикален заден хоризонтален хоризонтален и вертикален пиксел на дисплея, хоризонтални и вертикални синхронизиращи импулсни ширини и полярности.

Тези параметри са стандартизирани за избран VGA дисплей. Намерете тези документи в приложения RAR.

Тези параметри са конфигурируеми параметри в нашия IP VGA контролер.

Стъпка 2: Интегриране на VGA контролер с VGA дисплей

Интегриране на VGA контролер с VGA дисплей
Интегриране на VGA контролер с VGA дисплей

Фигурата показва как да интегрирате VGA контролер с VGA дисплей. Имате нужда от още два компонента, за да завършите системата:

  • Frame Buffer: Памет, която държи рамката за показване.
  • Видео DAC: DAC, който преобразува RGB цифрови данни и управлява VGA дисплея с RGB аналогови сигнали при подходящо ниво на напрежение.

Един от най -простите и популярни видео DAC е ADV7125. Това е 8-битов ЦАП, който преобразува RGB цифрови думи в 0-0,7 V аналогови сигнали и управлява VGA дисплея.

Стъпка 3: Проектиране на рамков буфер

Това е паметта, която „съхранява“изображението за показване. Обикновено това е RAM или понякога ROM. Ще обсъдим как да проектираме рамков буфер за представяне на изображение. Frame буферът предава тази цифрова информация на Video DAC по команда от VGA контролер.

Първо трябва да решим необходимата дълбочина на пиксела. Той решава качеството на изображението, разнообразието от цветове, които един пиксел може да представлява. За 8-битов DAC трябва да представим основните цветови компоненти на пиксел: R, G и B на 8 бита всеки. Това означава, че пикселът е 24-битов.

Всеки пиксел се съхранява последователно в местата на паметта на Frame Buffer.

Да предположим, че изображението за показване е 800x600 пиксела.

Следователно необходим Frame Buffer е 800x600 = 480000 x 24 бита памет

Общият размер на паметта е 800x600x24 = 1400 kB прибл.

Ако черно -бяло изображение, 800x600x1 = 60 kB прибл.

Блок RAM може да се използва за представяне на Frame Buffer в Xilinx FPGA.

Стъпка 4: Бележки

  • Необходими са допълнителни сигнали на VGA контролера в зависимост от избрания DAC. Използвал съм ADV7125.
  • Добавете забавяне на цикъла през джапанки на VSYNC и HSYNC, преди да задействате VGA дисплея. Това се дължи на DAC и латентността на паметта. Пикселните сигнали трябва да се синхронизират с HSYNC и VSYNC. В моя случай това беше 2 цикъла закъснение.
  • Ако Frame Buffer с даден размер не може да бъде проектиран на FPGA поради ограничението на размера на рам паметта, използвайте по -малка памет за представяне на изображението и просто редактирайте кода, за да превъртите адреса по границата на наличната памет, а не границата на пълния кадър. Това ще възпроизвежда едно и също изображение отново и отново по целия екран. Друг метод е мащабирането на пикселите, при което всеки пиксел се репликира, за да покаже цялото изображение на цял екран, с по -ниска разделителна способност. Това може да стане чрез промяна на логиката за увеличаване на адреса в кода.
  • IP е напълно преносим във всички FPGA и е проверен по време до 100 MHz на Virtex-4 FPGA.

Стъпка 5: Прикачени файлове

RAR съдържа:

  • Код на VGA контролера
  • PDF файлове с VGA стандарти.

Препоръчано: