Inhoudsopgave:
Video: 8-bits computer op een breadboard-overzicht: 3 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Mijn doel voor dit project was om een beter begrip te krijgen van computerarchitectuur, hardwareontwerp en talen op assemblageniveau. Als junior aan de universiteit die computertechniek studeert, had ik onlangs cursussen over elektronica voltooid, laboratoria die me kennis lieten maken met assembleertaal en hardware-architectuur. Bij het ontvangen van een inleiding tot deze onderwerpen, wilde ik mijn begrip van de fijnere details in alle drie de cursussen vergroten, en wat is een betere manier om te leren dan aan een project te werken?
Mijn oorspronkelijke bedoeling was om deze 8-bits computer volledig in elkaar te zetten met behulp van de collegevideo's op het YouTube-kanaal van Ben Eater, die fantastisch werk leveren door het ontwerpproces op te splitsen in een solide mix van materiaal dat ik heb behandeld en aspecten die ik nog moest leren. Aangezien ik al een basiskennis had van combinatorisch ontwerp en elementaire elektronicalogica, wilde ik mezelf uitdagen door te proberen delen van de computer te ontwerpen en te bouwen volgens de ontwerpoverzichten, maar zonder de bouwinstructies te bekijken. Gedurende het hele project was het mijn doel om meer te leren en mijn begrip te verbeteren dan alleen iets nieuws te bouwen, dus tijdens elke stap van het project heb ik een beetje gelezen uit online artikelen en forums over de componentarchitectuur en de basisconventies die voor elke stap van het project werden gebruikt. van hen.
Stap 1: Onderzoek onderweg
Dit project heeft me echt veel meer laten lezen dan ik had verwacht. Een van mijn belangrijkste benaderingen van elk onderdeel was om een overzicht van een online forum of artikel te lezen, de lezingen van Eater's video's te bekijken en te proberen mijn eigen onderdeel te ontwerpen voordat ik het ging bouwen, testen en meestal moest schrappen voor een tijdje. meer geleide benadering van het kanaal van Eater. Een voorbeeld hiervan was toen ik de ALU-component van de pc aan het bouwen was. Terwijl ik de ontwerpvideo's bekeek, las ik artikelen over chipcomponenten met een hogere functionaliteit en trigger-ingangen die het mogelijk zouden maken om van instructietype te wisselen en inputs intern om te zetten in 2-complement. Voordat ik deze make-it-easier-chips kocht, heb ik echter de ontwerpbenadering besproken waar Ben Eater het over had in zijn video's, met het mengen van optellers en XOR-logische poorten om de functionaliteit in de ALU-module te vergroten zonder dat er duurdere chips nodig zijn. Hierdoor ging ik het gebruik van discrete logica en de toepasbaarheid ervan op computerontwerp waarderen, en leerde ik verschillende benaderingen voor het bouwen van componenten. Door chips van een lager niveau op het breadboard te combineren, leerde ik ook enkele belangrijke architecturale eigenschappen die in de ALU worden gebruikt, waardoor ik meer inzicht kreeg in deze uitvoeringscomponent op de pc.
Een ander belangrijk onderdeel waarover ik leerde, was het gebruik van transceivers, ook wel bekend als buffers. Voordat ik dieper op het project inging, dacht ik dat ik gewoon verschillende componenten zou activeren en deactiveren met behulp van besturingssignalen, maar ik ontdekte al snel in artikelen dat buffers moesten worden gebruikt om deze Von-Neuman-stijlarchitectuur goed te laten functioneren. Omdat de computer een gedeelde bus gebruikt om gegevens tussen de verschillende modules op de pc te verplaatsen, werd de synchronisatie van de cycli bepaald door de klok. Maar omdat ik opslag en ladingen liet plaatsvinden zonder de beschikbare gegevens op de bus te verstoren, ontdekte ik dat transceivers van vitaal belang waren om als poorten te fungeren, en een activeringssignaal nodig hadden om gegevens tijdig op de bus te laten stromen. leesbaarheid was niet zo moeilijk te begrijpen, omdat de draden altijd de waarden op de bus zouden bevatten, maar het gebruik van de juiste waarde betekende dat de registers de nieuwe waarde konden vasthouden.
Een laatste voordeel van het onderzoek tijdens dit project was het begrijpen van de specificatieverschillen tussen chips die vergelijkbaar waren. Vaak vond ik chips met dezelfde ID-waarden maar met verschillende descriptorletters zoals LS en HC. Wat ik leerde, was dat het niet alleen om het maken van labels ging, maar ook om timing- en stroomspecificaties van de chips. Gelukkig, aangezien mijn computer componenten met een redelijk laag niveau en een hoge tolerantie gebruikte, hoefde ik me geen zorgen te maken over het matchen van veel specificaties, maar bij het ontwerpen op een hoger niveau leerde ik dat zaken als kloksnelheid en stroomverbruik cruciaal zijn voor het succes of falen van elektronische ontwerp
Stap 2: ondervonden moeilijkheden
Vrij snel in het project was ik in staat om eenvoudige componenten te ontwerpen, zoals de timingklok voor het synchroniseren van processen en basisgeheugenarchitectuur, maar omdat ik naast een zwaar cursussemester onderdelen moest bestellen, was het moeilijk om buiten tijd aan het project toe te wijzen, waardoor ik weer op schema voor voltooiing. Na mijn eerste grote tegenslag omdat ik een week moest wachten op onderdelen, omzeilde ik verdere vertragingen door alle onderdelen te bestellen waarvan ik dacht dat ik ze nodig had om dit project te voltooien, wat handig bleek te zijn omdat ik geen vertragingen meer had tot het publiceren van dit. Nadat ik ook enkele basisbenaderingen voor debuggen had geleerd, begon ik een vergadering over het hoofd te zien, wat betekende dat ik terug moest gaan en video's opnieuw moest bekijken om mijn fouten op te vangen, wat meestal leidde tot het uit elkaar halen van het grootste deel van een bord. Dit had geen snelkoppeling. Ik heb de waarde geleerd van het controleren van je voortgang bij het bouwen van een elektronisch apparaat. Door gaandeweg elk bord te debuggen, kon ik ze met meer vertrouwen combineren, waarna het debuggen van gecombineerde boards veel gemakkelijker werd.
Stap 3: Prestaties en reflectie
Al met al heb ik momenteel de klok, opcode en programmateller, ALU-eenheid, rs rt- en rd-registers en het RAM-geheugen voltooid. Naast het feit dat ik de bus en randapparatuur moest voltooien om dit project te voltooien, heb ik een aanzienlijke hoeveelheid geleerd over computerarchitectuur, die ik hoop door te brengen naar mijn laatste jaar keuzevakken, het volgen van de cursus computerarchitectuur.
M5 bood me alle benodigde hulpmiddelen om aan mijn project te werken, en componenten waren zeer goed ingedeeld langs de onderdelenmuren, dus ik wist al heel vroeg welke onderdelen moesten worden besteld en wat niet meer nodig was. Als een andere student dit project op zich zou nemen, zou ik zeker opmerken dat dit project veel tijd kost als je alles probeert te begrijpen wat er op de computer gebeurt. HET IS NIET MOEILIJK, maar het vereist wel zorg als je wilt dat het goed functioneert. Ik raad je ten zeerste aan om de video-afspeellijst op het YouTube-kanaal van Ben Eater door te nemen om een idee te krijgen van alle onderdelen die je moet gebruiken, zodat je niet op tijd achterloopt als je niet van plan bent om je eigen aanpak te ontwerpen. Aangezien ik de meeste onderdelen heb gekocht, ben ik van plan dit mee te nemen om in mijn eigen tijd te voltooien, maar het zou cool zijn om dit door te geven zodat een andere student het kan voltooien, wat zou betekenen dat er licht wordt blootgesteld aan het ontwerp van de resterende onderdelen, maar een grote focus op assembler, waar ik gelukkig aan heb mogen werken tijdens andere lessen
Aanbevolen:
Voeg een ventilator toe aan een koellichaam van een computer - geen schroeven nodig - Ajarnpa
Voeg een ventilator toe aan een koellichaam van een computer - Geen schroeven nodig: Het probleem: ik heb (had) een moederbord op mijn bestandsserver met een koellichaam zonder ventilator over wat volgens mij de northbridge is. Volgens het sensorprogramma (ksensors) dat ik in Fedora had draaien, bleef de temperatuur van het moederbord rond de 190F. Mijn schoot
Robot Brain: bouw een computer met één bord in een avond - Ajarnpa
Robot Brain: bouw een computer met één bord in een avond: onvoldoende geheugen op uw Picaxe of Arduino? Maar een pc is overkill voor het werk? Kijk eens naar deze open source computer met één bord die kan worden geprogrammeerd in talen als C, Basic, Forth, Pascal of Fortran. Dit bord maakt gebruik van goedkope IC's en del
Een Linux-distro op een computer uitvoeren vanaf een iPod-opmerking Plz First One Posted: 5 stappen
Hoe een Linux-distro op een computer te draaien vanaf een iPod Commentaar Plz Eerste geplaatst: ik heb een populaire distro geplaatst. van Linux op mijn oude ipod en draaide het op mijn computer nogal coolWAARSCHUWING!!!!!!!!!: DIT ZAL ALLE GEGEVENS OP UW IPOD VERNIETIGEN, maar onthoud dat de ipod kan worden gereset met i tunesi een video gemaakt waar ik geen tijd voor had neem alle foto
Bling Out Your Breadboard (hoe u een LED-stroomindicator toevoegt aan Solarbotics Transparant Breadboard): 7 stappen
Bling Out Your Breadboard (hoe voeg je een LED-stroomindicator toe aan Solarbotics Transparant Breadboard): Deze transparante breadboards lijken veel op elk ander elektronisch breadboard, maar ze zijn duidelijk! Dus, wat kun je doen met een duidelijk breadboard? Ik denk dat het voor de hand liggende antwoord is om power-LED's toe te voegen
Gebruik SSH en XMing om X-programma's van een Linux-computer op een Windows-computer weer te geven: 6 stappen
Gebruik SSH en XMing om X-programma's weer te geven vanaf een Linux-computer op een Windows-computer: Als u Linux op het werk en Windows thuis gebruikt, of vice versa, moet u mogelijk soms inloggen op de computer op uw andere locatie , en programma's uitvoeren. Welnu, u kunt een X-server installeren en SSH-tunneling inschakelen met uw SSH-client, en één