Innehållsförteckning:

8-bitars dator på en brödbräda Översikt: 3 steg
8-bitars dator på en brödbräda Översikt: 3 steg

Video: 8-bitars dator på en brödbräda Översikt: 3 steg

Video: 8-bitars dator på en brödbräda Översikt: 3 steg
Video: ESP32 Tutorial 5 - LED Fade, control brightness of an LED -ESP32 IoT Learnig kit 2024, Juli
Anonim
8-bitars dator på en brödbräda Översikt
8-bitars dator på en brödbräda Översikt

Mitt mål för det här projektet var att bygga en bättre förståelse för datorarkitektur, hårdvarudesign och språk på monteringsnivå. Som junior på universitetet som studerade datateknik hade jag nyligen avslutat kurser i elektronik, labb som introducerade mig till monteringsspråk och hårdvaruarkitektur. När jag fick en introduktion till dessa ämnen ville jag öka min förståelse för de finare detaljerna i alla tre kurserna, och vilket bättre sätt att lära sig än att arbeta med ett projekt?

Min ursprungliga avsikt var att helt sätta ihop denna 8-bitars dator med hjälp av föreläsningsfilmerna på Ben Eaters youtube-kanal, som gör ett fantastiskt jobb med att bryta ner designprocessen till en solid blandning av material som jag har täckt och aspekter som jag ännu inte hade lära sig. Eftersom jag redan hade en grundläggande förståelse för kombinatorisk design och grundläggande elektroniklogik, ville jag utmana mig själv genom att försöka designa och bygga delar av datorn efter designöversikterna, men utan att titta på bygginstruktionerna. Under hela projektet var mitt mål att lära mig och förbättra min förståelse mer än att bara bygga något nytt, så längs varje steg i projektet läste jag lite från onlineartiklar och forum om komponentarkitekturen och grundläggande konventioner som används för varje av dem.

Steg 1: Forskning längs vägen

Forskning längs vägen
Forskning längs vägen
Forskning längs vägen
Forskning längs vägen

Detta projekt fick mig verkligen att läsa mycket mer än jag förväntat mig. En av mina huvudsakliga tillvägagångssätt för varje komponent var att läsa en översikt från ett onlineforum eller en artikel, titta på föreläsningarna från Eaters videor och försöka designa min egen del innan jag bygger, testar och för det mesta behöver skrota den för en mer guidat tillvägagångssätt från Eaters kanal. Ett exempel på detta var när jag byggde ALU -komponenten i datorn. När jag tittade på designvideos läste jag artiklar om chipkomponenter som hade högre funktionalitet och triggade ingångar som skulle göra det möjligt att byta instruktionstyper och invertera ingångar till 2: s komplement internt. Innan jag köpte dessa gör-det-lättare chips granskade jag dock designmetoden som Ben Eater pratade om i sina videor, med blandning av adderare och XOR-logikgrindar för att öka funktionaliteten i ALU-modulen utan att behöva högre chips. Detta fick mig att uppskatta användningen av diskret logik och dess tillämpbarhet för datordesign och lära mig om olika tillvägagångssätt för att bygga komponenter. Genom att kombinera chips på lägre nivå på brödbrädet fick jag också veta några viktiga arkitektoniska drag som används inuti ALU, vilket ökade min förståelse för denna körningskomponent på datorn.

En annan viktig komponent som jag lärde mig om var användningen av transceivrar, även kända som buffertar. Innan jag kom djupare in i projektet tänkte jag att jag helt enkelt skulle aktivera och inaktivera olika komponenter med hjälp av styrsignaler, men fann snabbt genom artiklar att buffertar behövde användas för att fungera denna Von-Neuman-stilarkitektur korrekt. Eftersom datorn använder en delad buss för data för att resa mellan de olika modulerna på datorn, dikterades synkronisering av cykler av klockan. Men tillåter lagring och laster att inträffa utan att störa de data som finns på bussen, fann jag att sändtagare var avgörande för att fungera som grindar, vilket kräver en aktiveringssignal för att tillåta data att strömma in på bussen i tid. läsförmågan var inte lika svår att förstå, eftersom ledningarna alltid skulle hålla värdena på bussen, men att använda rätt värde innebar att registren kunde hålla det nya värdet.

En sista takeaway från forskning i hela detta projekt var att förstå specifikationsskillnaderna mellan chips som var liknande. Ofta hittade jag chips med samma ID -värden men olika deskriptorbokstäver som LS och HC. Det jag lärde mig var att det inte bara var tillverkning av etiketter, utan också timing och effektspecifikationer om chipsen. Tack och lov eftersom min dator använde ganska låga komponenter med hög tolerans, behövde jag inte oroa mig för att matcha många specifikationer, men på högre design lärde jag mig att saker som klockhastighet och effektdragning är avgörande för att elektroniska ska lyckas eller misslyckas design

Steg 2: Svårigheter

Ganska snabbt in i projektet kunde jag designa enkla komponenter som tidtagningsklockan för synkronisering av processer och grundläggande minnesarkitektur, men att behöva beställa delar vid sidan av en tung kurssemester gjorde det svårt att allokera tid till projektet, vilket satte mig tillbaka på schema för färdigställande. Efter mitt första stora bakslag från att behöva vänta en vecka på att delar skulle komma, slutade jag med att undvika ytterligare förseningar genom att beställa alla delar som jag trodde att jag skulle behöva slutföra detta projekt, vilket blev användbart eftersom jag inte längre stod inför förseningar förrän jag publicerade detta. Efter att ha lärt mig några grundläggande tillvägagångssätt för felsökning också började jag förbise någon montering vilket innebar att jag behövde gå tillbaka och titta på videor för att fånga mina fel, vilket vanligtvis ledde till att ta isär det mesta av en bräda. Detta hade ingen genväg. Jag lärde mig värdet i att kontrollera dina framsteg när det gäller att bygga någon elektronisk enhet. Genom att felsöka varje bräda längs vägen kunde jag gå vidare till att kombinera dem med mer självförtroende, sedan blev det mycket enklare att felsöka kombinerade kort.

Steg 3: Prestationer och reflektion

Sammantaget har jag för närvarande slutfört klockan, opkoden och programräknaren, ALU -enheten, rs rt och rd -registren och RAM -minnet. Förutom att jag behövde slutföra bussen och kringutrustning för att slutföra detta projekt, har jag lärt mig en hel del om datorarkitektur, som jag hoppas kunna fortsätta till mina valfria gymnasieår, genom att gå datarkitekturkursen.

M5 gav alla de nödvändiga verktygen för att jag skulle kunna arbeta med mitt projekt, och komponenter var mycket väl utlagda längs delväggarna, så jag visste mycket tidigt vilka delar som behövde beställas och vad som var dispensabelt. Om en annan student skulle ta sig an detta projekt, skulle jag definitivt notera att det här projektet tar mycket tid om du försöker förstå allt som händer på datorn. DET ÄR INTE SVÅRT, men det kräver omsorg om du vill att det ska fungera framgångsrikt. Jag rekommenderar starkt att du går igenom videospellistan på Ben Eaters youtube -kanal för att ta reda på alla delar som du behöver använda så att du inte hamnar efter i tid om du inte planerar att designa ditt eget tillvägagångssätt. Eftersom jag köpte de flesta delarna planerar jag att ta detta med mig för att slutföra på min egen tid, men det skulle vara häftigt att lämna detta för att låta en annan elev slutföra det, vilket skulle innebära ljus exponering för designen av de återstående delarna, men ett stort fokus på monteringsspråk, som jag lyckligtvis fick jobba med under andra klasser

Rekommenderad: