6
65656565
Guest
oi,
Alguém sabe como saída para uma linha / ponto de um monitor VGA?Eu sou novo para VHDL.Estou usando uma placa de UP2 ALTERA.Eu tinha encontrado um programa de exemplo (códigos são colados abaixo), mas eu não sei como ele funciona, especialmente as condições de seleção para o v_contador ou h_count.Como sabemos que é 755, 659.
Ex.:
- Gerar Horizontal Sync Signal usando H_count
IF (<h_count = 755) AND (> h_count = 659) THEN
<Horiz_sync = '0 ';
ELSE
<Horiz_sync = '1 ';
END IF;
Alguém pode me ajudar por favor, gentilmente?Graças um lote !!!!!
Atenciosamente,
65656565: cry:
IEEE biblioteca;
IEEE.STD_LOGIC_1164.all utilização;
IEEE.STD_LOGIC_ARITH.all utilização;
IEEE.STD_LOGIC_UNSIGNED.all utilização;
VGA_SYNC entidade é
PORT (clock_25Mhz, vermelho, verde, azul: IN STD_LOGIC;
red_out, green_out, blue_out, horiz_sync_out vert_sync_out: OUT STD_LOGIC;
, Pixel_column pixel_row: OUT STD_LOGIC_VECTOR (9 downto 0));
VGA_SYNC END;
ARQUITETURA DE VGA_SYNC um IS
horiz_sync SIGNAL vert_sync: STD_LOGIC;
video_on SIGNAL, video_on_v, video_on_h: STD_LOGIC;
h_count SIGNAL, v_contador: STD_LOGIC_VECTOR (9 downto 0);
BEGIN
- Video_on é alta apenas quando os dados RGB é exibido
<= Video_on video_on_H E video_on_V;PROCESSO
BEGIN
WAIT UNTIL (clock_25Mhz'EVENT) AND (clock_25Mhz = '1 ');
- Gerar Vertical Timing Sinais e Horizontal para sinais de vídeo
- H_count contagens de pixels (640 hora extra para os sinais de sincronismo)
-
- Horiz_sync ------------------------------------ __________ --------
- H_count 0 640 659 755 799
-
IF (h_count = 799) THEN
<H_count = "0000000000";
ELSE
<= H_count h_count 1;
END IF;
- Gerar Horizontal Sync Signal usando H_count
IF (<h_count = 755) AND (> h_count = 659) THEN
<Horiz_sync = '0 ';
ELSE
<Horiz_sync = '1 ';
END IF;
- V_contador conta linhas de pixels (480 hora extra para os sinais de sincronismo)
-
- ----------------------------------------------- Vert_sync _______ ------------
- V_contador 0 480 493-494 524
-
IF (v_contador> = 524) AND (> h_count = 699) THEN
<V_contador = "0000000000";
ELSIF (h_count = 699) THEN
<= V_contador v_contador 1;
END IF;
- Gerar Vertical Sync Signal usando v_contador
IF (<v_contador = 494) e (v_contador> = 493) THEN
<Vert_sync = '0 ';
ELSE
<Vert_sync = '1 ';
END IF;
- Gerar Video on Signals Tela de Dados Pixel
IF (<h_count = 639) THEN
<Video_on_h = '1 ';
<= Pixel_column h_count;
ELSE
<Video_on_h = '0 ';
END IF;
IF (<v_contador = 479) THEN
<Video_on_v = '1 ';
<= Pixel_row v_contador;
ELSE
<Video_on_v = '0 ';
END IF;
- Coloque todos os sinais de vídeo através de DFFs elminate eventuais atrasos que causam uma imagem borrada
<= Red red_out E video_on;
<= Verde green_out E video_on;
<= Blue blue_out E video_on;
<= Horiz_sync_out horiz_sync;
<= Vert_sync_out vert_sync;
PROCESSO END;
END a;
Alguém sabe como saída para uma linha / ponto de um monitor VGA?Eu sou novo para VHDL.Estou usando uma placa de UP2 ALTERA.Eu tinha encontrado um programa de exemplo (códigos são colados abaixo), mas eu não sei como ele funciona, especialmente as condições de seleção para o v_contador ou h_count.Como sabemos que é 755, 659.
Ex.:
- Gerar Horizontal Sync Signal usando H_count
IF (<h_count = 755) AND (> h_count = 659) THEN
<Horiz_sync = '0 ';
ELSE
<Horiz_sync = '1 ';
END IF;
Alguém pode me ajudar por favor, gentilmente?Graças um lote !!!!!
Atenciosamente,
65656565: cry:
IEEE biblioteca;
IEEE.STD_LOGIC_1164.all utilização;
IEEE.STD_LOGIC_ARITH.all utilização;
IEEE.STD_LOGIC_UNSIGNED.all utilização;
VGA_SYNC entidade é
PORT (clock_25Mhz, vermelho, verde, azul: IN STD_LOGIC;
red_out, green_out, blue_out, horiz_sync_out vert_sync_out: OUT STD_LOGIC;
, Pixel_column pixel_row: OUT STD_LOGIC_VECTOR (9 downto 0));
VGA_SYNC END;
ARQUITETURA DE VGA_SYNC um IS
horiz_sync SIGNAL vert_sync: STD_LOGIC;
video_on SIGNAL, video_on_v, video_on_h: STD_LOGIC;
h_count SIGNAL, v_contador: STD_LOGIC_VECTOR (9 downto 0);
BEGIN
- Video_on é alta apenas quando os dados RGB é exibido
<= Video_on video_on_H E video_on_V;PROCESSO
BEGIN
WAIT UNTIL (clock_25Mhz'EVENT) AND (clock_25Mhz = '1 ');
- Gerar Vertical Timing Sinais e Horizontal para sinais de vídeo
- H_count contagens de pixels (640 hora extra para os sinais de sincronismo)
-
- Horiz_sync ------------------------------------ __________ --------
- H_count 0 640 659 755 799
-
IF (h_count = 799) THEN
<H_count = "0000000000";
ELSE
<= H_count h_count 1;
END IF;
- Gerar Horizontal Sync Signal usando H_count
IF (<h_count = 755) AND (> h_count = 659) THEN
<Horiz_sync = '0 ';
ELSE
<Horiz_sync = '1 ';
END IF;
- V_contador conta linhas de pixels (480 hora extra para os sinais de sincronismo)
-
- ----------------------------------------------- Vert_sync _______ ------------
- V_contador 0 480 493-494 524
-
IF (v_contador> = 524) AND (> h_count = 699) THEN
<V_contador = "0000000000";
ELSIF (h_count = 699) THEN
<= V_contador v_contador 1;
END IF;
- Gerar Vertical Sync Signal usando v_contador
IF (<v_contador = 494) e (v_contador> = 493) THEN
<Vert_sync = '0 ';
ELSE
<Vert_sync = '1 ';
END IF;
- Gerar Video on Signals Tela de Dados Pixel
IF (<h_count = 639) THEN
<Video_on_h = '1 ';
<= Pixel_column h_count;
ELSE
<Video_on_h = '0 ';
END IF;
IF (<v_contador = 479) THEN
<Video_on_v = '1 ';
<= Pixel_row v_contador;
ELSE
<Video_on_v = '0 ';
END IF;
- Coloque todos os sinais de vídeo através de DFFs elminate eventuais atrasos que causam uma imagem borrada
<= Red red_out E video_on;
<= Verde green_out E video_on;
<= Blue blue_out E video_on;
<= Horiz_sync_out horiz_sync;
<= Vert_sync_out vert_sync;
PROCESSO END;
END a;