Chip de gráficos de 16 bits [cerrado]

5

Estoy tratando de construir una computadora de una sola tarjeta de 16 bits basada en el 68000 y me pregunto si hay chips de gráficos de 16 bits no propietarios como el Yamaha V9958 con hojas de datos fácilmente disponibles.

Gracias

    
pregunta Doihead

2 respuestas

5

Bueno, una opción obvia sería usar el chip del que los dispositivos Yamaha que mencionas eran clones extendidos, TMS9918 . Ya no se fabrican, pero se pueden adquirir con relativa facilidad si se busca en los lugares correctos, por lo que definitivamente son una opción plausible. El TMS9918 se utilizó en la primera computadora personal de 16 bits, la TI-99/4, por lo que estaría en buena compañía allí.  Perdería un poco de resolución en comparación con el MSX, pero sigue siendo un sistema bastante razonable.

Otra opción sería el Motorola 6845 , que era algo menos avanzado pero mucho más versátil: terminó siendo se utiliza como base para las tarjetas gráficas de PC de IBM hasta EGA (y también está presente en forma compatible con versiones anteriores en VGA), por lo que es lo suficientemente capaz para un trabajo real.

Editado para agregar:

El NEC uPD7220 es otro buen candidato, o más particularmente su sucesor de 16 bits, el uPD72120. A diferencia del 6845, esto implementa un sistema basado en comandos donde le dices al chip qué dibujar y actualiza la memoria de video para ti. Al igual que los chips 99x8, está diseñado para tener su propia memoria a la que administra el acceso (mientras que el 6845 es independiente de si la memoria a la que está conectado es suya o está gestionada por la CPU host: solo genera direcciones y espera que los circuitos externos realizar el acceso a la memoria real) y proporciona una forma de solicitar cambios a la memoria de la CPU junto con primitivas de dibujo generales (pero a diferencia del 99x8, proporciona un protocolo de solicitud / reconocimiento de bus que permite el acceso directo a la misma, y es capaz de usar un protocolo DMA estándar para realizar transferencias en bloque hacia y desde la memoria del sistema).

Como las otras anteriores, es una pieza obsoleta que ya no se fabrica, pero se puede comprar en eBay y en sitios similares.

    
respondido por el Jules
2

Eché un vistazo a los FPGA de Xilinx. Hice una tabla VGA / SVGA / XGA con varios bits por píxel: 3,9,12 .. Algunos resultados:

  • VGA 3 bits: 900Kbits, 9 bits: 2.7 Mbits, 18 bits: 5.4Mbits
  • SVGA 3 bits: 1,4 Mbits, 9 bits: 4,2 Mbits, 18 bits: 8,4 Mbits
  • XVGA 3 bits: 2,3 Mbits, 9 bits: 6,9 Mbits, 18 bits: 11,5 Mbits

Luego traté de mapear eso en un FPGA. El factor limitante es la memoria interna. ~ $ 25 te da 1.6Mbits. ~ $ 57 te da 2.7Mbits

A continuación miré usando SRAM externa. ¡Mucho mas barato! Un FPGA de 100 pines es de aproximadamente $ 8, una SRAM de 16Mbit es de $ 7 (paquete LQFP) Eso te da una XGA teórica con 262K colores por píxel.

Luego puede agregar un DAC o usar una red de resistencias.

Lo que no pude verificar es si el FPGA seleccionado es lo suficientemente grande para el código XGA. El código es muy simple, solo una serie de contadores, pero tiene que agregar una interfaz de CPU y puede ser un modo ROM de caracteres.

Si estoy muy aburrido, podría intentar escribir uno mañana.

La pregunta está actualmente en espera, pero de todos modos doy una actualización.

Comenzó con un XC3S50 de 100 pines. He reducido la interfaz de video a 12 bits y el bus de datos de la CPU a 8 bits para permanecer dentro del recuento de pin. (Esto es para XVGA) El diseño se ajusta fácilmente. Agregué una RAM de 256x54 bits para trabajar como "ROM" de caracteres (se puede usar como 9x6 o 10x5). Para entonces, con la FIFO, me quedé sin memoria interna.

Luego probé un 144 pin XC6SL4. Elegí un dispositivo más grande porque la experiencia ha demostrado que siempre necesitas un poco más de lo que esperabas. Cuesta $ 2 más. Esta vez tuve bloques de memoria interna de repuesto y multiplicadores. Luchando con el número de pines, logré subir a 18 bits / píxel con un bus de datos de CPU de 16 bits, o 15 bits / píxel con un bus de datos de CPU de 32 bits.

En ambos casos, el ancho de banda de la memoria no es suficiente para leer & escriba al mismo tiempo, por lo que en ambos diseños hay un FIFO que atrapa las escrituras de la CPU y las ejecuta en el período en blanco. Con 256 entradas, la CPU 68000 no es lo suficientemente rápida para llenar el FIFO en un tiempo de línea.

Ambos diseños pueden funcionar en gráficos o en modo de caracteres. Todo el tiempo de video es programable (como el 6845 pero más grande y más rápido), por lo que puede hacer muchos modos de video de hasta 1024x768. No he agregado colores al modo gráfico, pero eso es solo una cuestión de un poco más de tiempo. (por ejemplo, 16 colores de fondo y 16 de fondo). Como había algunas puertas de repuesto, el modo de gráficos se puede unir o separar. (En el modo separado, el hardware agrega píxeles en blanco alrededor de los caracteres para que se destaquen).

No tengo hardware, lo que significa que nada de esto podría probarse en la vida real.

    
respondido por el Oldfart

Lea otras preguntas en las etiquetas