Задача
Сформировать сигналы HSYNC/VSYNC и координаты активного пикселя для видеорежима 640×480@60 Гц.
Тип схемы и среда
Последовательная схема: счётчик пикселей (0…799) и счётчик строк (0…524) при тактовой 25 МГц.
Алгоритм работы
Горизонтальный счётчик считает 800 тактов на строку, вертикальный — 525 строк на кадр. Синхроимпульсы активны в интервалах гашения, de — в зоне 640×480.
Код на AHDL
% Проект 33: генератор VGA-развёртки 640x480 % SUBDESIGN ahdl_33_vga_razvertka ( clk, clrn : INPUT; % 25 МГц % hsync, vsync : OUTPUT; hactive[9..0]: OUTPUT; vactive[9..0]: OUTPUT; de : OUTPUT; ) VARIABLE hc[9..0] : DFF; vc[9..0] : DFF; BEGIN hc[].clk = clk; hc[].clrn = clrn; vc[].clk = clk; vc[].clrn = clrn; IF hc[].q == 799 THEN hc[].d = 0; IF vc[].q == 524 THEN vc[].d = 0; ELSE vc[].d = vc[].q + 1; END IF; ELSE hc[].d = hc[].q + 1; vc[].d = vc[].q; END IF; hsync = !((hc[].q >= 656) & (hc[].q < 752)); vsync = !((vc[].q >= 490) & (vc[].q < 492)); de = (hc[].q < 640) & (vc[].q < 480); hactive[] = hc[].q; vactive[] = vc[].q; END;
Пояснения
Стандартные тайминги: видимая зона 640×480, синхроимпульсы отрицательной полярности. Координаты hactive/vactive адресуют генератор изображения.
Инструменты и справочники по теме
📦 help-user.ru — скупка и ремонт компьютерной техники. Продать ноутбук, ПК, комплектующие — help-user.ru.
Что дальше
Скачайте ahdl_33_vga_razvertka.tdf, создайте проект в MAX+PLUS II или Quartus,
назначьте выводы под свою плату и скомпилируйте. Остальные 49 разработок — в
разделе проектов на AHDL.