Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 21(149)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5

Библиографическое описание:
Бреус А.И. БЛОК СИНХРОНИЗАЦИИ VGA-ДРАЙВЕРА // Студенческий: электрон. научн. журн. 2021. № 21(149). URL: https://sibac.info/journal/student/149/217260 (дата обращения: 17.04.2024).

БЛОК СИНХРОНИЗАЦИИ VGA-ДРАЙВЕРА

Бреус Александр Игоревич

студент, кафедра компьютерных систем, Казанский национальный исследовательский технический университет им. А.Н. Туполева-КАИ,

РФ, г. Казань

VGA DRIVER SYNCHRONIZATION UNIT

 

Alexander Breus

student, Department of Computer Systems, Kazan national research technical university Named after A.N. Tupolev – KAI,

Russia, Kazan

 

АННОТАЦИЯ

При разработке проектов на ПЛИС очень часто возникает необходимость вывода какой-либо информации для удобного восприятия человеком, будь это текст, числовые значения или даже графика.

Таким образом, можно определить главную задачу: разработка драйвера для VGA-интерфейса, посредством которого пользователь может выводить информацию на экран монитора, подключенного к отладочной плате.

ABSTRACT

When developing projects on FPGAs, it is very often necessary to display any information for convenient human perception, be it text, numerical values or even graphics, and the capabilities of the Spartan-3A Starter Kit debug board allow you to implement this.

Thus, it is possible to define the main task: development of a driver for the VGA interface, through which the user can display information on the screen of a monitor connected to the debug board.

 

Ключевые слова: FPGA, Spartan-3A Starter Kit, VHDL, VGA, ЖКД, Xilinx, IP-ядра.

Keywords: FPGA, Spartan-3A Starter Kit, VHDL, VGA, LCD, Xilinx, IP-cores.

 

VGA-драйвер генерирует сигналы синхронизации и последовательно выводит точки на монитор.

Схема vga_sync генерирует сигналы вертикальной и горизонтальной синхронизации. Сигналы hsync и vsync подключаются непосредственно к сигналам синхронизации монитора для управления горизонтальным и вертикальным сканированием экрана. Сигналы pixel_x и pixel_y отвечают за координаты выводимой на монитор точки (относительные координаты сканируемой точки), который находится в видимой области [1].

Схема vga_sync также генерирует видеосигнал (video_on), чтобы указать, следует ли включить или отключить дисплей.

Схема генерации точек генерирует три видеосигнала, которые вместе образуют сигнал RGB. Значение цвета получается в соответствии с текущими координатами точки (pixel_x и pixel_y) и сигналом данных (external data/control).

Схема синхронизации генерирует сигнал hsync, который задает требуемое время прохождения (сканирования) строки, и сигнал vsync, который задает необходимое время для прохождения (сканирования) всего экрана (рис. 1).

 

Рисунок 1. Структурная схема драйвера

 

Экран ЭЛТ-монитора обычно имеет небольшую черную рамку по краям и прямоугольник по центру – видимая область, на которую выводится изображение. Это связано с тем, что электронно-лучевой трубке при достижении конца строки (экрана) требуется некоторое время для перемещения в начало строки (экрана).

Стоит обратить внимание на то, что координата текущей точки по горизонтальной оси увеличивается при движении слева-направо, а координата по вертикальной оси увеличивается при движении сверху-вниз, поэтому координата верхнего левого угла равна (0, 0), а координата нижнего правого угла равна (639, 479) (рис. 2).

 

Рисунок 2. Видимая область экрана

 

Реализация данной схемы с помощью языка VHDL представлена в листинге 1. Данная схема была протестирована на отладочной плате Spartan-3A Starter Kit [2]. Программа была написана в среде разработки ISE Xilinx 14.7 [3].

Листинг 1.

Реализация схемы с помощью языка VHDL

process(clk)

begin

         if rising_edge(clk) then

                   pixel_tick <= not(pixel_tick);

                   if pixel_tick = '1' then

                            if h_counter = (HD+HF+HB+HR-1) then

                                      h_counter <= 0;

                                      if v_counter = (VD+VF+VB+VR-1) then

                                               v_counter <= 0;

                                      else

                                               v_counter <= v_counter + 1;

                                      end if;

                            else

                                      h_counter <= h_counter + 1;

                            end if;

                   end if;

         end if;

end process;

 

-- Вывод сигналов синхронизации

vsync <= '0' when (v_counter >= 490) and (v_counter <= 491) else '1';

hsync <= '0' when (h_counter >= 656) and (h_counter <= 751) else '1';

-- Вывод сигнала области экрана

video_on <= '1' when (h_counter < 640) and (v_counter < 480) else '0';

 

Список литературы:

  1. Pong P. Chu. FPGA prototyping by VHDL examples // John Wiley & Sons. 2008. P. 291-319. DOI:10.1002/9780470231630
  2. Руководство пользователя по отладочной плате стартового комплекта Spartan-3A/3AN FPGA (Spartan-3A/3AN FPGA Starter Kit Board User Guide, UG334 (v1.1) June 19, 2008). [Электронный ресурс] Режим доступа: http://www.xilinx.com/support/documentation/boards_and_kits/ug334.pdf. (дата обращения 23.05.2021).
  3. Исчерпывающее руководство по САПР ISE (ISE 11 In-Depth Tutorial, UG695 (v 11.2) June 24, 2009). [Электронный ресурс] // Официальный сайт фирмы Xilinx URL: https://www.xilinx.com/support/documentation/sw_manuals/xilinx11/ise11tut.pdf (дата обращения 26.05.2021).

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.