0

Apple2fpga: Възстановяването на Apple II + на FPGA

Първоначално в http://www1.cs.columbia.edu/~sedwards/apple2fpga/. Отидете на главната страница.

Като коледен подарък за себе си през 2007 г., въведох на 1980-ера Apple II + в VHDL да тече на Altera DE2 FPGA борда. Точката, освен за забавление, е да илюстрира силата (или по-скоро, с ниска мощност) на модерни FPGAs. Казано по друг начин, това, което прави Стив Джобс първия милиона вече може да бъде университетски проект за моята 4840 вградените системи клас си.

Какво е Apple II?

Вътре на Apple II

The Apple II е един от първите наистина успешни персонални компютри. Проектиран от Стив Возняк (“Воз”) и за първи път през 1977 г., тя наистина е излетял през 1978 г., когато беше въведена на 140K Disk II 5.25-инчов флопи диск, последвано от VisiCalc, първата програма за електронни таблици.

Сравнително проста дори по стандартите на деня, на Apple II е построена около евтин 8-битов процесор 6502 от MOS Technology (той се продава за $ 25, когато Intel 8080 е продаден за $ 179). The 6502 имаше осем-битова шина за данни и може да получите достъп до 64K памет. В Apple II, той работи на малко над 1 MHz. Освен от дисковете и динамични памети, останалата част от веригата се състои от отделни LS TTL чипове.

Докато първите ИП Apple доставят с 4K на DRAM, това бързо се разрасна до стандарт на 48K и по-късно да 64K чрез помощта на банкови превключване и за разширяване на паметта на картата. Динамични памети, по това време, са били най-съвременни технологии. Въпреки това те са трудни за използване, изискващо 5, 12, и-5V захранвания и се налага периодично да опреснява, тяхното приблизително шест пъти подобрение в плътността прави, че си заслужава. До последен дъх копие в ранен обява за Apple I изтъквани своите предимства.

Докато Apple II идва с интегрирана клавиатура, елементарен (една-битов) звук пристанището, както и игра порт обикновено е свързана с две оси аналогов джойстик, основната му функция е неговата интегрирана видео дисплей. Той генерира композитен (лента) NTSC видео, което обикновено е изпратено чрез RF модулатор да се появи например, канал на телевизора 3.

The Apple II имаше три видео режими: 40 X 24 главни само дисплей с черно-бял текст, 16-цветен дисплей с 40 X 48-ниска резолюция, както и 6-цветен дисплей 140 X 280 с висока резолюция.

The Apple II почти може да се мисли като дисплей, видео, което се случва да има микропроцесор, свързани с него. Воз започна с 14,31818 MHz майстор пиксел часовник – точно четири пъти 3.579545 MHz colorburst честотата, използвана в NTSC видео. Заради цвета начин е добавен в стандарта черно-бяло NTSC, привидно черно-бяло модели изпратени в точно тази честота се интерпретират като цвят.

Воз получен часовника CPU от 14,31818 MHz часовник, като се раздели с около четиринадесет години. Казвам почти, защото в действителност всеки шейсет и пета CPU цикъл (веднъж на хоризонтална линия сканиране) е изтеглен от две 14 MHz часовник периоди за запазване на фазата на 3.58 MHz colorburst честота. По този начин, има 65 * 14 + 2 = 912 пиксел периоди на ред, или точно 228 цикъла на 3.58 MHz colorburst на ред.

И двата процесора и видео достъпа байт от паметта при 1 MHz. Техните достъпи са разделени, така че DRAM ефективно работи на 2 MHz. Друг Воз трик: видео адреси са такива, че да опресните видеото също е достатъчно, за да опресните динамични памети, така че не са нужни никакви допълнителни опресняване цикли.

Реконструкция ми, аз се опитах да се възпроизведе поведението на времето вериги (включително опънатия цикъл) възможно най-близо. Въпреки това, по-скоро, отколкото всъщност генерира по-ниска честота, часовници по този начин (като цяло е лоша идея в модерен дизайн, в които използването на PLLs по-чип с кос контрол е предпочитаната техника), аз изтичах повечето от ядрото при 14 MHz часовник и разпределя капаче позволи сигнали до всичко, което първоначално е бил с тактова честота от един от производните честоти.

Реконструкция

Моята основна Apple II се състои от времето генератор, видео генератор, ядрото на 6502 процесор, който взех от Commodore 64 емулатора Peter Wendrich си, най-ROM, и някои случайни логика за адрес декодиране и други борда I / O. Най-общо, в основата очаква 14,31818 MHz часовник сигнал, вход от клавиатурата, достъп до 64K RAM, както и достъп до периферната шина (в момента, просто диск емулатор) и генерира един-битова видео потока заедно с един бит аудио данни за говорителя.

За да направите това ядро използваеми, I, прикрепена към него с PS / 2 клавиатура контролер (от Alex Freed и ALSE), диск емулатор, и VGA линия удвояването който преобразува 15 кХц хоризонталната скорост на опресняване на една-битова видео изход на ябълка да цветен VGA изход с 30 кХц хоризонтална честота на опресняване.

Удвояването на линия съдържа памет за две линии на видео от ябълка; I показва едно двойно, а другата се чете от видео на Apple е вън. В допълнение към тълкуването и генериране на хоризонталната и вертикалната синхронизация сигнали, тя се превръща в една-битова видео потока на цвят, използвайки вероятно прекалено прост алгоритъм: всеки четири 14 MHz пиксела се интерпретират като блок и показват като един-единствен цвят. Това е разумно ефективна, и произвежда много от странни хроматична аберация ефекти на оригиналния Apple II, но не е съвсем така, тъй като истински телевизионен апарат действително се изпълнява по-нежен нискочестотен филтриране на и сигнали цветността. По-добре алгоритъм ще разгледа бита, съседни на всяка група от четири. Независимо от това, на дисплея със сигурност е използваема.

My емулация на Disk II е примитивна (само за четене), но функционално. I съхранявате образ на 5.25-инчов флопи на външна SD карта и я прочетете в по-чип памет на писта в даден момент. Аз кодирани интерфейс SPI (един от тримата, говорен от типичните SD карти) в VHDL, че е в състояние да събуди картата и изтегли случайни 256-байтови блокове. Контролинг това е проста емулатор за контролера Disk II, която осигурява интерфейс с много ниско ниво на устройството. Например, четене / запис на главата на се премества под контрол софтуер чрез селективно пулсиращи четири стъпкови фази моторни. My хардуер емулатор часовници тези импулси, и модели, на които проследяват момента главата му местоживеене.

Всеки път, когато броят на следите промените, моя контролер чете от SD картата на нова група от 6655 байта (256 * 25) в памет песен. Междувременно, аз подражават на диск предене, като периодично при промяна на адреса на данните се четат от процесора, когато той има достъп до диск I / O места.

За отстраняване на грешки, когато изведох PC на процесора до четири от седем-сегментни дисплеи на таблото и текущата песен за устройството, на друг два. Докато компютъра обикновено се променя толкова бързо, тя се превръща в мъгла, модели правят често се появяват. Например, на компютъра остава силно фокусирани, когато компютърът ви очаква в командния ред. По същия начин, аз не съм намерил много софтуер, включително операционната система, когато тя се движи главата на устройството, призовава “забавяне” рутинна на монитора, за да забави нещата.

Сравнявайки Реализациите

A централната мотивация за този проект беше да се покаже как интегриран модерни FPGAs са станали и колко сравнително малко енергия, която консумират. Така че, в сравнение с енергията, потребявана от реален Apple II +, на Apple II + подражание в областта на софтуера, и ми реконструкция FPGA.

За да се измери мощността, аз използвах евтин и много лесен за използване “Kill A Watt” измервател на енергия. Това твърди 0,2% точност, което е достатъчно, за да получите обща представа за това, което (w?) Се случва.

Във всеки случай, аз измерва мощността, консумирана от системата с изключение на монитора. Силата е повече или по-малко постоянен за Dell (а емулатора е действал) и FPGA борда; консумация на енергия на Apple ИП варира значително, когато дискът е бил активен (предене).

Само броят за Apple II е наистина справедливо. В Dell е freakishly победени, имаше далеч по-памет (192 MB), отколкото е необходимо, за да стартирате Linux и емулатор на Apple II, и никога не е използвал своята флопи диск, CD ROM и т.н. На борда FPGA има подобни проблеми: той също има (не се използва) Ethernet, USB, и NTSC видео интерфейси, както и SDRAM и флаш чипове. Докато никой тичаха, те все още се консумира малко енергия.

An Apple II+ An Apple II+ emulated in software An Apple II+ on an FPGA

An Apple II+

An Apple II+ on a Dell

An Apple II+ on an FPGA
22W 62W 5W
31W
(Disk active)
Apple II+ Dell Optiplex GXa Altera/Terasic DE2
c. 1982 c. 1998 c. 2006
Synertek 6502 Intel Pentium II Altera EP2C35F672C6 Cyclone II
LS TTL, 16K DRAMs, 1 MHz NMOS CPU 233 MHz, 250 nm CMOS CPU 90 nm CMOS
CPU: 4K CPU: 7.5M 33K LEs, 150M

Технически средства

The Apple II е документирано в големи подробности. Като се започне с първия Apple II “Redbook” Справочника, самата Apple публикува схеми за серията Apple II. Когато Воз говори на, той спомена, че това е умишлено: той искаше да сподели най-много техническа информация, колкото е възможно, за да образова потребителите. Подобно отношение е рядкост в наши дни.

Две трети лица книги предоставят още по-подробен коментар: Winston Gayler е Apple II Circuit описание (Sams, 1983), и Джим Sather разбирането на Apple II (Quality Software, 1983). Консултирах както често по време на запис на VHDL за този проект. За разбирането на Disk II и по-точно, диск операционната система на Apple (DOS 3.3), Дон ценност и Pieter Lechner-те Beneath Apple DOS (Quality Software, 1983) е на висота, въпреки че тя е много по-софтуер-фокусирани от първите две книги.

Всички тези книги са отдавна изчерпан, но някои са били сканирани и архивирани в интернет. 1000bit.net има особено хубава колекция.

Проект Alex Freed е FPGApple вдъхновен този. Алекс беше така любезен да сподели своя изходен код с мен (това не е толкова зле, колкото той твърди на сайта си) и го използва като референтен като пишех моята собствена.

Даунлоадс

Ретрокомпутинг на FPGA: Възстановяването на 80-те- эра хоум компутер с програмируема логика, технически доклад за проекта.

Това съдържа цялата източник VHDL, както и някои скриптове, помощни програми, както и изображение стартиращ диск. Той е готов да се съставят с Кварт система Altera за съвета DE2 FPGA. Други дъски или други среди ще изисква известно адаптиране.

admin

Leave a Reply

Your email address will not be published. Required fields are marked *