¿Hay un proyecto de tarjeta de gráficos vectoriales basado en FPGA?

4

He estado jugando con proyectos VGA como mi último interés. Tengo un Xilinx Spartan 3E 250K FPGA, que apenas tiene Muy poca memoria RAM para un buffer de cuadro completo de 640x480 Por lo tanto, estoy tratando de hacer las cosas más "interesantes". Es decir, en lugar de ir por un enfoque vectorial en lugar de un mapa de bits. Sin embargo, es un poco alucinante en cuanto a cómo hacerlo. ¿Existen tarjetas gráficas VGA basadas en vectores de código abierto y conocidas?

No voy a usar esto en ningún tipo de escenario de "producción", así que realmente no me importa si solo se puede procesar efectivamente a 1 fps o algo así. Solo estoy mirando una interesante idea de proyecto.

    
pregunta Earlz

1 respuesta

8

Por favor, por favor, no tome lo que voy a decir personalmente. Creo que su pregunta es una que muchas personas probablemente se han preguntado en un momento u otro. Incluso he votado la pregunta. Desafortunadamente, la respuesta es "no funciona de esa manera". Y no hay una buena manera de responder a su pregunta sin hacer que se sienta mal por hacerla, lo que es una pena porque creo que hay información útil en la respuesta. Entonces, tengan paciencia conmigo y entiendan que mi motivación es explicar cómo funcionan estas cosas y no hacerle sentir mal.

Las pantallas modernas (televisores, pantallas LCD, plasma, la mayoría de las CRT) son dispositivos basados en ráster. Es decir, redibujan la pantalla una línea de escaneo a la vez. Las interfaces de video utilizadas para hablar con estas pantallas se basan en una interfaz de trama. NTSC, VGA, HDMI, etc. son todas tecnologías de visualización ráster.

Hace años, principalmente en los años 70 y principios de los 80, había algunas pantallas vectoriales verdaderas. En lugar de dibujar una línea de escaneo a la vez, en realidad trazaban la forma de los objetos. Los mejores ejemplos de esto son los o-scopes analógicos, y los juegos de arcade Asteroids y Battlezone. Hay muy pocas pantallas de vectores en color que se usaron, y el mejor ejemplo de eso es el juego arcade Tempest. Una forma diferente de visualización vectorial son los sistemas utilizados para los espectáculos de luz láser.

La interfaz eléctrica a una pantalla vectorial tiene señales para la ubicación X e Y del haz, la intensidad y, a veces, el color. Esto es muy diferente a la interfaz para una visualización de trama.

La tecnología CRT más antigua podría usarse para pantallas vectoriales o ráster, pero las pantallas LCD, pantallas de plasma, OLED, etc. están basadas fundamentalmente en ráster y no se pueden usar fácilmente en un modo de tipo vectorial.

El problema con su pregunta es que está preguntando por una "tarjeta gráfica VGA basada en vectores". "Basado en vectores" no va con VGA. VGA es un estándar e interfaz de visualización basado en ráster, mientras que el vector no lo es. No se pueden mezclar los dos, ya que son sistemas diferentes.

Es posible hacer una tarjeta de gráficos vectoriales basada en un FPGA, pero no se puede conectar a un monitor de tipo VGA sin hacer una conversión de vector a ráster en el FPGA, y eso requiere tanta RAM o más Una tarjeta gráfica raster estándar. Podría obtener una pantalla de vector, pero todos ellos se han ido con la desaparición del CRT.

La forma más fácil de obtener una visualización vectorial en estos días es obtener un o-scope que tenga un modo X / Y. De hecho, hay muchos proyectos en la web que usan un viejo o-scope con CRT tube como la pantalla para algo. Aquí hay un proyecto que usa uno para hacer un reloj . Y aquí hay otro . Hay docenas de otros proyectos similares en la web.

Aunque son interesantes, estos proyectos son poco más que novedades. Son novedosas novedades, pero solo novedades. Y ninguno de ellos se acerca a la calidad de visualización de una tarjeta VGA normal.

Una solución alternativa es simplemente obtener un FPGA con algo de RAM externa. Hay muchas maneras de hacer esto, pero la forma más fácil y sin dolor es usar una placa basada en Xilinx Spartan-6 con SDRAM DDR externa. Hay varias placas de desarrollo de FPGA en el mercado que tienen ambos chips que funcionarán. Algunos de ellos incluso tienen interfaces VGA.

No usaría SRAM externa. SRAM, especialmente async-SRAM, también será lenta para la interfaz y el tamaño de la memoria será limitado. No es imposible usar la SRAM, pero no es más fácil usar la SRAM que la SDRAM DDR2 en un Spartan-6.

Tampoco usaría un Spartan-3. La interfaz DDR SDRAM del S3 no es muy buena y es difícil hacer que la señal de la señal funcione de manera confiable. El Spartan-6 tiene una "macro dura" para la interfaz DDR2, lo que hace que todo sea mucho más fácil. El S6 también tiene más memoria RAM interna para búferes, FIFO, etc. Xilinx tiene un buen núcleo "Generador de interfaz de memoria" que hace que la interfaz de varios trozos diferentes de lógica a la SDRAM DDR2 sea mucho más fácil (con múltiples puertos de lectura / escritura también). p>

En cuanto a un núcleo de gráficos vectoriales de código abierto, no conozco ninguno. Eso no significa que no haya uno, solo que no lo he visto. Pero también dudo que veas una que sea muy buena. Simplemente no hay tanta llamada para uno ya que las pantallas son algo raras y limitadas. Si encuentra uno, es probable que sea bastante especializado (solo muestra un reloj).

Obtenga una placa FPGA con un Spartan-6, DDR2 SDRAM y un puerto VGA y estará mucho más contento.

    
respondido por el user3624

Lea otras preguntas en las etiquetas