Esta es mi primera mirada a la FPGA, pero con una gran experiencia en el desarrollo de software. Me gustaría comprar una placa para aprender, pero con el tiempo me gustaría ser capaz de ejecutar un estilo de principios de los 80 Z80 basado en la computadora (creo que el modelo TRS80 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 así:
- Suficiente espacio para:
- Z80 simulado usando el opencores T80 softcore.
- simular los periféricos de la placa, como el controlador de vídeo, el controlador de sonido (simple de 1 bit), el controlador de disquetes
- quizás un par de controladores picoblaze para utilizar los botones de a bordo para la selección de imágenes de disquetes, etc...
- Conector VGA (16 colores sería suficiente, 256 de bonificación)
- Conector del teclado PS2
- Suficiente flash en la placa para albergar varias imágenes de disquetes virtuales y la ROM del sistema (16Mb deberían ser suficientes)
- Pantalla a bordo, LCD estaría bien, 4x7 segmentos LED probablemente sería suficiente.
- algún tipo de conector para tarjetas flash estaría bien, pero no es necesario.
- La alimentación se conecta a la red eléctrica, probablemente a través de un paquete de energía.
Estas son las tablas que estoy considerando actualmente:
- Tarjeta FPGA Nexys™3 Spartan-6
- Placa de inicio Spartan 3E
- Placa 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
EDIT: Acabo de darme cuenta de que el Basys no tiene RAM integrada, así que estaría limitado a la RAM de la FPGA - no es lo ideal.
Lo principal que no tengo claro es cuánto espacio quedará después de cargar el T80 softcore. Cualquier consejo es muy apreciado.
6 votos
Sugiero aprender primero Verilog o VHDL. Métete con ellos en un simulador. Asegúrate de que estás hecho para trabajar con FPGAs. Lo extraño de las FPGAs es que pasarás la mayor parte de tu tiempo de desarrollo (como principiante) trabajando en simuladores y ejecutando bancos de pruebas.