Tablero FPGA sugerido [cerrado]

11

Este es mi primer vistazo a FPGA, pero con gran experiencia en desarrollo de software. Me gustaría comprar una placa para aprender, pero eventualmente me gustaría poder ejecutar una computadora basada en Z80 de principios de los 80 (piense en el modelo TRS80 que digo).

He estado mirando las placas Spartan 3E y Spartan 6, pero no estoy muy seguro de las diferencias de rendimiento / capacidad.

Lo que estoy pensando es algo como esto:

  • Suficiente espacio para:
    • Z80 simulado utilizando el softcore T80 de código abierto.
    • periféricos integrados simulados tales como controlador de video, controlador de sonido (simple 1 bit), controlador de disquete
    • quizás un par de controladores picoblaze para usar los botones integrados para la selección de imágenes de disquete, etc.
  • Conector VGA (16 colores serían suficientes, 256 bonus)
  • Conector de teclado PS2
  • Suficiente flash incorporado para guardar varias imágenes de disquete virtual y ROM del sistema (16 Mb deberían ser suficientes)
  • En la pantalla de la placa, la pantalla LCD sería agradable, un LED de 4x7 segmentos probablemente sería suficiente.
  • algún tipo de toma de tarjeta flash sería bueno, pero no obligatorio.
  • Conexión de alimentación para salir de la red eléctrica, probablemente a través de una fuente de alimentación.

Estas son las tablas que estoy considerando actualmente:

  • Tarjeta FPGA Nexys ™ 3 Spartan-6
  • Spartan 3E Starter Board
  • Junta de desarrollo Spartan 3E-1600
  • Basys ™ 2 Spartan-3E FPGA Board (500K) + 16M Flash pMod
  • Basys ™ 2 Spartan-3E FPGA Board (1200K) + 16M Flash pMod

EDITAR: Acabo de notar que Basys no tiene RAM incorporada, por lo que estaría limitado a la RAM FPGA, no es ideal.

Lo principal de lo que no estoy seguro es cuánto espacio quedará después de cargar el softcore T80. Cualquier consejo muy apreciado.

Puntilla
fuente
66
Sugiero aprender Verilog o VHDL primero. Meterse con él en un simulador. Asegúrese de estar preparado para el trabajo de FPGA. Lo extraño con los FPGA es que pasará la mayor parte de su tiempo de desarrollo (como principiante) trabajando en simuladores y ejecutando bancos de pruebas.
Earlz

Respuestas:

6

Si bien los objetivos ambiciosos son agradables, mi consejo es comenzar de a poco. Mucho más pequeña. El proyecto que está proponiendo sería difícil para un diseñador de FPGA intermedio y casi imposible para un principiante. Soy un gran defensor de los FPGA y me gustaría ver que tenga éxito: comenzar con un proyecto tan ambicioso probablemente provocará mucha frustración y probablemente abandonará por completo el diseño de FPGA.

Permítanme ponerlo en términos de software: este proyecto sería como alguien que nunca ha hecho software escribiendo un compilador de C completo, desde cero.

Comienza más pequeño y serás mucho más feliz.

Editar: Se agregaron cosas a continuación.

Dicho todo esto, es difícil dar una buena recomendación para una junta. La razón de esto es que cualquier placa que recomendaría a alguien sin experiencia en FPGA no es la misma placa que recomendaría para hacer un proyecto de tipo CPU. Una placa para principiantes puede costar entre 50 y 100 dólares, mientras que una placa para hacer CPU + VGA + Flash_Card + lo que sea puede ser entre 1000 y 2000 dólares.

También existe una gran posibilidad de que una vez que realice un par de diseños simples de FPGA, cambie de opinión y desee realizar un proyecto diferente más adelante.

Entonces, mi recomendación es que primero obtenga una placa simple en el rango de precios de menos de US $ 100. Luego, cuando esté listo para abordar un proyecto más grande, puede comprar un tablero más caro que esté cerca de lo que desea (lo que sea que sea en ese momento).

La placa que me gusta es esta: http://www.xilinx.com/products/boards-and-kits/AES-S6MB-LX9.htm

Es económico, usa una parte de la generación actual, es de un fabricante de nivel 1 e incluso puede hacer algunas cosas simples de CPU.


fuente
Gracias David, ciertamente me doy cuenta de que lo que he sugerido es ambicioso, pero también estaba pensando en el hecho de que ya hay una serie de máquinas más antiguas como esta que sería divertido descargar y jugar, por eso es que quería algo capaz desde el principio. Brad
Brad
1
@Brad: si tiene una máquina que desea descargar y jugar, use la placa para la que fue diseñada. Sería un esfuerzo prodigioso simplemente portar el proyecto de una placa a otra.
Kevin Vermeer
@David Kessner: si bien este es un consejo decente para el proyecto, para elegir una plataforma en la que trabajar tiene sentido elegir algo que respalde los esfuerzos durante varios meses, no solo el primer experimento. Eso es lo que preguntó el cartel, y no es algo que tu respuesta haya tocado en lo más mínimo.
Chris Stratton
@ Chris Stratton Gracias por las críticas. He añadido a mi respuesta.
No estoy seguro de por qué cree que una placa para una tarjeta flash CPU + VGA + sería de $ 1000. Hace siete años tenía una unidad de disco duro IDE conectada a un kit Spartan 3 de $ 100 para reproducir video. Estaba algo limitado por el carnero, y esa placa ahora cuesta $ 150, pero como su enlace señala, ahora puede obtener una placa con muchos megabytes de memoria por menos de $ 100. Eso debería ser suficiente para emular sistemas de la era de los 8 bits. Esperaría que una tarjeta SD operada en modo spi se comparara favorablemente en velocidad al menos con las interfaces de disquete de esa época. Sin embargo, tenga cuidado con los voltajes de E / S muy bajos en los FPGA más recientes.
Chris Stratton
2

Hmmm, desafortunadamente es vhdl, iba a decir comenzar con verilator o icarus verilog. En su lugar, quizás use ghdl. La primera sugerencia es poner en marcha un entorno de simulación, comenzar a construir esto allí.

Antes de elegir un tablero de fpga, debe tener una idea de cuán grande será, las diversas herramientas son gratuitas o gratuitas con el sacrificio de su dirección de correo electrónico y alguna otra información. Pruebe las herramientas de celosía, altera, xilinx, etc., comience estrictamente con el núcleo T80 y algunos de estos fpgas objetivo que está viendo. Supongo que todo lo que desee agregar aumentará en gran medida el porcentaje total que obtenga cuando implemente el núcleo T80. Apuesto a que, solo en el centro, podrás eliminar a algunos de los candidatos.

Quizás la placa fpgaarcade, que de alguna forma ha utilizado el núcleo T80, es lo que está buscando ... cuando está disponible.

Tengo que estar completamente de acuerdo con el otro David, si aún no eres un desarrollador profesional de fpga / board, aquí no es donde comienzas, estás buscando quizás años de trabajo, probablemente comprarás varios tableros multimillonarios como tú destrúyalos con errores, etc. Si tiene ese tipo de dinero a su disposición, tal vez debería contratar a un consultor para que lo guíe en el proceso. O tener un tablero construido según las especificaciones.

Más poder para usted si esto es realmente algo que quiere hacer, simplemente sea inteligente al respecto, comience con el núcleo y algunos programas simples que parpadean algunos leds y avanzan lentamente desde allí. Recomiendo encarecidamente la ruta de simulación. Aparte de la gratificación instantánea, no te molestes con el silicio hasta que estés más lejos en el camino. Para entonces, tendrá más del diseño y podrá utilizar las herramientas para ver en qué podría encajar. Si no puede hacer que esto funcione en simulación, probablemente no lo hará funcionar en silicio.

viejo contador de tiempo
fuente
1
Gracias chicos, he seguido su consejo y he decidido pasar de ser demasiado ambicioso a ser totalmente tentativo. Recogí un pequeño programador PIC / kit de placa de desarrollo y un soldador ...
Brad
Hasta el final del año, el enrejado tiene una placa cpld, pico algo (machx02) que admite su venta mico8 core por $ 29. Afirmaron que iban a arreglarlo, pero su tienda tiene el precio incorrecto, no de venta, pero uno / algunos de los revendedores lo tienen al precio correcto. Por alrededor de $ 50 puedes usar su placa brevia, que es una fpga con más bloques lógicos y más ejemplos de procesadores integrados. También hay un escudo de gameduino ardino que tiene un xilinx y vga, todos de código abierto, que puedes jugar con la generación de video trabajando hacia el objetivo de simular una tarjeta / sistema de video heredado.
old_timer
mora, ¿tienes un enlace directo para ese tablero? Se ha llegado al máximo mi interés ...
drxzcl
@DrX latticesemi.com/products/developmenthardware/developmentkits/… Compré el mío en nuhorizons.com/development/devtool.asp?board=257 y puede haber otros sitios como mouser y digikey
old_timer el
Solo tenga cuidado con el envío; querían $ 80 para enviar a Canadá ... "FedEx International Priority es nuestra única opción" - bleh.
akohlsmith
1

Si desea simular computadoras con salida de video, intente obtener algo con una buena cantidad de RAM, ya que lo necesitará tanto para el sistema como para la memoria de video. Obviamente, un conector incorporado para VGA es bueno, aunque si desea hacer una simulación fiel a la sincronización de algunos sistemas tempranos, es posible que necesite generar video compuesto injertando en un DAC o incluso un DAC de resistencia R2R.

Luego, tal vez elija la opción de chip de conteo de puertas más grande disponible en la placa que sea compatible con la versión gratuita de las herramientas FPGA . Los chips más grandes tienen implícitamente más memoria RAM en bloque (he visto muchos diseños impulsados ​​por eso en lugar del recuento de compuertas), sin embargo, es posible que se encuentre en el territorio de la aplicación donde la memoria RAM externa y un FPGA más pequeño son más baratos que un FPGA lo suficientemente grande como para hacerlo todo en chip .

El almacenamiento flash siempre se puede injertar más tarde, por ejemplo, una tarjeta SD de varios gigabytes con interfaz en modo SPI.

En general, las placas FPGA vienen en la clase de $ 100-200, y luego la clase realmente costosa. Probablemente puedas progresar bastante con uno de los primeros.

Chris Stratton
fuente
0

Fui el póster original de esta pregunta, pero no debo haber iniciado sesión o no haber creado una cuenta todavía ...

De todos modos, al final dejé el proyecto a un lado durante 4 o 5 meses, pero luego fui con la placa Nexys3 y ahora tengo una computadora Microbee en funcionamiento. Puede leer sobre esto aquí: http://www.toptensoftware.com/fpgabee .

En general, estoy muy contento con el Nexys3, maneja el núcleo T80 con espacio de sobra, no era demasiado caro ($ 250) y tiene todo lo que necesito (y más).

La principal decepción es que no pude hacer funcionar la interfaz del teclado USB-HID y, aunque todavía estoy discutiendo con Digilent al respecto, sospecho que solo funciona con algunos teclados y no he podido encuentre uno que sea compatible (he probado unos 8 teclados diferentes ahora). No hay diseños de referencia para ello, las pruebas periféricas no prueban el teclado y he leído que otros tienen el mismo problema.

Brad Robinson
fuente
1
Si le importa su cuenta anterior, puede marcar para fusionarlas.
stevenvh