Apple2fpga: Rekonstrukcja Apple II + na FPGA


Original: http://www.cs.columbia.edu/~sedwards/apple2fpga/
Copyright: Stephen A. Edwards

Apple2fpga: Przebudowa Apple II + na (pionowy Matryca programowania) FPGA

Stephen A. Edwards

Columbia University

jako świąteczny prezent dla mnie w 2007 roku, wdrożyliśmy Apple II + w 1980 i , uruchomić go na pokładzie VHDL do Altera FPGA . Celem, oprócz rozrywki, został ilustrujący moc (a raczej niska moc) nowoczesnych FPGA. Inaczej rzecz ujmując, co pierwszy milion luiSteve Praca może być teraz projekt Klasa Moje lekcje dla integrate4840 systemy.

Co to jest Apple II

Apple II był jednym z pierwszych komputerów naprawdę udany. Stworzone przez Steve Wozniak (“Woz”) i po raz pierwszy wprowadzony w 1977 roku, to naprawdę zdjęli W 1978 roku, wprowadziła 140K stacji dyskietek II 5,25 ICH-tych, a następnie VisiCalc pierwszy arkusz kalkulacyjny.

Całkiem proste, nawet dla dzisiejszych standardów, Apple II został zbudowany z 8-bitowym procesorieftin z MOS Technology 6502 (został sprzedany za 25 dolarów, kiedy Intel 8080 został sprzedany za 179 $). zawiera 6502 osiem-bitową szynę danych i dostęp 64K pamięci. Apple II, aceastarulează ponad 1 MHz. Poza ROM i pamięci DRAM stron, a pozostałe strony dinchip dyskretny układ składa LS TTL.

Choć pierwsze Apple II przyszedł z 4K pamięci DRAM, szybko stała się standardem 48k i 64K później przy użyciu przełączania bankowego i karty pamięci. , DRAM w tym czasie była nowoczesna technologia. Choć ten komputer były trudne w obsłudze, wymagają zasilaczy, które DE5, 12 i 5V i musi być okresowo aktualizowane, poprawy ich około sześciu razy gęstości nie bardzo preţioasă.Într ogłoszenie Już widzi jego enumărăavantajele firmy Apple I.

Chociaż Apple II przybył z wbudowaną klawiaturą z dźwiękiem portu szczątkowej (bit Deun) oraz port gry, która była zazwyczaj podłączony do analogowego joysticka z dwiema osiami, główną cechą został zintegrowany ekran wideo. została wygenerowana composite (band) z wideo NTSC, który został wysłany zazwyczaj przez modulator do stawienia się, na przykład, kanał TV 3.

Apple II miał trzy tryby wideo: Tekst w czarno-alb40 pisemnej wyłącznie wielkimi literami, 40 X 24 X 48 16-kolorowy wyświetlacz o niskiej rozdzielczości i wyświetlacza i jeden 140 x 280 do 6 kolorów w wysokiej rozdzielczości.

Apple II niemal uznać za urządzenie wyświetlania wideo, które akurat mają mikroprocesor podłączony do niego Woz rozpoczął się ceascare być 14,31818 MHz pixel -. tylko cztery razy mniejszy sygnał kolory – 3.579545 MHz -. użyte w video NTSC powodu koloru dodano do standardu NTSC czarny, czarno-biały, modeli jak wysłany dokładnie na tej częstotliwości są interpretowane jako kolor .

Woz

DerivatCPU zegar na 14,31818 MHz zegarem, dzieląc z grubsza na czternaście części. Mówią o dlatego, że w zasadzie każdy cykl CPU sześćdziesiąt pięć (przytoczyć jedną poziomą linię scan) jest rozciągnięty przez dwa okresy zegara zachować cîte14MHz częstotliwość fazy 3,58 MHz sygnału koloru. sposób, jest 65 * 14 + 2 = 912 okresy pikseli na linię, lub signalelor dokładnie 228 cykli 3,58 linii MHz kolorów.

Zarówno CPU i wideo, jak również acceseazăpe bajt od 1 MHz pamięci. Ich wizyty są przeplatane tak skutecznego działania na 2 MHz DRAM Woz kolejny trick:. Adresy wideo są takie, że film to orzeźwiająca, zbyt, jest wystarczające do odświeżania pamięci DRAM, więc nie ma potrzeby dodatkowych cykli odświeżania.

Mojej rekonstrukcji, starałem się odtworzyć zachowanie obwodów (w tym czasie przedłużonego cyklu) jak najbliżej. Jednak zamiast rzeczywistej generacji niskiej częstotliwości zegarów tak (ogólnie zły pomysł, w nowoczesnym stylu, gdzie za pomocą on-chip pochylać kontrolowanej uluiPLL preferowaną techniką), można uruchomić zegar 14 MHz i dystrybuuje sygnały blokujące umożliwiają dostęp do czegoś, co pierwotnie taktowany na jednej z częstotliwości pochodzi.

Przebudowa mój

Mój procesor Apple II składa się z generatora, generator synchronizujący wideo, Core 6502 procesorów, które wziąłem z emulatora Commodore 64 Peter Wendrich, ROMy i jakiś przypadkowy logic board adres dekodowania i inne funkcje wejścia / wyjścia. Ogólnie, rdzeń czeka 14,31818 MHz zegar unsemnal wprowadzane z klawiatury, dostęp do 64K pamięci RAM, a dostęp do obwodowego kanału (obecnie tylko jeździć emulator) i wytwarza strumień bitów wideo z bitowych danych audio głośnik.

Aby proces ten jest łatwy w użyciu, ja załączeniu otastatură PS / 2 (z Alex Freed i ALSE) emulator dysku i VGA podwajacz linia zamienia stawkę 15 kHz reîmprospătaţiorizontal Apple ieşireavideo bit VGA stopy film kolorowy z 30 kHz odświeżanie poziomej.

Podwójna linia zawiera dwie linie pamięci wideo firmy Apple. Mam ekran na jednym z nich, podczas gdy drugi jest odczytywany z wyjścia wideo firmy Apple. W zawierające tłumaczenia i generowania poziome i pionowe sygnały synchronizacji, konwertuje strumień wideo bitowy kolor przy użyciu algorytmu może nawet zbyt prosta: co cztery pikseli przy 14 MHz są interpretowane jako blok wyświetlane jako jeden kolor. Jest to rozsądne i skuteczne, i daje tak wiele kolorów oryginalnych efektów ciudategenerînd Apple II, ale nie tak ładna jak adevăratde TV faktycznie wykonuje delikatnie na niskich sygnałów filtrarerea Lekka i chromaticii. lepszy algorytm uważa co nieco podzielić przez cztery. Jednak ekran jest zdecydowanie łatwiejszy w obsłudze.

Emulacja Disk moja IIeste aa prymitywnych (tylko do odczytu), ale funkcjonalny. I obraz store “wykonane” przez 5,25-calowej dyskietki na zewnętrznej karcie SD i czytałem do pamięci Chip jeden utwór naraz. I kodowane interfejs SPI (jeden z trzech rozmawiał carduriSDtipice) w VHDL, który jest w stanie obudzić kartę i pobrać losowe bloki 256 bajtów. Controlling constădintr jego proste Disk II emulator kontroler, który zapewnia bardzo niskopoziomowego interfejsu do pracy. przykład, pisanie / citireaeste przemieszczane pod kontrolą oprogramowania poprzez pulsareselective czterech faz silnika krokowego. Hardware mój emulator widzi te impulsy, i modele, sposób teraz mieszka.

Ilekroć Zmiana numeru

Scieżka, kontroler czyta mojej karty SD nową grupę 6655 bajtów (256 * 25) w ścieżce pamięci. Tymczasem, Płyta emulst odlewnictwo okresowej zmiany danych adresowych odczytanych przez CPU, gdy jest on dostępny z płyty Lokalizacje I / O (wejścia / wyjścia).

Rozwiązywanie

Usunąłem procesora PC cztery z siedmiu odcinków na płycie wyświetlacza i bieżącą ścieżkę do jazdy dwie. Podczas gdy komputer jest zazwyczaj zmieniane tak szybko, że staje się to często pojawiają się modele, rozmycie. przykład, PC pozostaje bardzo skoncentrowany, gdy komputer jest bezczynny szybko. Q , Podobnie, znaleźliśmy wiele programów, w tym systemu operacyjnego, gdy kierowca przenosi główny ekran pyta “opóźnienie” rutynowych powolnych procesów.

Porównanie

implementacje

generalăpentru powodem tego projektu było pokazać, jak współczesne układy FPGA pojawiły i jak one zużywają relatywnie mało energii. Więc porównaniu zużycia energii Apple II + regularne Apple II + emulowany w oprogramowaniu, a reconstrucţiamea deFPGA.

do pomiaru mocy, użyliśmy putereieftin środka i bardzo łatwy w utilizarecu nazwy “ Zabić Watt .” Twierdzi, dokładność 0,2%, co jest dość Pentre dlaczego (W?) to się zdarza.

W każdym przypadku zmierzyliśmy pobór mocy systemu bez monitora. moc była mniej więcej stała Dell (gdy został uruchomiony emulator) i FPGA wyżywienie. Zużycie Apple II zasilanie różnią się znacznie, gdy dysk był aktywny.

tylko dla liczby Apple II jest naprawdę w porządku. Dell ma przytłaczającą supermocarstwo, i miał dużo więcej pamięci (192 MB), niż potrzeba do uruchomienia emulatorLinux Apple II, a nigdy nie używane dyskietki, dyski CD ROMów itp. FPGA pokładzie ma podobne problemy:. Posiada także Ethernet (nieużywane) oraz interfejsy USB NTSC wideo, takich jak pamięci SDRAM i frytki Flash Choć żaden zostały wypuszczone, spożywane niewielka ilość energii.

Apple II + Apple II + oprogramowanie emulowane Apple II + na FPGA
(Active Disk)
Apple II + Dell Optiplex GXA Altera / mm taras i 2
1982 1998 2006
Synertek 6502 Intel Pentium II Altera Cyclone II EP2C35F672C6
LS TTL 16K DRAM, 1 MHz CPU NMOS 233 MHz CPU 250 nm CMOS CMOS 90 nm
CPU: 4K tranzystory CPU: 7.5m tranzystory 33K Les, 150m tranzystory

Technical Resources

Apple II był szczegółowo udokumentowane. Począwszy od pierwszego ReferinţăApple II Manual “Redbook”, Apple wydało Apple II harmonogram Series. Gdy Woz mówił na Uniwersytecie Columbia, on powiedział, że to było celowe: chciał akcji technicznych informacji jak najwięcej edukować użytkowników Ede Takie zachowanie jest rzadkie w dzień dzisiaj

..

Dwie trzecie książki zapewnia bardziej szczegółowy komentarz:. Artykuły luiWinston Gayler Apple II Opis obwodu (Sams, 1983), a Zrozumienie Apple II (Software Quality, 1983) luiJim Sather Apple II I konsultacje często zarówno Barka podczas pisania VHDL dla tego projektu. Aby zrozumieć Disk II, a dokładniej, na dysku system operacyjny firmy Apple (DOS 3.3), przeczytaj artykuł Don Worth i Pietera Lechner Beneath firmy Apple DOS (Software Quality, 1983 ). ‘s więc drugi artykuł, choć jest bardziej skupiona na oprogramowania niż w pierwszych dwóch przykładach.

Wszystkie te książki są drukowane, ale niektóre zostały zeskanowane i zarchiwizowane w internecie. 1000bit.net ma bardziej zbiorowa świetny wybór.

Alex Projekt

Freed FPGApplea nie zainspirował ten artykuł. Alex podzielił się ze mną swoją kodu źródłowego (tak źle, jak powiedział na swojej stronie internetowej), i stosować jako punkt odniesienia, jak pisać moją własną wersję.

Downloads

Retrocomputing na FPGA: Przebudowa komputera osobistego z programowalną logiką w roku 80 , sprawozdanie techniczne projektu.

Calibri, mso-bidi-theme-font: minor-latin, kolor: niebieski, mso-ansi-language: EN-US;

minor-latin; mso-Hans-theme-font: minor-latin;

mso-bidi-theme-font: minor-bidi; mso-ansi-language: PL; mso-bidi-language: EN-US;

mso-bidi-language: AR-SA “ apple2fpga-0.1.tar.gz

zawiera wszystkie źródła VHDL i niektóre skrypty, narzędzia i bootowalny obraz dysku. jest gotowy do kompilacji z układem Altera ds. FPGA bordulDE2 Quartus. Pozostałe płyty lub inne nośniki wymagają pewnych korekt.