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.
Respuestas:
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
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.
fuente
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.
fuente
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.
fuente