Padrão de Cores VGA

Padrão de Cores VGA

No modo VGA a tela é dividida em pontos (pixels) que são separados por linhas e colunas. Geralmente a imagem possui 480 linhas e 600 colunas e somente um pixel é aceso de cada vez. Para formarmos uma tela, utilizamos o efeito da persistência da visão, utilizado também no projeto Multiplexação de display de 6 algarismos.

O projeto descrito a seguir é um exemplo de circuito lógico sequencial, descrito em VHDL e simulado software ModelSim®-Altera, utilizando um testbench.

Os equipamentos necessários para a implementação do projeto são:

  • 1x Kit CPLD 7064;
  • 1x Monitor com porta VGA;
  • 1x Placa de interface VGA;
  • 1x Adaptador para matriz de contatos

Lógica de Funcionamento

Este projeto é descrito da seguinte forma:

A fim de melhorar a explicação do projeto, o mesmo foi divididos em blocos. Cada bloco funciona da seguinte maneira:

Sincronismo

O bloco possui um contador que marca os pulsos de clock para enviar os pulsos de sincronismo no tempo certo. O kit de CPLD possui um clock de 24MHz.

Para a contagem de pixels temos:

Tempo (us) Pulsos de Clock
25,17 604
26,11 627
29,88 717
31,77 762

Em VHDL fica:

 

 

Para contagem de Linhas temos:

Tempo(ms) Contagem de Linhas
15,250 480
15,700 494
15,764 496
16,764 528

Em VHDL temos:

 

 

Estes tempos foram retirados de análises anteriores. Mais informações sobre a temporização e pulsos de sincronismo, veja o projeto VGA para FPGA.

Padrão

O bloco possui um decodificador que faz o padrão de cores na tela. Através da contagem de pixels, ele reconhece em que faixa do monitor está sendo escrita.

em VHDL temos:

 

 

VGA

Este bloco serve simplesmente para saber se o padrão será enviado ou está dentro do periodo de branqueamento.

Em VHDL:

 

 

Simulação

A simulação utiliza um Testbench de forma bem simples. Simula apenas o clock e observa os sinais que são enviados ao monitor

 

 

Estas imagens apresentam os resultados da simulação, clique nelas para ampliá-las :

Sincronismo Horizontal

Tempo de descida VIDEO_ON_H. Tempo de descida VIDEO_ON_H.

Tempo de descida HSYNC Tempo de descida HSYNC

Tempo de subida HSYNC Tempo de subida HSYNC

Tempo de subida VIDEO_ON_H Tempo de subida VIDEO_ON_H

Sincronismo Vertical

Tempo de descida VIDEO_ON_V Tempo de descida VIDEO_ON_V

Tempo de descida VSYNC Tempo de descida VSYNC

Tempo de subida VSYNC Tempo de subida VSYNC

Tempo de subida VIDEO_ON_V Tempo de subida VIDEO_ON_V

Montagem e Roteamento

A imagem abaixo apresenta como deve ser montado o adaptador.

Arquivos do Projeto

Para o download do projeto completo, clique aqui.

O arquivo está no formato “zip”, e inclui, entre outros:

– O arquivo de projeto do Quartus , no formato “.qpf”

– A descrição no formato VHDL , no formato”.vhd”

   – O arquivo para gravação do CPLD, no formato “.pof”.
   – O test bench utilizado na simulação , no formato “.vhd”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *