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:
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:
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.
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:
Este bloco serve simplesmente para saber se o padrão será enviado ou está dentro do periodo de branqueamento.
Em VHDL:
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 :
Tempo de descida VIDEO_ON_H.
Tempo de descida HSYNC
Tempo de subida HSYNC
Tempo de subida VIDEO_ON_H
Tempo de descida VIDEO_ON_V
Tempo de descida VSYNC
Tempo de subida VSYNC
Tempo de subida VIDEO_ON_V
A imagem abaixo apresenta como deve ser montado o adaptador.
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"