Minimig

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Circuit tipărit Minimig 120x120 mm (dimensiune Nano-ITX ) [1]

Minimig (prescurtare pentru Mini Amiga ) este o reimplementare open source a unui Amiga 500 prin FPGA .

Istorie

Proiectarea Minimig a fost începută în secret în ianuarie 2005 ca o dovadă a conceptului de către inginerul olandez Dennis van Weeren . Primul prototip al Minimigului se bazează pe Xilinx Spartan-3 Starter Kit ; întregul chipset Amiga OCS este sintetizat în FPGA. Două plăci cu circuite imprimate sunt conectate la porturile extinderii kitului FPGA: prima conține o versiune a procesorului 3.3V MC68000 , în timp ce a doua conține un slot MMC cu un microcontroler PIC cu controler de funcții al hard diskului , capabil să suporte Sistemul de fișiere FAT și decodarea directă a fișierelor ADF (Amiga Disk Format).

 VGA - + - PS2 (joystick etc.)
         |
CPU <-> FPGA <-> Microcontroler <-> Flashmemory
         |
        RAM

Prototipul a fost prezentat [2] la o întâlnire Amiga; în ciuda unor bug-uri , poate încărca majoritatea programelor Amiga. Van Weeren a preferat verilogul decât VHDL și a folosit un computer cu software-ul Webpack al Xilinx pentru dezvoltare.

Codul sursă și schema de conectare au fost lansate sub licența GPL versiunea 3 pe 25 iulie 2007 . La 23 decembrie 2007, ACube Systems a anunțat că va vinde plăcile Minimig v1.1 asamblate [3] .

Caracteristici

  • Rulați software-ul specific Amiga pentru a converti fișiere în formate și platforme mai noi.
  • Rulați software-ul disponibil numai pe Amiga.
  • Joacă jocuri video pentru Amiga.
  • Obțineți experiență de dezvoltare FPGA folosind Verilog .
  • Permiteți crearea de software nou care utilizează noile caracteristici ale dispozitivului, menținând în același timp compatibilitatea deplină cu Amigas .

Hardware

Platformă

La rev. 1.0 din Minimig:

  • Xilinx Spartan-3 FPGA (XC3S400-4PQ208C) cu 400k porturi, 82% folosit.
  • Freescale MC68SEC000, 3,3 V , până la 7,09379 MHz . Printre incompatibilități: nu există ceas 'È, instrucțiunea MOVE sr, <EA> este privilegiată și nu există o instrucțiune reală care să o înlocuiască. Cu toate acestea, acest lucru nu pare să aibă impact asupra niciunui program.
  • Autobuzele Amiga ChipRAM și FastRAM sunt combinate într-o singură magistrală sincronă tactată la 7,09379 MHz.
  • 2 MB [4] de 70 ns SRAM asincron, organizat ca 2 bănci de 524288 cuvinte de 16 biți.
  • PIC 18LF252-I / SP MCU [5] (O alternativă ar fi Atmel AVR ), care implementează un sistem de fișiere FAT16 și gestionează configurația FPGA și încărcarea kickstart. Simulează o dischetă Amiga, codificând din mers din fișierele .ADF .
  • Carduri de memorie flash de tip MMC pentru încărcarea configurației FPGA, kickstart și software pentru computerul emulat.
  • 3 × LED-uri pentru a afișa activitatea discului, alimentarea principală și alimentarea Amiga. La fel ca pe un Amiga real, acest din urmă LED schimbă intensitatea pentru a arăta starea filtrului audio, care însă nu este implementat.
  • Convertorul digital-analog este format din 4 rezistențe pentru fiecare dintre culorile roșu, verde, albastru (4 biți / culoare) și ieșire pe conectorul VGA . [6]
  • Audio obținut de la un convertor de dithering sigma-delta pe 8 biți cu filtru de ordinul 2.
  • Alimentare principală de + 5V DC (~ 200 mA ).

Ușile

Implementare

Probleme

  • Din motive de copyright , este necesară o copie a kickstart-ului unui Amiga 500 real. Există, de asemenea, o versiune gratuită, care nu este pe deplin compatibilă. [ fără sursă ]
  • Motorul sprite încă suferă de erori .
  • Firmware-ul actual gestionează doar un singur director și 8.3 nume de fișiere.

Instrumente utilizate pentru o anumită dezvoltare

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

Viitor

  • Evoluțiile posibile includ un procesor mai rapid, chipset-ul ECS , precum și unul AGA , suport pentru hard disk-uri , pentru Ethernet , un mini core RISC pentru funcții AROS avansate etc.
  • Utilizarea unui kickstart gratuit (de ex. AROS ). [9]
  • O versiune cu o interfață de rețea ar elimina necesitatea utilizării mai multor memorii flash.

Actualizări

Suport pentru citire / scriere

Pe 3 martie 2008, un nou nucleu FPGA a pus la dispoziție suport pentru citire / scriere, precum și câteva îmbunătățiri grafice. [10]

Card cu controler ARM

La 22 decembrie 2008, a fost anunțat un card de înlocuire care se instalează în soclul controlerului PIC ( MCU ). Acest card implementează un hard disk, 4 dischete și suport pentru scriere. [11] Nucleul FPGA este același pentru firmware-ul noilor ARM și PIC, dar numai ARM are resurse suficiente pentru a suporta patru unități; PIC acceptă doar două. Actualizarea vă permite, de asemenea, să măriți ceasul procesorului de la 7.09 la 49.63 MHz cu o memorie cache de stat de așteptare zero de 4KB, dar necesită un nucleu FPGA pentru implementarea efectivă (care funcționează cu jetoane 68SEC000 de 16 MHz). [12]

Suportul pentru hard disk este implementat ca o interfață virtuală ATA GAYLE în stil A600 / A1200 . Cu o mică modificare hardware este posibil să se atingă până la 551 KB / s [12] , altfel viteza maximă este de ~ 300 KB / s. [13]

2 MB de memorie RAM suplimentară

Prin sudarea unui alt grup de cipuri SRAM pe spatele celor existente, este posibil să se obțină un total de 4 MB RAM [11] .

Suport AGA

Nucleul Minimig a fost actualizat cu suport AGA și extins pentru a suporta cel puțin 50 MB de memorie cu cip pe prototipul Replay proiectat de Mike Johnson la FPGA Arcade. [14] [15] [16]

Proiecte similare

Illuwatar , un designer de hardware privat în Suedia, a implementat o versiune Mini-ITX a Minimig licențiată sub licența de proiectare Open Source. În această versiune, cu dimensiunea de 17 cm x 17 cm, porturile de conectare au fost mutate în spatele cardului în conformitate cu specificațiile Mini-ITX.

Pe 11-10-2006, Jens Schönfeld de la Individual Computers a dezvăluit că acesta din urmă lucra deja de un an la un proiect comercial Amiga într-un FPGA , numit „ Clona A ”, similar cu Minimig. Spre deosebire de Minimig, Clona-A a fost dezvoltată de o echipă de trei, echipată cu un puternic analizor logic . Sistemul va folosi clone de cipuri Amiga (CIA, Paula, Gary, Agnus și Denise), în timp ce CPU va fi originalul Motorola. Cipurile finale vor implementa, de asemenea, arhitectura AGA și un port paralel, utilizabil pentru jocurile cu patru jucători. [17]

NatAmi este un proiect similar, cu scopul de a crea un Amiga high-end, dar mai orientat spre compatibilitatea cu arhitectura AGA și cu caracteristicile suplimentare ale succesorului A4000. Caracteristicile NatAmi includ chipram rapid, design pe 32 de biți cu viteză mai mare a magistralei, PCI, Floppy, ATA MC68030 (în prototip) și extindere RAM [18] .

Notă

  1. ^ Minimig rev 1.0 PCB , pe amiga.org (arhivat din original la 2 martie 2009) . 2006-06-11 amiga.org
  2. ^ HCC Commodore GG meet , pe amigaroxx.zuurkool.com (arhivat din original la 28 septembrie 2007) . 060218 amigaroxx.zuurkool.com
  3. ^ Acube Systems Minimig. Arhivat 16 februarie 2009 la Internet Archive .
  4. ^ 1 MB = 1024 kB ; 1 KB = 1024 B
  5. ^ PIC18F252 , pe microchip.com . 070715 microchip.com
  6. ^ Scheme minimig v1 Pagina3
  7. ^ 1 KB = 1024 B
  8. ^ Amiga.org - Album foto , pe amiga.org (arhivat din original la 2 martie 2009) . 070902 amiga.org
  9. ^ Recompensă de înlocuire ROM AROS Kickstart (Faza II) , la thenostromo.com . Adus la 28 februarie 2009 (arhivat din original la 16 septembrie 2008) .
  10. ^ Amiga.org - Știri , pe amiga.org . 090629 amiga.org
  11. ^ a b Amiga.org - Forum , pe amiga.org . 090629 amiga.org
  12. ^ a b youtube.com . 090629 youtube.com
  13. ^ Amiga.org - Forum , pe amiga.org . 090629 amiga.org
  14. ^ youtube.com . 100221 youtube.com
  15. ^ www.fpgaarcade.com , pe fpgaarcade.com .
  16. ^ Amiga.org - Forum , pe amiga.org . Adus la 24 februarie 2011 (arhivat din original la 17 iulie 2011) . 100221 amiga.org
  17. ^ Calculatoare individuale la CeBit, prezentare Clone-A pe 31-03-2007 2007-03-09 amigaworld.net
  18. ^ Natami , pe natami.net (arhivat din original la 4 mai 2016) .

Alte proiecte

linkuri externe