Minimig (abreviatura 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ó alrededor de enero de 2005 como una prueba de concepto del ingeniero eléctrico holandés Dennis van Weeren. Tenía la intención de Minimig como la respuesta a las discusiones en curso dentro de la comunidad Amiga sobre la implementación del chipset personalizado Amiga usando una FPGA. El código fuente y los esquemas del proyecto se publicaron bajo la versión 3 de la Licencia Pública General GNU el 25 de julio de 2007.
Prototipo original
El prototipo Minimig original se basa en el kit de inicio Xilinx Spartan-3, el chipset Amiga original se sintetiza en la FPGA. Se conectan dos placas de circuito impreso a través de los puertos de expansión del kit FPGA. El primero tiene una CPU tipo Motorola 68000 de 3.3V. El segundo tiene una ranura MultiMediaCard con un pequeño microcontrolador PIC que actúa como un controlador de disco que admite el sistema de archivos FAT16 y realiza la decodificación de archivos de disco Amiga (ADF) 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, aunque existían errores. Las preferencias personales de Van Weeren llevaron al uso de verilog en lugar de VHDL en una PC utilizando 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) con un 82% de capacidad.
- Freescale MC68SEC000, 3.3V, a 7.09379 MHz. Sin embargo, no hay un reloj 'E', MOVE sr,
tiene privilegios y no hay una instrucción de reemplazo real. Esto no parece afectar a ningún programa todavía. - El bus RAM de Amiga Chip y la RAM lenta se fusionaron en un solo bus síncrono que funciona a 7.09379 MHz.
- SRAM asíncrona de 2 MB 70 ns organizada como 2 bancos de 524288 x 16 bits .
- 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 FPGA y Kickstart. Simula un disquete al Amiga codificando sobre la marcha desde archivos ADF.
- Tarjeta de memoria Flash MMC para cargar configuración FPGA, kickstart y software para la computadora implementada.
- 3 × LED para mostrar la actividad del disco, la alimentación principal y el estado de encendido de Amiga (¡no hay filtro de audio existente!) El LED de estado de encendido de Amiga 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 de un conector VGA . [4]
- Audio de un convertidor sigma-delta dithering de 8 bits con filtro analógico de segundo orden.
- Alimentación principal de + 5 V CC (~ 200 mA).
Puertos
- E / S genérico de repuesto 3x de la FPGA ( GPIO )
- JTAG para programación de chips (TMS, TDI, TDO, TCK)
- Puerto serie RS232
- 2x Joystick de tipo Atari 2600 DE9M .
- Vídeo VGA DE15F (que puede emitir señales compatibles con PAL para conectarse a SCART ).
- Ranura para tarjeta de memoria Flash MMC .
- PS / 2 conector de teclado y ratón
- Conector de audio de 3,5 mm
- + 5V DC Entrada de alimentación de enchufe DC cilíndrico de 2,1 mm .
Implementación
- CPU tipo Motorola 68000 .
- Hardware OCS y ECS , PAL y NTSC video conmutable a través de OSD.
- SRAM de 512 kB 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.
Mapa vial
Fecha | Evento |
---|---|
2005-03-06 | Comenzó la codificación de fuentes de Verilog. |
2005-12-05 | Anuncio del proyecto. |
Primavera de 2006 | Fuentes de Verilog completadas. |
2006-06-11 | Se publicó una captura de pantalla del esquema de la placa v1.0. |
2006-10-15 | Esquema de la placa v1.0 completado. |
2007-06-xx | Las fuentes predijeron que serían liberadas, pero no lo fueron. |
2007-07-04 | Última edición de fuente (núcleo). |
2007-07-13 | Ocupado haciendo sitio web para el proyecto. |
2007-07-24 | Minimig fuentes publicadas en el sitio web oficial. |
Asuntos
Quedan varios problemas. Necesita una copia binaria de la ROM kickstart de AmigaOS de un Amiga 500 real o una reimplementación gratuita como AROS-68k que aún no es totalmente compatible pero que mejora continuamente. [6] [7] El firmware actual para cargar imágenes de disquete y ROM está limitado a un único directorio raíz y nombres de archivo 8.3 .
Herramientas de desarrollo utilizadas
Computadora: Shuttle barebone, Prescott Pentium 4 ( caché L2 1024 kB , 533 - 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 al archivo de configuración cargable (.bit) = 2 minutos. El caché de la CPU y la velocidad de la memoria son vitales para el compilador Synthesis + Place & Route Silicon en el software de generación FPGA.
Futuro
Los posibles desarrollos incluyen una CPU más rápida, un chipset ECS , gráficos AGA (se requiere una nueva placa FPGA), disco duro, ethernet, pequeño RISC-Core para funciones AROS mejoradas, etc.
Uso de un reemplazo de kickstart libre (por ejemplo, AROS ). [8]
Una versión en red eliminaría la necesidad de intercambiar memorias flash.
Actualizaciones
Soporte de lectura / escritura
En 2008-09-03, un nuevo núcleo FPGA permite el 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 admitir cuatro unidades. El PIC solo admite dos. La actualización también permite seleccionar aumentar 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. Pero 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 estilo A600 / A1200 virtual . Es posible alcanzar hasta 551 kByte / s [11] con una pequeña modificación de hardware. De lo contrario, solo es posible ~ 300 kByte / s. [12]
Periféricos USB y MIDI
El puerto Minimig para la placa MiST admite periféricos USB, incluidos ratones USB, teclados USB y ratones 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 al incorporar otro conjunto de chips SRAM permite hasta 4 MiB de RAM en total. [10]
Soporte AGA
El puerto Minimig para la placa MIST se ha actualizado para admitir las principales funciones de AGA, lo que le permite ejecutar muchos juegos de AGA. Una versión binaria, así como el código fuente completo, están disponibles bajo GPL. [14] [15] [16] [17]
Se actualizó un núcleo Minimig inédito con soporte AGA y se extendió para admitir al menos 50 MiB de memoria Chip en el prototipo de placa Replay diseñada por Mike Johnson en FPGA Arcade. [18] [19] [20]
Proyectos similares
Jeri Ellsworth , quien diseñó el Commodore 64 Direct-to-TV C64 en un chip ASIC , tenía un Amiga funcionando en un prototipo de chip en 2003. Excepto por el procesador 68000 y la interfaz de disco, todo fue emulado dentro de una FPGA. Sin embargo, el proyecto nunca se terminó ni se convirtió en un ASIC. [21]
Illuwatar, un pequeño diseñador de hardware privado en Suecia, implementó una versión de factor de forma 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 unas dimensiones de 17 cm x 17 cm. Los puertos de conexión en esta versión se movieron a la parte posterior de la placa base para cumplir con los requisitos de Mini-ITX.
El 9 de febrero de 2008, ACube Systems anunció la disponibilidad de 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-en-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 utilizará chips de clonación para reemplazar a las CIA, Paula, Gary, Agnus y Denise. La CPU será la original de Motorola. Los chips finales también incluirán AGA y un puerto paralelo que funcione para permitir juegos de 4 jugadores. [24] Aún inédito desde 2015.
Wolfgang Förster ha completado el proyecto Suska, que es un Atari ST -on-FPGA. [25]
Inspirado por Minimig Till Harbaum inventó MIST, [26] una implementación abierta basada en FPGA de Atari ST y Amiga destinada 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 implementada dentro de la 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. Hay al menos cinco de las llamadas "placas secundarias" que mejoran las capacidades de MiSTer.
Vampire V4 Standalone, lanzado por Apollo Team en 2019, proporciona reimplementación del chipset ECS / AGA, además de CPU 68080 y núcleo SAGA, que también utiliza una matriz de puertas programable en campo (FPGA).
Referencias
- ^ "PCB minimig rev 1.0" . Archivado desde el original el 9 de abril de 2012 . Consultado el 29 de junio de 2009 . 2006-06-11 amiga.org
- ^ "Reunión HCC Commodore GG" . Archivado desde el original el 28 de septiembre de 2007. 060218 amigaroxx.zuurkool.com
- ^ "PIC18F252" . 070715 microchip.com
- ^ Esquemas 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 de reemplazo de ROM AROS Kickstart (Fase II)" . Archivado desde el original el 25 de septiembre de 2008.
- ^ "Amiga.org - Noticias" . 090629 amiga.org
- ^ a b "Amiga.org - Foro" . 090629 amiga.org
- ^ a b "youtube.com" . 090629 youtube.com
- ^ "Amiga.org - Foro" . 090629 amiga.org
- ^ "Minimizar la reproducción MIDI en youtube.com" .2014-11-25 youtube.com
- ^ "Lion King se ejecuta en el núcleo Beta Minimig AGA para el MIST" .2014-10-21 youtube.com
- ^ "Código fuente AGA en Github" .2014-11-31 github.com
- ^ "Binarios básicos de AGA" .2014-11-31 google.com
- ^ "Hilo de AGA en el foro de Atari" .2014-10-28 atari-forum.com
- ^ "youtube.com" .100221 youtube.com
- ^ "FPGAArcade | Hardware de juegos programables" .
- ^ "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). "The Amiga on a Chip Project - Lástima que se canceló" - a través de 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
- ^ "Ein in VHDL modellierter Open Source IP-Core mit Atari ST (E) Funktionalität" . www.experiment-s.de .
- ^ "MIST - aMIga y ST basados 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 (espejo)
- Foro de discusión oficial