
Minimig (un acrónimo de Mini Amiga ) es una reimplementación de código abierto de un Amiga 500 que utiliza una matriz de puertas programables en campo (FPGA).
Minimig comenzó en enero de 2005 como una prueba de concepto del ingeniero eléctrico holandés Dennis van Weeren. Su intención era que Minimig fuera la respuesta a las discusiones en curso dentro de la comunidad Amiga sobre la implementación del chipset personalizado de Amiga utilizando un FPGA. El código fuente y los esquemas del proyecto se publicaron bajo la versión 3 de la Licencia Pública General de GNU el 25 de julio de 2007.
Prototipo original
El prototipo original de Minimig se basa en el kit de inicio Spartan-3 de Xilinx; el chipset original de Amiga se sintetiza en el FPGA. Se conectan dos placas de circuito impreso a través de los puertos de expansión del kit FPGA. La primera contiene una CPU Motorola 68000 de 3,3 V. La segunda tiene una ranura MultiMediaCard con un pequeño microcontrolador PIC que actúa como controlador de disco que admite el sistema de archivos FAT16 y realiza la decodificación de archivos de disco (ADF) de Amiga sobre la marcha .
VGA-+-PS2 (joystick etc.)
|
CPU <-> FPGA <-> Microcontrolador <-> Memoria flash
|
RAM
El prototipo se mostró [2] en una reunión de Amiga y cargó la mayoría de los programas de Amiga, con algunos errores. Este prototipo utilizó Verilog en lugar de VHDL en una PC que utiliza el software Xilinx Webpack para el desarrollo de código.
Hardware
Plataforma
A partir de la placa Minimig rev1.0:
- FPGA Xilinx Spartan-3 400k gate (XC3S400-4PQ208C) que utiliza el 82 % de su capacidad.
- Freescale MC68SEC000, 3,3 V, a 7,09379 MHz. Sin embargo, no hay reloj "E", MOVE sr,<EA> tiene privilegios y no hay ninguna instrucción de reemplazo real.
- El bus RAM del chip Amiga y la RAM lenta se fusionaron en un único bus sincrónico que funciona a 7,09379 MHz.
- 2 MB de SRAM asíncrona de 70 ns organizada en 2 bancos de 524 288 x 16 bits .
- El MCU PIC 18LF252-I/SP [3] (una alternativa es Atmel AVR ) implementa un diseño de disco FAT16 y maneja la carga de la configuración de FPGA y Kickstart. Esto simula un disquete en el Amiga mediante la codificación sobre la marcha a partir de archivos ADF.
- Tarjeta de memoria Flash MMC para cargar configuración FPGA, kickstart y software para el computador implementado.
- 3 LED para mostrar la actividad del disco, la alimentación principal y el estado de encendido de Amiga. El LED de estado de encendido de Amiga también cambiará de intensidad para mostrar el estado del filtro de audio.
- El video D/A consta de 4 resistencias para cada color: rojo, verde, azul (4 bits/color) y salida a través del conector VGA . [4]
- Audio de un convertidor sigma-delta con dithering de 8 bits y filtro analógico de segundo orden.
- Alimentación principal de +5 V CC (~200 mA).
Puertos
- E/S genéricas de repuesto 3x del FPGA ( GPIO )
- JTAG para programación de chips (TMS, TDI, TDO, TCK)
- Puerto serie RS232
- 2x Joystick de Atari 2600 tipo DE9M .
- Vídeo VGA DE15F (que puede emitir señales compatibles con PAL para conectar a SCART ).
- Ranura para tarjeta de memoria Flash MMC .
- Conector PS/2 Teclado + Ratón
- Conector de audio de 3,5 mm
- Entrada de fuente de alimentación con enchufe CC cilíndrico de +5 V CC de 2,1 mm .
Implementación
- CPU tipo Motorola 68000 .
- Hardware OCS y ECS , vídeo PAL y NTSC conmutables mediante OSD.
- 512 KB de SRAM para Kickstart utilizado como ROM .
- 0 .. 1536 KB Expansión lenta de RAM (originalmente 512 KB). [5]
- 512 .. 2048 KB Chip RAM (originalmente 1024 KB).
- La visualización en pantalla ofrece la selección de imágenes de disco ADF desde la tarjeta SD/MMC usando el teclado o un joystick.
Hoja de ruta
Asuntos
- Carece de una copia binaria de la ROM kickstart de AmigaOS de un Amiga 500 real o de una reimplementación libre como AROS-68k que aún no es totalmente compatible. [6] [7]
- El firmware actual para cargar imágenes de ROM y disquetes está limitado a un solo directorio raíz y 8.3 nombres de archivo .
Herramientas de desarrollo utilizadas
Computadora: Shuttle barebone, Prescott Pentium 4 ( L2-cache 1024 KB , 533 a 800 MT/s ) 3 GHz , 1 GB RAM .
Software: Xilinx Webpack versión 6.3.03i (2007-07-22 9.1). Tiempo desde la fuente HDL hasta el archivo de configuración cargable (.bit) = 2 minutos. La velocidad de la memoria caché y la memoria de la CPU son vitales para el compilador Synthesis + Place & Route Silicon en el software de generación de FPGA.
Futuro
Los posibles desarrollos futuros incluyen:
- Una CPU más rápida, chipset ECS , gráficos AGA (se requiere una nueva placa FPGA), disco duro, Ethernet, un núcleo RISC pequeño para funciones AROS mejoradas, etc.
- Uso de un sustituto gratuito del kickstarter (por ejemplo, AROS ). [8]
- Una versión en red eliminaría la necesidad de intercambiar memorias flash.
Actualizaciones
Soporte de lectura/escritura
El 3 de septiembre de 2008, un nuevo núcleo FPGA permite soporte de lectura/escritura, así como algunas mejoras en el chipset. [9]
Actualización de la placa controladora ARM
El 22 de diciembre de 2008, se anunció una placa de reemplazo que encaja en el zócalo del controlador PIC ( MCU ). Hace posible el soporte de disco duro, disquete 4x y escritura. [10] El núcleo FPGA es el mismo para el nuevo firmware ARM y PIC, pero solo el ARM tiene suficientes recursos para soportar cuatro unidades. El PIC solo admite dos. La actualización también permite un aumento de la velocidad de la CPU de 7,09 a 49,63 MHz con una caché de CPU de estado de espera cero de 4 KB. Sin embargo, requiere un núcleo FPGA para llevarlo a cabo (que funciona con los chips 68SEC000 de 16 MHz). [11] El soporte de disco duro está disponible mediante una interfaz ATA paralela GAYLE de estilo A600 / A1200 virtual . Hasta 551 KB/s [11] son posibles con una modificación de hardware menor. De lo contrario, solo son posibles ~300 KB/s. [12]
Periféricos USB y MIDI
El puerto Minimig para la placa MiST admite periféricos USB, incluido un teclado USB y un mouse USB, así como una interfaz MIDI física. [13]
2 MB de RAM adicionales
El 22 de diciembre de 2008, una modificación de la PCB original mediante la incorporación de otro conjunto de chips SRAM permite obtener hasta 4 MiB de RAM en total. [10]
Soporte de AGA
El puerto Minimig para la placa MIST se actualizó para admitir las principales características de AGA, lo que le permite ejecutar muchos juegos de AGA. Una versión binaria, así como el código fuente completo, está disponible bajo GPL. [14] [15] [16] [17]
Se ha actualizado un núcleo Minimig inédito con soporte AGA y se ha ampliado para admitir al menos 50 MiB de memoria Chip en el prototipo de placa Replay diseñado por Mike Johnson en FPGA Arcade. [18] [19] [20]
Proyectos similares
Jeri Ellsworth , quien diseñó el ASIC Commodore 64 en chip con conexión directa a TV para C64 , tenía un prototipo de Amiga en chip en funcionamiento en 2003. A excepción del procesador 68000 y la interfaz de disco, todo se emulaba dentro de un FPGA. Sin embargo, el proyecto nunca se terminó ni se convirtió en un ASIC. [21]
Illuwatar, un pequeño diseñador de hardware privado de Suecia, implementó una versión de formato Mini-ITX del Minimig bajo la Licencia de diseño de código abierto. [22] Esta versión de hardware cabe en cajas Mini-ITX estándar y tiene dimensiones de 17 cm x 17 cm. Los puertos de conexión en esta versión se trasladaron a la parte posterior de la placa base para cumplir con los requisitos Mini-ITX.
El 9 de febrero de 2008, ACube Systems anunció la disponibilidad de las placas Minimig v1.1 terminadas. [23]
El 11 de octubre de 2006, Jens Schönfeld de Individual Computers reveló que habían estado trabajando en un Amiga-in-FPGA comercial durante el año pasado llamado "Clone-A" que es similar a Minimig. A diferencia de Minimig, Clone-A de Individual Computers fue desarrollado por un equipo de desarrollo de tres personas que emplea un potente analizador lógico . El sistema pretende utilizar chips clónicos para reemplazar a los CIA, Paula, Gary, Agnus y Denise, y la CPU será la original de Motorola. Los chips finales también incluirán AGA y un puerto paralelo funcional para permitir juegos de 4 jugadores. [24] Aún no se ha lanzado desde 2015.
Wolfgang Förster ha completado el proyecto Suska, que es un Atari ST en FPGA. [25]
Inspirado por Minimig, Till Harbaum inventó MIST, [26] una implementación abierta basada en FPGA de Atari ST y Amiga que pretendía tener un precio bajo y ser fácil de construir en casa. A diferencia de Minimig, la CPU 68000 no está presente como dispositivo físico, sino que está implementada dentro del FPGA.
Inspirado por MIST, Alexey Melnikov inventó MiSTer , [27] una implementación basada en FPGA de Atari ST y Amiga, basada en una placa comercial de Terasic: DE10-nano. Existen al menos cinco denominadas "placas hijas" que mejoran las capacidades de MiSTer.
Vampire V4 Standalone, lanzado por Apollo Team en 2019, proporciona una reimplementación del chipset ECS/AGA, además de una CPU 68080 y un núcleo SAGA, y también utiliza una matriz de puertas programables en campo (FPGA) [ cita requerida ] .
Referencias
- ^ "Minimig rev 1.0 PCB". Archivado desde el original el 18 de julio de 2012. Consultado el 29 de junio de 2009 .11 de junio de 2006 amiga.org
- ^ "Encuentro HCC Commodore GG". Archivado desde el original el 28 de septiembre de 2007.060218 amigaroxx.zuurkool.com
- ^ "PIC18F252".070715 microchip.com
- ^ Esquemas de Minimig v1 Página 3
- ^ "Amiga.org - Álbum de fotos".amiga.org
- ^ "Sistema operativo de investigación AROS". aros.sourceforge.net .
- ^ "Reemplazo de ROM Kickstart (Fase II)". power2people.org .
- ^ "Recompensa por reemplazo de ROM Kickstart de AROS (Fase II)". Archivado desde el original el 25 de septiembre de 2008.
- ^ "Amiga.org - Noticias".090629 amiga.org
- ^ ab "Amiga.org - Foro".090629 amiga.org
- ^ ab "youtube.com". YouTube . 24 de abril de 2009. Archivado desde el original el 14 de diciembre de 2021.090629 youtube.com
- ^ "Amiga.org - Foro".090629 amiga.org
- ^ "Minimizar la reproducción MIDI en youtube.com". YouTube . 25 de noviembre de 2014. Archivado desde el original el 14 de diciembre de 2021.25 de noviembre de 2014 youtube.com
- ^ "El Rey León funcionando con el núcleo Beta Minimig AGA para MIST". YouTube . 21 de octubre de 2014. Archivado desde el original el 14 de diciembre de 2021.21 de octubre de 2014 youtube.com
- ^ "Código fuente de AGA en Github". GitHub .31 de noviembre de 2014 github.com
- ^ "Binarios del núcleo de AGA".31 de noviembre de 2014 google.com
- ^ "Hilo de AGA en el foro de Atari".28 de octubre de 2014 atari-forum.com
- ^ "youtube.com". YouTube . 21 de febrero de 2010. Archivado desde el original el 14 de diciembre de 2021.100221 youtube.com
- ^ "FPGAArcade | Hardware de juegos programable".
- ^ "Amiga.org - Foro". Archivado desde el original el 17 de julio de 2011. Consultado el 7 de marzo de 2010 .100221 amiga.org
- ^ Jeri Ellsworth (22 de junio de 2011). "El proyecto Amiga on a Chip: lástima que lo cancelaran". Archivado desde el original el 14 de diciembre de 2021, vía YouTube.
- ^ "Mini-ITX MiniMig". www.illuwatar.se .
- ^ "ACube Systems Srl". www.acube-systems.biz .
- ^ Computadoras individuales en CeBit, presentación Clone-A el 31-03-2007 09-03-2007 amigaworld.net
- ^ "Un modelo VHDL de código abierto IP-Core con funcionalidad Atari ST (E)". www.experiment-s.de .
- ^ "MIST - un aMIga y ST basado en FPGA". harbaum.org .
- ^ "MiSTer". github.com .
Enlaces externos
- Código fuente en Google Code
- Página de inicio del proyecto (sin conexión)
- Página de inicio del proyecto (Mirror)
- Foro de discusión oficial