6
65656565
Guest
Здрасти,
Някой знае ли как да прибавите линия / точка за монитор VGA?Аз съм нов за VHDL.Аз съм с помощта на UP2 ALTERA борда.бях намерил Примерна програма (кодове са поставили по-долу), но аз не съм сигурен как тя работи, особено на проверката условия за v_count или h_count.Как ние знаем, че тя е 755, 659.
Например:
- Генерира Хоризонтална синхронизация сигнал, използвайки H_count
IF (h_count <= 755) и (h_count> = 659), тогава
horiz_sync <= '0 ';
ИНАЧЕ
horiz_sync <= '1 ';
Крайна сметка, ако;
Може ли някой да моля учтиво да ми помогне?Благодаря много !!!!!
С уважение,
65656565: вика:
IEEE библиотека;
употреба ieee.std_logic_1164.all;
IEEE.STD_LOGIC_ARITH.all употреба;
IEEE.STD_LOGIC_UNSIGNED.all употреба;
ENTITY VGA_SYNC СЕ
PORT (clock_25Mhz, червено, зелено, синьо: В std_logic;
red_out, green_out, blue_out, horiz_sync_out, vert_sync_out: OUT std_logic;
pixel_row, pixel_column: OUT STD_LOGIC_VECTOR (9 DOWNTO 0));
КРАЙ VGA_SYNC;
Архитектурата на СЕ НА VGA_SYNC
СИГНАЛ horiz_sync, vert_sync: std_logic;
СИГНАЛ video_on, video_on_v, video_on_h: std_logic;
СИГНАЛ h_count, v_count: STD_LOGIC_VECTOR (9 DOWNTO 0);
BEGIN
- Video_on е високо, само когато RGB данните се показват
video_on <= video_on_H И video_on_V;ПРОЦЕС
BEGIN
Wait Until (clock_25Mhz'EVENT) И (clock_25Mhz = '1 ');
- Генериране на хоризонтални и вертикални тактови сигнали за видео сигнал
- H_count брой пиксели (640 допълнително време за синхронизиране сигнали)
--
- Horiz_sync ------------------------------------ __________ --------
- H_count 0 640 659 755 799
--
IF (h_count = 799), тогава
h_count <= "0000000000";
ИНАЧЕh_count <= h_count 1; Крайна сметка, ако;
- Генерира Хоризонтална синхронизация сигнал, използвайки H_count
IF (h_count <= 755) и (h_count> = 659), тогава
horiz_sync <= '0 ';
ИНАЧЕ
horiz_sync <= '1 ';
Крайна сметка, ако;
- V_count брой редове от пиксели (480 допълнително време за синхронизиране сигнали)
--
- Vert_sync ----------------------------------------------- _______ ------------
- V_count 0 480 493-494 524
--
IF (v_count> = 524) и (h_count> = 699), тогава
v_count <= "0000000000";
ELSIF (h_count = 699), тогава
v_count <= v_count 1;
Крайна сметка, ако;
- Генерира Вертикална синхронизация сигнал, използвайки V_count
IF (v_count <= 494) и (v_count> = 493), тогава
vert_sync <= '0 ';
ИНАЧЕ
vert_sync <= '1 ';
Крайна сметка, ако;
- Генериране на видео на екрана Сигнали за пикселите на данните
IF (h_count <= 639), тогава
video_on_h <= '1 ';
pixel_column <= h_count;
ИНАЧЕ
video_on_h <= '0 ';
Крайна сметка, ако;
IF (v_count <= 479), тогава
video_on_v <= '1 ';
pixel_row <= v_count;
ИНАЧЕ
video_on_v <= '0 ';
Крайна сметка, ако;
- Поставете всички видео сигнали чрез DFFs да elminate евентуални закъснения, които причиняват едно размазано изображение
red_out <= червено и video_on;
green_out <= зелено и video_on;
blue_out <= синьо и video_on;
horiz_sync_out <= horiz_sync;
vert_sync_out <= vert_sync;
КРАЙ процес;
Прекратяване на;
Някой знае ли как да прибавите линия / точка за монитор VGA?Аз съм нов за VHDL.Аз съм с помощта на UP2 ALTERA борда.бях намерил Примерна програма (кодове са поставили по-долу), но аз не съм сигурен как тя работи, особено на проверката условия за v_count или h_count.Как ние знаем, че тя е 755, 659.
Например:
- Генерира Хоризонтална синхронизация сигнал, използвайки H_count
IF (h_count <= 755) и (h_count> = 659), тогава
horiz_sync <= '0 ';
ИНАЧЕ
horiz_sync <= '1 ';
Крайна сметка, ако;
Може ли някой да моля учтиво да ми помогне?Благодаря много !!!!!
С уважение,
65656565: вика:
IEEE библиотека;
употреба ieee.std_logic_1164.all;
IEEE.STD_LOGIC_ARITH.all употреба;
IEEE.STD_LOGIC_UNSIGNED.all употреба;
ENTITY VGA_SYNC СЕ
PORT (clock_25Mhz, червено, зелено, синьо: В std_logic;
red_out, green_out, blue_out, horiz_sync_out, vert_sync_out: OUT std_logic;
pixel_row, pixel_column: OUT STD_LOGIC_VECTOR (9 DOWNTO 0));
КРАЙ VGA_SYNC;
Архитектурата на СЕ НА VGA_SYNC
СИГНАЛ horiz_sync, vert_sync: std_logic;
СИГНАЛ video_on, video_on_v, video_on_h: std_logic;
СИГНАЛ h_count, v_count: STD_LOGIC_VECTOR (9 DOWNTO 0);
BEGIN
- Video_on е високо, само когато RGB данните се показват
video_on <= video_on_H И video_on_V;ПРОЦЕС
BEGIN
Wait Until (clock_25Mhz'EVENT) И (clock_25Mhz = '1 ');
- Генериране на хоризонтални и вертикални тактови сигнали за видео сигнал
- H_count брой пиксели (640 допълнително време за синхронизиране сигнали)
--
- Horiz_sync ------------------------------------ __________ --------
- H_count 0 640 659 755 799
--
IF (h_count = 799), тогава
h_count <= "0000000000";
ИНАЧЕh_count <= h_count 1; Крайна сметка, ако;
- Генерира Хоризонтална синхронизация сигнал, използвайки H_count
IF (h_count <= 755) и (h_count> = 659), тогава
horiz_sync <= '0 ';
ИНАЧЕ
horiz_sync <= '1 ';
Крайна сметка, ако;
- V_count брой редове от пиксели (480 допълнително време за синхронизиране сигнали)
--
- Vert_sync ----------------------------------------------- _______ ------------
- V_count 0 480 493-494 524
--
IF (v_count> = 524) и (h_count> = 699), тогава
v_count <= "0000000000";
ELSIF (h_count = 699), тогава
v_count <= v_count 1;
Крайна сметка, ако;
- Генерира Вертикална синхронизация сигнал, използвайки V_count
IF (v_count <= 494) и (v_count> = 493), тогава
vert_sync <= '0 ';
ИНАЧЕ
vert_sync <= '1 ';
Крайна сметка, ако;
- Генериране на видео на екрана Сигнали за пикселите на данните
IF (h_count <= 639), тогава
video_on_h <= '1 ';
pixel_column <= h_count;
ИНАЧЕ
video_on_h <= '0 ';
Крайна сметка, ако;
IF (v_count <= 479), тогава
video_on_v <= '1 ';
pixel_row <= v_count;
ИНАЧЕ
video_on_v <= '0 ';
Крайна сметка, ако;
- Поставете всички видео сигнали чрез DFFs да elminate евентуални закъснения, които причиняват едно размазано изображение
red_out <= червено и video_on;
green_out <= зелено и video_on;
blue_out <= синьо и video_on;
horiz_sync_out <= horiz_sync;
vert_sync_out <= vert_sync;
КРАЙ процес;
Прекратяване на;