Minimig

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Circuito stampato da 120x120mm del Minimig (Nano-ITX size)[1]

Il Minimig (abbreviazione di Mini Amiga) è una reimplementazione open source di un Amiga 500 tramite FPGA.

Storia[modifica | modifica wikitesto]

La progettazione del Minimig fu iniziata segretamente nel gennaio 2005 come proof-of-concept dall'ingegnere olandese Dennis van Weeren. Il primo prototipo del Minimig è basato sullo Spartan-3 Starter Kit della Xilinx; nell'FPGA è sintetizzato l'intero chipset Amiga OCS. Due circuiti stampati sono collegati alle porte di espansione del kit FPGA: il primo contiene una versione a 3,3V della CPU MC68000, mentre il secondo contiene uno slot MMC con un microcontrollore PIC con funzione di controller del disco rigido, in grado di supportare il filesystem FAT e di effettuare la decodifica al volo di file ADF (Amiga Disk Format).

     VGA-+-PS2  (joystick, ecc.)
         |
CPU <-> FPGA <-> Microcontroller <-> Flashmemory
         |
        RAM

Il prototipo venne mostrato[2] ad un meeting Amiga; nonostante qualche bug, è in grado di caricare la maggior parte dei programmi per Amiga. Van Weeren ha preferito il verilog al VHDL ed ha usato un PC con il software Webpack della Xilinx per lo sviluppo.

Il codice sorgente e lo schema elettrico vennero rilasciati su licenza GPL versione 3 il 25 luglio 2007. Il 23 dicembre 2007 ACube Systems ha annunciato che avrebbe venduto le schede assemblate del Minimig v1.1[3].

Caratteristiche[modifica | modifica wikitesto]

  • Eseguire software specifico per Amiga, per convertire file verso formati e piattaforme più recenti.
  • Eseguire software disponibile soltanto su Amiga.
  • Eseguire videogiochi per Amiga.
  • Acquisire esperienza di sviluppo su FPGA usando il Verilog.
  • Permettere la creazione di nuovo software che utilizzi le nuove caratteristiche del dispositivo, pur mantenendo la piena compatibilità con gli Amiga.

Hardware[modifica | modifica wikitesto]

Piattaforma[modifica | modifica wikitesto]

Alla rev1.0 del Minimig:

  • Xilinx Spartan-3 FPGA (XC3S400-4PQ208C) da 400k porte, usato all'82%.
  • Freescale MC68SEC000, 3,3V, a 7,09379 MHz. Tra le incompatibilità: non c'è il clock 'È, l'istruzione MOVE sr,<EA> è privilegiata e manca una vera istruzione che la sostituisca. Comunque, questo non sembra avere impatti su nessun programma.
  • I bus ChipRAM e FastRAM di Amiga sono riuniti in un unico bus sincrono cloccato a 7,09379 MHz.
  • 2 MB[4] di SRAM asincrona da 70 ns, organizzata come 2 banchi di 524288 parole di 16 bit.
  • MCU PIC 18LF252-I/SP[5] (Un'alternativa sarebbe l'Atmel AVR), che implementa un filesystem FAT16 e gestisce il caricamento della configurazione dell'FPGA e del kickstart. Simula un floppy per l'Amiga, codificando al volo da file .ADF.
  • Schede di memoria flash di tipo MMC per il caricamento della configurazione dell'FPGA, del kickstart e del software per il computer emulato.
  • LED per visualizzare l'attività del disco, l'alimentazione principale e l'accensione dell'Amiga. Come su un vero Amiga, quest'ultimo LED cambia intensità per mostrare lo stato del filtro audio, che però non è implementato.
  • Il convertitore digitale-analogico è costituito da 4 resistenze per ognuno dei colori rosso, verde, blu (4 bit/colore) e uscita sul connettore VGA.[6]
  • Audio ottenuto da un convertitore dithering sigma-delta a 8 bit con filtro di 2º ordine.
  • Alimentazione principale di +5V DC (~200 mA).

Porte[modifica | modifica wikitesto]

  • 4 GPIO (General Purpose Input/Output) dall'FPGA
  • JTAG per la programmazione dei chip (TMS, TDI, TDO, TCK)
  • Una porta seriale RS232
  • 2 Joystick di tipo Atari 2600 DE9M.
  • Una porta DE15F VGA (può emettere segnali compatibili PAL per la connessione ad una SCART).
  • Uno slot MMC per schede di memoria flash.
  • Connettori PS/2 per Tastiera + Mouse
  • Porta audio jack da 3,5 mm
  • Porta d'alimentazione plug da 2,1mm, +5V DC.

Implementazione[modifica | modifica wikitesto]

Problemi[modifica | modifica wikitesto]

  • Per ragioni di copyright, è necessaria una copia del kickstart di un vero Amiga 500. Ne esiste anche una versione libera, la cui compatibilità non è però totale.[senza fonte]
  • Il motore degli sprite soffre ancora di bug.
  • Il firmware attuale gestisce solo una directory e nomi di file 8.3.

Strumenti usati per po sviluppo[modifica | modifica wikitesto]

  • Software: Xilinx Webpack versione 6.3.03i (2007-07-22 9.1).

Futuro[modifica | modifica wikitesto]

  • Gli sviluppi possibili includono una CPU più veloce, il chipset ECS, così come quello AGA, il supporto per gli hard disk, per ethernet, un mini core RISC per le funzioni avanzate di AROS, eccetera.
  • L'uso di un kickstart libero (e.g. AROS).[9]
  • Una versione dotata di interfaccia di rete eliminerebbe la necessità di usare più memorie flash.

Aggiornamenti[modifica | modifica wikitesto]

Supporto Read/Write[modifica | modifica wikitesto]

Il 3 marzo 2008 un nuovo core FPGA ha reso disponibile il supporto read/write, così come alcune migliorie grafiche.[10]

Scheda con controller ARM[modifica | modifica wikitesto]

Il 22 dicembre 2008 è stata annunciata una scheda sostitutiva che si installa nello zoccolo del controller PIC (MCU). Questa scheda implementa un harddrive, 4 floppy disk e il supporto alla scrittura.[11] Il core FPGA è lo stesso per il firmware del nuovo ARM e del PIC, ma solo l'ARM è dotato di risorse sufficienti per supportare quattro drive; il PIC ne supporta solo due. L'aggiornamento consente anche di incrementare il clock della CPU da 7,09 a 49,63 MHz con una cache da zero waitstate di 4KB, ma richiede un core FPGA per l'implementazione effettiva (che funziona con i chip 68SEC000 da 16 MHz).[12]

Il supporto per l'harddrive è implementato come interfaccia parallel ATA GAYLE virtuale in stile A600/A1200. Con una piccola modifica hardware è possibile ottenere fino a 551 KB/s[12], altrimenti la velocità massima è di ~300 KB/s.[13]

2 MB di RAM aggiuntiva[modifica | modifica wikitesto]

Saldando un altro gruppo di chip SRAM sul dorso quelli esistenti è possibile ottenere 4 MB di RAM complessivi[11].

Supporto AGA[modifica | modifica wikitesto]

Il core del Minimig è stato aggiornato con il supporto AGA ed esteso per supportare almeno 50 MB di memoria Chip sul prototipo Replay progettato da Mike Johnson all'FPGA Arcade.[14][15][16]

Progetti simili[modifica | modifica wikitesto]

Illuwatar, un progettista hardware privato in Svezia, ha implementato una versione Mini-ITX del Minimig su licenza Open Source design License. In questa versione, di dimensioni 17 cm x 17 cm, le porte di connessione sono state spostate sul retro della scheda conformemente alle specifiche Mini-ITX.

L'11-10-2006 Jens Schönfeld della Individual Computers ha rivelato che quest'ultima stava lavorando già da un anno ad un progetto commerciale di Amiga in un FPGA, chiamato "Clone A", simile al Minimig. A differenza del Minimig, il Clone-A è stato sviluppato da un team di tre persone, dotato di un potente analizzatore logico. Il sistema farà uso di cloni dei chip di Amiga (CIA, Paula, Gary, Agnus e Denise), mentre la CPU sarà l'originale di Motorola. I chip finali implementeranno anche l'architettura AGA ed una porta parallela, utilizzabile per i giochi a quattro giocatori.[17]

NatAmi è un progetto simile, avente l'obiettivo di creare un Amiga di fascia alta, ma più orientato alla compatibilità con l'architettura AGA e alle caratteristiche aggiuntive del successore dell'A4000. Le caratteristiche del NatAmi includono chipram veloce, design a 32 bit con velocità del bus più alte, PCI, Floppy, ATA MC68030 (nel prototipo) ed espansione RAM[18].

Note[modifica | modifica wikitesto]

  1. ^ Minimig rev 1.0 PCB, su amiga.org (archiviato dall'url originale il 2 marzo 2009). 2006-06-11 amiga.org
  2. ^ HCC Commodore GG meet, su amigaroxx.zuurkool.com (archiviato dall'url originale il 28 settembre 2007). 060218 amigaroxx.zuurkool.com
  3. ^ Acube Systems Minimig Archiviato il 16 febbraio 2009 in Internet Archive.
  4. ^ 1 MB = 1024 kB; 1 KB = 1024 B
  5. ^ PIC18F252, su microchip.com. URL consultato il 3 maggio 2019 (archiviato dall'url originale il 3 marzo 2016). 070715 microchip.com
  6. ^ Minimig schematics v1 Page3
  7. ^ 1 KB = 1024 B
  8. ^ Amiga.org - Photo Album, su amiga.org (archiviato dall'url originale il 2 marzo 2009). 070902 amiga.org
  9. ^ AROS Kickstart ROM Replacement bounty (Phase II), su thenostromo.com. URL consultato il 28 febbraio 2009 (archiviato dall'url originale il 16 settembre 2008).
  10. ^ Amiga.org - News, su amiga.org. 090629 amiga.org
  11. ^ a b Amiga.org - Forum, su amiga.org. 090629 amiga.org
  12. ^ a b youtube.com. 090629 youtube.com
  13. ^ Amiga.org - Forum, su amiga.org. 090629 amiga.org
  14. ^ youtube.com.100221 youtube.com
  15. ^ www.fpgaarcade.com, su fpgaarcade.com.
  16. ^ Amiga.org - Forum, su amiga.org. URL consultato il 24 febbraio 2011 (archiviato dall'url originale il 17 luglio 2011).100221 amiga.org
  17. ^ Individual Computers at CeBit, Clone-A presentation on 2007-03-31 2007-03-09 amigaworld.net
  18. ^ Natami, su natami.net (archiviato dall'url originale il 4 maggio 2016).

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]