Bueno geomx.
En primer lugar te queria comentar que mi proyecto esta echo con el platform studio de xilinx y con microblaze.
Con este entorno de desarrollo, lo que hice fue construir una plataforma hardware que incluye, en mi caso, el controlador de VGA, el microblaze(procesador de 32bits), la memoria cache del micro(8KBytes), un controlador de bus para comunicar el micro con la vga y controlador de memoria SDRAM externa.
Después el micro se programa en C normal con sus funciones y subrrutinas para mostrar por pantalla "lo que quieras". Este lo que quieras es cierto, siempre que tu FPGA tenga memoria suficiente para almacenar los datos antesde mostrarlos. Te pongo un ejemplo: En modo texto monocromo, una VGA con resolucion de 640 * 480 pixeles y con un tamaño de caracter de 8*8 pixeles necesitas, 8*8*128 = 8192 bits = 1024 Bytes para almacenar los caracteres en una ROM y 4800 Bytes de RAM para almacenar los carácteres que se van a mostrar por pantalla. En total 5824Bytes para una pantalla de 640 * 480 sólo texto monocromo. Esta emmoria las tienen todas las FPGAs.
Si lo que quieres es VGA modo gráfico de 640*480 256 colores, neceitarás 307200Bytes. Esta memoria ya es más dificil encontrarla dentro de un FPGA. Tendrías que ponerla externa y hacer un controlador de memoria para la VGA muy rápido.
Es totalmente posible pero es muy complicado, sobre todo si acabas de empezar en este mundillo. Además ésta es la única forma de hacer algo en condiciones sin morir en el intento, es decir, con un microprocesador, memorias, y programando en C.
En mi proyecto fin de carrera, hice una grabadora de CD/DVD y reproductor MP3 con una FPGA mostrando por pantalla datos como, tiempos de pistas, navegador de archivos del CD, iconos, barras de prograso de grabación, etc, y todo a base de lógica combinacional y secuencial sin ningún micro ni controlador de VGA ni nada, pero tardé un año completo y consumi todos los recursos de una Virtex XCV800.
Si aprendes a utilizar el xilinx platform studio, puedes hacer algo interesante en bastante menos tiempo.