FPGA’s & MiSTer

Een nieuw weekend rolt voorbij en ik kan wat tijd besteden aan mijn passieprojecten, waaronder werken met single-board computers, spelen met emulatoren en algemeen knutselen met een soldeerbout. Eerder dit jaar schreef ik over het herleven van de Commodore Amiga op de Raspberry Pi . Een collega verwees naar onze gedeelde obsessie met oude technologie als een ” passie voor het behoud van onze digitale cultuur .”

Tijdens mijn reizen in de wereld van ‘digitale archeologie’ hoorde ik over een nieuwe manier om oude systemen te emuleren door gebruik te maken van veld-programmeerbare gate arrays (FPGA’s). Ik was geïntrigeerd door het concept, dus heb ik een weekend gewijd aan het vergaren van meer informatie. Ik wilde met name weten of ik een FPGA kon gebruiken om een ​​Commodore Amiga te emuleren.

Wat is een FPGA?

Wanneer je een printplaat bouwt, is alles letterlijk in silicium geëtst. Je kunt de software die erop draait veranderen, maar het fysieke circuit blijft onveranderlijk. Dus als je er een nieuw onderdeel aan wilt toevoegen of het later wilt wijzigen, wordt je beperkt door de fysieke aard van de hardware. Met een FPGA kun je de hardware programmeren om nieuwe componenten te simuleren of bestaande te wijzigen. Dit wordt bereikt door programmeerbare logische poorten (vandaar de naam). Dit biedt veel flexibiliteit voor IoT-apparaten (Internet-of-Things), omdat deze later kunnen worden gewijzigd om aan nieuwe vereisten te voldoen.

Terasic DE10-Nano

FPGA’s worden tegenwoordig op veel apparaten gebruikt, waaronder smartphones, medische apparaten, motorvoertuigen en vliegtuigen. Omdat FPGA’s gemakkelijk kunnen worden aangepast en over het algemeen weinig stroom nodig hebben, zijn deze apparaten overal! Ze zijn ook goedkoop te produceren en kunnen voor meerdere doeleinden worden geconfigureerd.

De Commodore Amiga is ontworpen met chips voor specifiek gebruik en leuke namen. “Gary” was bijvoorbeeld een gate-array dat later “Fat Gary” werd toen “hij” werd opgewaardeerd op de A3000 en A4000. “Bridgette” was een geïntegreerde busbuffer en de prachtige “Amber” was een “flicker fixer” op de A3000. De mogelijkheid om deze chips te simuleren met programmeerbare poorten is een ideaal platform voor Amiga-emulatie.

Introductie van het MiSTer-project

Het bord waar ik mee heb gewerkt is DEAS-Nano van Terasic . Dit apparaat is uit de doos uitstekend om te leren hoe FPGA’s werken en geeft u toegang tot hulpmiddelen om u op weg te helpen.

Terasic DE10-Nano

Het MiSTer-project is bovenop dit bord gebouwd en maakt gebruik van dochterborden om geheugenuitbreiding, SDRAM en verbeterde I / O te bieden, allemaal gebouwd op een Linux-gebaseerde distributie. Om het te gebruiken als een platform voor emulatie, is het uitgebreid door het gebruik van “cores” die de architectuur definiëren die het bord zal emuleren.

Nadat je het apparaat met de MiSTer-distro hebt geFlashed, kun je een “core” laden, een combinatie van een definitie voor de chips die je wilt gebruiken en de bijbehorende menu’s om het geëmuleerde systeem te beheren.

Terasic DE10-Nano

Vergeleken met een Raspberry Pi met emulatiesoftware, bieden deze cores een meer native ervaring voor emulatie, en vaak apps die niet perfect op software-gebaseerde emulators werken, werken prima op een MiSTer.

Hoe te beginnen

Er zijn uitstekende bronnen online om u op weg te helpen. De eerste stop is de documentatie op de GitHub-pagina van MiSTer, met stapsgewijze instructies om alles samen te stellen. Als je de voorkeur geeft aan een visuele doorloop van het bord, bekijk dan deze video van het YouTube-kanaal van Retro Man Cave . Bekijk deze geweldige zelfstudie van Phil’s Computer Lab op YouTube voor meer informatie over het configureren van de Minimig ( afkorting voor mini Amiga) om schijven te laden of het gebruik van Amiga’s klassieke Workbench en WHDLoad .

Cores

MiSTer heeft cores beschikbaar voor een groot aantal systemen; mijn grootste interesse ligt in Amiga-emulatie, die wordt verzorgd door de Minimig-kern. Ik ben ook geïnteresseerd in de Commodore 64 en PET en de BBC-microcomputer, die ik op de universiteit heb gebruikt. Ik heb ook een zwak voor het spelen van Space Invaders op de Commodore PET , waarvan ik zal toegeven (vele jaren later!) Dat de echte reden was dat ik aan het einde van de week tijd boekte in het computerlokaal van de universiteit.

Zodra een kern is geladen, kun je ermee communiceren via een verbonden toetsenbord en door op F12 te drukken om het menu “kern” te openen. Om toegang te krijgen tot een shell, kun je jezelf aanmelden met behulp van de F9-toets, die een login-prompt geeft. Je hebt een kickstart-ROM nodig (het equivalent van het BIOS van een pc) om de Amiga te laten werken. Je kunt deze verkrijgen bij Cloanto , die de Amiga Forever kickstart verkoopt die de ROM’s bevat die nodig zijn om een ​​systeem op te starten, evenals games, demo’s en harde schijfbestanden die op je MiSTer kunnen worden gebruikt. Bewaar de kickstart-ROM in de root van uw SD-kaart en noem deze “KICK.ROM”.

Op mijn MiSTer-bord kan ik Amiga-demo’s uitvoeren die niet op mijn Raspberry Pi draaien, hoewel mijn Pi veel meer geheugen beschikbaar heeft. De emulatie is nauwkeuriger en loopt efficiënter. Via het uitbreidingsbord kan ik zelfs oude hardware gebruiken, zoals een originele Commodore-monitor en Amiga-joysticks.

Broncode

Alle code voor het MiSTer-project is beschikbaar in de GitHub-repo . Je hebt toegang tot de cores, evenals de hoofdconfiguratie van MiSTer, bijbehorende scripts en menubestanden. Deze worden actief bijgewerkt en er is een solide community die actief bezig is met het ontwikkelen, oplossen van fouten en het verbeteren van alle bijdragen, dus kom regelmatig terug voor updates. De repo heeft een schat aan informatie beschikbaar om je op weg te helpen.

Beveiligingsoverwegingen

Met de flexibiliteit van aanpassing komt het potentieel voor beveiligingsproblemen . Alle MiSTer-installaties worden geleverd met een vooraf ingesteld wachtwoord op het root-account, dus een van de eerste dingen die je wilt doen is het wachtwoord wijzigen. Als je het apparaat gebruikt om een ​​kast voor een game te bouwen en je het apparaat toegang tot het netwerk hebt gegeven, kan het worden misbruikt met behulp van de standaard inloggegevens en kan dit ertoe leiden dat derden toegang krijgen tot jouw netwerk.

Voor niet-MiSTer-projecten bieden FPGA’s de mogelijkheid voor het ene proces om naar een ander proces te kunnen luisteren, dus het beperken van de toegang tot het apparaat moet een van de eerste dingen zijn die je doet. Wanneer je een toepassing bouwt, moet je processen isoleren om ongewenste toegang te voorkomen. Dit is vooral belangrijk als je van plan bent om het board in te zetten waar toegang is voor andere gebruikers of met gedeelde applicaties.

Vind meer informatie

Er is veel informatie over dit type project online. Hier zijn enkele van de bronnen die je misschien nuttig vindt.

Community

Dochter boards

Video’s en walkthroughs

Waar de hardware te kopen

MiSTer-project

Andere FPGA’s

Over de auteur

Sarah Thornton – Parfumverslaafde, warcraft junkie, tinkerer, retro gamer, beveiligingsenthousiasteling en voorstander van opensource. Gepassioneerd door ethiek en technologie. Code slinger bij Red Hat. Meer over mij

Door: Sarah Thornton (a.k.a. @CodePoetSarah)
Bron: https://opensource.com/article/19/11/fpga-mister
Vertaald door: Addy van Ladesteijn (met toestemming Auteur)