Pantalla virtual para el desarrollo de GPU simple

1
  

Relacionado: ¿Dónde comenzar cuando se considera hacer una GPU?

Soy un programador bastante fuerte, pero soy muy nuevo en el diseño de hardware, así que pido disculpas si utilizo una terminología extraña.

Mi objetivo a largo plazo es escribir una GPU personalizada, pero estoy empezando con un framebuffer básico para sentirme cómodo con el diseño de hardware. Este es un resumen de lo que espero hacer con mi proyecto:

  1. Recibir un cuadro de datos de píxeles en un bus
  2. Almacenar marco en una pila en el hardware
  3. Marcos de salida a la frecuencia de actualización del monitor

Puedo descubrir el # 1 y el # 2, pero nunca he hecho algo como el # 3. Estoy pensando que la configuración de desarrollo óptima sería tener una pantalla virtual que se conecte a los pines de salida de mi diseño (VGA o DVI) y la muestre en una ventana de mi computadora. Probablemente podría hacer esto con un FPGA y una pequeña pantalla LCD, pero creo que será más fácil para el desarrollo (especialmente viajar) simularlo todo.

¿Ya existe una solución para esto? Si es así, ¿qué puedo buscar para obtener más información al respecto? Si no, ¿cuál es la configuración de desarrollo habitual para algo como esto?

Estoy desarrollando Linux utilizando Icarus Verilog, por lo que sería preferible una solución que funcione con eso.

    
pregunta beatgammit

1 respuesta

2

Una alternativa sería utilizar PLI / VPI para llamar a un código C, así que en lugar de hacer la activación de pines de nivel superior, llame a una tarea del sistema que almacena el píxel en un búfer de cuadros de software y lo presenta en una ventana.

Recientemente he utilizado la misma técnica para un UART: he creado una instancia de otro uart con el TX + RX cruzado, y cuando el que está en el banco de pruebas recibe datos, aliméntelo a algún código C con una tarea del sistema que escribe en un PTY (y viceversa).

Dado que es probable que la simulación no se ejecute tan rápido, escribir archivos de imagen o datos binarios, por lo tanto, el postprocesamiento puede hacer que sea más útil.

    
respondido por el Jamie Iles

Lea otras preguntas en las etiquetas