Статья опубликована в рамках: Научного журнала «Студенческий» № 21(149)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5
БЛОК СИНХРОНИЗАЦИИ 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';
Список литературы:
- Pong P. Chu. FPGA prototyping by VHDL examples // John Wiley & Sons. 2008. P. 291-319. DOI:10.1002/9780470231630
- Руководство пользователя по отладочной плате стартового комплекта 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).
- Исчерпывающее руководство по САПР 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).
Оставить комментарий