Final Project - VGA Module
Grupo:
Introdução:
O objetivo deste projeto é utilizar a saída de vídeo disponível no PLD (Pegasus, da Digilent) (Figura 1) para algum propósito. Resolveu-se então aproveitar a calculadora previamente implementada na disciplina, fazendo com que os números que antes eram mostrados no display de sete segmentos da placa sejam mostrados também no monitor.
Figura 1
Estrutura Lógica:A saída VGA precisa que 6 sinais sejam definidos para o seu correto funcionamento. Três deles são as cores dos pixels (R-red, G-green e B-blue), dois são as sincronizações verticais e horizontais, que definem a resolução da tela (HSync e VSync), e o último é o clock, que fornece a velocidade de varredura da tela (figura 2).
![]()
Figura 2
Componentes:
Para a utilização da saída VGA da placa, foi inicialmente buscado um módulo pronto na Internet, porém não foi encontrado um módulo que fornecesse as funcionalidades necessárias. Em vista disto, foi implementado um módulo que simula um display sete segmentos no monitor.
No módulo implementado, foram utilizadas duas variáveis de entrada. Uma que recebe o valor a ser mostrado na tela e outra que recebe os dados de controle, que no nosso caso sinalizam a ocorrência de overflow e underflow. Então para o funcionamento deste módulo é necessário o fornecimento desses dois dados.
Basicamente, ele funciona da seguinte maneira: as cores RGB são definidas no próprio módulo, assim como as sincronizações vertical e horizontal (figura 3). O clock é fornecido pelo próprio clock da placa. Um display de sete segmentos é simulado e, dependendo do número presente no registrador que recebe o valor a ser mostrado e conforme os dados de controle também recebidos através de um registrador, o valor é mostrado na tela e/ou a situação de controle é sinalizada.
![]()
Figura 3
Este módulo foi inserido no projeto e as devidas alterações foram feitas para o correto reconhecimento do mesmo, como por exemplo a conexão dos sinais R, G, B, HSync e VSync, além dos registradores de dados utilizados.
Alterações na calculadora original:
As alterações feitas no programa previamente implementado da calculadora foram a inserção de duas portas. Uma que recebe o valor que deveria ser mostrado e outra que recebe uma variável de controle sinalizando o overflow ou o underflow do resultado das operações (figura 4).
)
Figura 4
Frustrações durante o projeto:
Depois do funcionamento do módulo VGA, resolveu-se também utilizar como entrada dos dados da calculadora um teclado, fazendo assim uso da porta PS2 presente na placa. Para isso, era necessário que um novo módulo fosse adicionado ao projeto. Foi pesquisado um módulo e tentou-se fazer com que os dados enviados pelo teclado fossem lidos. Porém, depois de muitas tentativas e o pouco progresso, resolveu-se focalizar mais na utilização da saída de vídeo.
O grupo tentou entrar em contato com o fabricante da placa para a obtenção do módulo VGA, mas nenhuma resposta foi obtida. Outro fator que atrapalhou o desenvolvimento deste trabalho foi a falta de documentação.
Projetos futuros:
O módulo VGA implementado é específico para a nossa aplicação, uma vez que nenhum módulo genérico que mostrasse qualquer dado na tela foi encontrado e posto em funcionamento. Tem-se aqui a possibilidade da implementação de um módulo que recebe qualquer caractere e os mostre na tela, usando controles para quebra de linha e alteração de cores.
Como não se obteve sucesso com o módulo do teclado, outra possibilidade é dar continuidade a esse trabalho e fazer com que os dados sejam lidos a partir do teclado.
Conclusões:
O objetivo desse trabalho, que consistia em desenvolver alguma aplicação utilizando a saída VGA da placa, foi alcançado.
Com a realização deste trabalho, adquiriu-se maior conhecimento para a utilização de um FPGA, assim como se observaram as dificuldades de trabalhar com software em baixo nível.
Links: