Minimig Dodatkowe Amiga W FPGA Materiały Na CD
Total Page:16
File Type:pdf, Size:1020Kb
PROJEKTY Minimig Dodatkowe Amiga w FPGA materiały na CD Nie każdy z Czytelników EP pamięta komputer domowy o nazwie Czym jest Minimig? Amiga. W swoich czasach był to hit, marzenie niemalże każdego Minimig to akronim od słów Mini Amiga. nastolatka. W artykule opisujemy, jak można zbudować kopię Amigi Jest to układ FPGA, za pomocą którego zasymu- lowano pracę układów, w które wyposażona korzystając ze współczesnych układów. Projekt ma niewątpliwie dużą była Amiga 500. Aktualnie jest to jedna płytka wartość edukacyjną. PCB o wymiarach tylko 12×12 cm. Minimig Rekomendacje: objęty jest licencją GNU. Autorem jest holen- polecamy wszystkim, którzy z sentymentem wspominają starą, dobrą derski inżynier elektryk Dennis van Werren. Pro- Amigę, a może nawet przechowują programy dla niej przeznaczone, jekt opisano na stronie http://home.hetnet.nl/ ~weeren001/. albo chcieliby jeszcze raz pograć w ulubioną grę z lat młodości? Pomysł, aby zrobić Minimig narodził się w styczniu 2005. W tym czasie zrealizowa- no inny projekt C64DTV. Wówczas na którejś z grup dyskusyjnych padł pomysł, aby zmieścić PODSTAWOWE PARAMETRY Amigę w joystick’u. Rozważano zastosowanie • Pojedyncza, dwustronna płytka drukowana o wymiarach (120×120) mm układów ASIC i FPGA. Wydawało się to możliwe • Napięcie zasilania 5 VDC, pobór prądu około 0,3 A • Emulacja komputera Amiga 500 do zrobienia, choć niełatwe. Pierwszym krokiem • Praca pod kontrolą systemu operacyjnego Amiga OS • Wykorzystuje procesor M68000 (M68SEC000FU2) i układ Spartan 3 (XC3S400-4PQ208C-ND) takiego przedsięwzięcia byłoby odtworzenie • Stacja dysków emulowana przy pomocy karty SD struktury chipsetów Amigi i zaimplementowa- • Możliwość podłączenia klawiatury i myszy PS2 nie ich w FPGA. Autor projektu poświęcił mnóstwo wysiłku na studiowanie dostępnej literatury na temat PROJEKTY POKREWNE wymienione artykuły są w całości dostępne na CD programowania FPGA oraz analizę dokumenta- Tytuł artykułu Nr EP/EdW Kit cji komputera Amiga. Nauczył się języka Verilog, Snake czyli gra z lat 70 EdW 12/2006 AVT-2806 kupił zestaw startowy z FPGA i rozpoczął pisa- Gra telewizyjna „SQUASH” EdW 11/2004 AVT-2739 nie programu. Zajęło mu to blisko rok. Pierw- Wolfenstein 3D na STR911 EP 1/2008 AVT-5122 szą grą, którą uruchomił były popularne kiedyś Wideo gra „Piłkarzyki” EP 12/2008 AVT-5162 Lemmingi. 30 ELEKTRONIKA PRAKTYCZNA 2/2009 Minimig – Amiga w FPGA Rys. 1. Schemat ideowy MiniMig V1.1 ELEKTRONIKA PRAKTYCZNA 2/2009 31 PROJEKTY Rys. 1. c.d. 32 ELEKTRONIKA PRAKTYCZNA 2/2009 Minimig – Amiga w FPGA Prototyp Minimig został zbudowany na sprzedanych Amig wywindowała producenta Overscan trzech płytkach podłączonych do zestawu star- na pierwsze miejsce wśród wytwórców kompu- Na początku produkcji komputery domowe były najczęściej podłączane do telewizorów, które miały towego FPGA Digilent Spartan-3 z zewnętrznym terów domowych i zapewniła firmie ponad 80 duże zniekształcenia na brzegach obrazu. Aby omi- procesorem MC68000, zmodyfikowanym ukła- procentowy udział w rynku. Konstruktorzy Amigi nąć ten problem, obraz uzyskiwany z komputera otoczony był ramką. Ramka mogła zmieniać kolory, dem wizyjnym z wyjściem VGA i emulatorem (początkowo pracujący we własnej firmie Amiga ale nie można tam było wyświetlać ani grafiki, ani oryginalnej stacji dysków wykonanym z uży- Computers) postanowili zbudować – jak to sami tekstu, choć w przypadku C64 programiści ominęli ciem mikrokontrolera PIC. Później opracowano określili – „najbardziej zabójcze pudło do gier to ograniczenie. Takie komputery nie nadawały się do obróbki obrazu, ponieważ okno robocze nie nową wersję, w której wszystkie komponenty elektronicznych”. Jednak (dziś można powiedzieć obejmowało całego wyświetlanego obszaru. Amiga znajdują się na jednej płytce PCB. – na szczęście) pojawiła się pewna różnica zdań była pozbawiona tej wady. Umożliwiała wyłączenie ramek i wyświetlenie obrazu na całym ekranie. i jeden z nich zaczął pracować wraz z zespołem Skrót historii Amigi techników nad nowym modelem uniwersalnego Sukces komputera Amiga na światowym komputera. Przewidywał, że moda na gry szyb- nego, rychło ogłaszał bankructwo. W tej sytuacji rynku da się porównać jedynie z sukcesem słyn- ko przeminie i ludzie będą szukać czegoś wię- prawdziwy i wszechstronny komputer był jedy- nego Commodore C64. W roku 1987 liczba cej. Prace były prowadzone w tajemnicy przed ną szansą dla firmy. Premiera modelu nastąpiła pozostałymi wspólnikami i nie w styczniu 1984, podczas targów Consumer wiadomo czym by się to za- Electronics Show przy drzwiach zamkniętych. kończyło, gdyby nie gwałtowne Komputer pojawił się w sprzedaży już la- załamanie się rynku gier telewi- tem 1984 roku jako produkt firmy Commodore. zyjnych. Zgodnie z przewidy- Był on seryjnie wyposażony w 512 kB pamięci, waniami, moda prawie z dnia którą łatwo można było rozbudowywać i sta- na dzień przeminęła, i kto nie cję dysków 3,5”. Dyskietki miały pojemność zdążył się przerzucić na coś in- 880 kB (w konkurencyjnym PC tylko 720 kB). Rys. 1. c.d. ELEKTRONIKA PRAKTYCZNA 2/2009 33 PROJEKTY wszystkie pisane dla niego aplikacje są 32-bito- we. M68000 wymienia dane z otoczeniem uży- wając 16-bitowej magistrali danych. Jak wspomniano wcześniej, komputer wy- posażony był w szereg procesorów pomocni- czych. Ciekawy był również podział pamięci. Otóż Amigę wyposażono w 3 rodzaje pamięci, podzielone na bloki funkcjonalne: – ChipRAM – zwana też pamięcią audio/video. Może być używana przez wszystkie proceso- ry (graficzny, muzyczny i główny), – FastRAM – do tej pamięci dostęp ma jedynie procesor główny, toteż jest ona najszybsza, 3 typy pamięci używanej w Amidze mianowicie: – SlowRAM – widziana przez system jako ROM kickstartu, CHIP RAM i FAST RAM. Ponie- FastRAM, w rzeczywistości działa jak Chip- waż Minimig nie ma ROM-u Amigi (kickstart), Jej dodatkowym atutem był multi-tasking, który -RAM. Łączyła wady obu poprzednich ty- jego kopia jest ładowana przy starcie. Procesor pozwala na jednoczesną realizację kilku zadań. pów była więc najgorsza. Ten rodzaj pamięci PIC emuluje napęd dyskowy, z którego ładowa- Była to rzecz niespotykana w komputerach do- był dostępny tylko w pierwszych modelach ny jest obraz ROM. Takie rozwiązanie było uży- mowych. Amigi. wane w pierwszych Amigach, później kickstart umieszczono w pamięci stałej. Konfiguracja sprzętowa Minimig Po załadowaniu obrazu pamięci ROM do Amigi 500, 1000 i 2000 miały procesor Mo- Minimig rev. 1.0 jest zbudowany na poje- RAM, FPGA chroni ten obszar przed zapisem, toroli MC68000 taktowany zegarem 7,14 MHz dynczej płytce PCB o wymiarach 12×12 cm, dzięki czemu zachowuje się on jak pamięć stała. i wyspecjalizowane układy (Denise, Agnus i Pau- której schemat pokazano na rys. 1. Zawiera ona Pozostała część RAM-u (1,5 MB) jest podzielona la) odpowiedzialne za obraz, dźwięk, operacje wszystkie komponenty oryginalnej Amigi poza pomiędzy CHIP i FAST RAM. na pamięci oraz obsługę dysku. Układ graficz- stacją dysków, dyskiem HD i CD-ROM. Zamiast ny o nazwie OCS (Original Chipset) umożliwiał tego zastosowano kartę MMC. Minimig składa Procesor PIC Amidze uzyskanie maksymalnej rozdzielczości się z 4 głównych elementów: Układ PIC pełni dwie funkcje. Pierwszą 640×512 pikseli (+tzw. overscan) w 16 kolo- – układu FPGA firmy XILINX typu SPARTAN z nich jest załadowanie RAM-u układu Spar- rach, lub 320×512 pikseli maksymalnie w 32 XC3S400, tan-3. Układy te wymagają zewnętrznego kon- lub 64 kolorach (tryb Extra Half Bright, w któ- – procesora M68SEC000, figuratora, w Minimigu funkcję taką pełni układ rym „drugie” 32 kolory były o połowę ciemniej- – pamięci RAM, PIC. Drugim zadaniem układu jest załadowanie szymi odcieniami). Istniał także specjalny tryb – kontrolera MMC zbudowanego z użyciem kickstartu do pamięci RAM Minimiga. Dzieje się HAM(6), który umożliwiał uzyskanie w niskich mikrokontrolera PIC. to tylko raz po włączeniu zasilania. rozdzielczościach (tryb low, 320 pikseli w po- Sercem Minimiga jest FPGA. Zużyto 400 ziomie) aż 4096 kolorów, co w tamtych czasach tysięcy bramek z układu Spartan-3 firmy Xilinx. Funkcje układu FPGA było wielkością szokującą. Wszystkie główne komponenty (RAM i 68000) Działania układu FPGA są opisane w języku W czasach, gdy komputery PC były wypo- podłączone są bezpośrednio do FPGA. FPGA Verilog. Moduły nazwano identycznie, jak emu- sażane w różne „wynalazki” typu Covox, czy emuluje chipy specjalizowane Denise, Agnus, lowane przez nie funkcje: układ Denise nazywa AdLib, Amiga dzięki przetwornikom C/A dyspo- Paula i Gary, jak również obie kości CIA (układ się denise, Agnus – agnus, itd. Zachowano rów- nowała czterokanałowym generatorem dźwięku 8520). Oprócz tego, FPGA emuluje również kla- nież oryginalne nazwy sygnałów (DMSA, INT2, stereofonicznego. Powstała również wersja de- wiaturę i mysz Amigi, wykorzystując do tego OVL itd). Oprócz standardowych modułów, sktop Amigi, która była wyposażona w złącza celu typową klawiaturę i mysz PC pracujące znajdują się dwa niewystępujące w oryginalnej Zorro, służące do rozbudowy komputera np. w standardzie PS2. Oryginalna Amiga nie miała Amidze. Moduły te łączą FPGA z pamięcią RAM o karty graficzne. Były one funkcjonalnie po- złącz PS2, zaimplementowano je po to, aby uła- i procesorem 68000. Cały projekt zrealizowa- dobne do ISA, z tym że obsługiwały autokonfi- twić podłączenie współczesnych urządzeń. no za pomocą darmowego narzędzia Webpack gurację (pełne PnP). Minimig używa spe- cjalnej wersji procesora Budowa Amigi M68000: MC68SEC000. Jest W Amidze oprócz procesora głównego to układ zasilany napięciem wbudowano szereg procesorów pomocniczych. 3,3 V. Dzięki temu nie ma