Indholdsfortegnelse:

8-bit computer på et brødbræt Oversigt: 3 trin
8-bit computer på et brødbræt Oversigt: 3 trin

Video: 8-bit computer på et brødbræt Oversigt: 3 trin

Video: 8-bit computer på et brødbræt Oversigt: 3 trin
Video: Hvordan bruges prototype brødbræt? - Robojax 2024, Juli
Anonim
8-bit computer på et brødbræt Oversigt
8-bit computer på et brødbræt Oversigt

Mit mål for dette projekt var at opbygge en bedre forståelse af computerarkitektur, hardwaredesign og sprog på samlingsniveau. Da jeg var junior på universitetet og studerede computerteknik, havde jeg for nylig afsluttet kurser i elektronik, laboratorier, der introducerede mig til montagesprog og hardware -arkitektur. Da jeg modtog en introduktion til disse emner, ønskede jeg at øge min forståelse af de finere detaljer i alle tre kurser, og hvilken bedre måde at lære end at arbejde på et projekt?

Min oprindelige hensigt var at samle denne 8-bit computer fuldt ud ved hjælp af forelæsningsvideoerne på Ben Eaters youtube-kanal, som gør et fantastisk stykke arbejde med at nedbryde designprocessen til en solid blanding af materiale, jeg har dækket, og aspekter, jeg endnu ikke skulle lære. Da jeg allerede havde en grundlæggende forståelse for kombinatorisk design og grundlæggende elektroniklogik, ville jeg udfordre mig selv ved at prøve at designe og bygge dele af computeren efter designoversigterne, men uden at se bygningsinstruktionerne. Gennem hele projektet var mit mål at lære og forbedre min forståelse mere end bare at bygge noget nyt, så langs hvert trin i projektet læste jeg lidt fra onlineartikler og fora om komponentarkitekturen og grundlæggende konventioner, der blev brugt til hver af dem.

Trin 1: Undersøg undervejs

Forskning undervejs
Forskning undervejs
Forskning undervejs
Forskning undervejs

Dette projekt fik mig virkelig til at læse meget mere, end jeg havde forventet. En af mine vigtigste tilgange til hver komponent var at læse en oversigt fra et online forum eller en artikel, se foredragene fra Eaters videoer og forsøge at designe min egen del, før jeg bygger, tester og for det meste skal skrotte den til en mere guidet tilgang fra Eaters kanal. Et eksempel på dette var, da jeg byggede ALU -komponenten på pc'en. Da jeg så designvideoerne, læste jeg artikler om chipkomponenter, der havde højere funktionalitet og udløser input, der ville give mulighed for at skifte instruktionstyper og invertere input til 2’ers komplement internt. Inden jeg købte disse gør-det-nemmere chips, gennemgik jeg dog den designmetode, som Ben Eater talte om i sine videoer, med blanding af tilføjelsesprogrammer og XOR-logikporte for at øge funktionaliteten i ALU-modulet uden at skulle bruge chips med højere omkostninger. Dette fik mig til at sætte pris på brugen af diskret logik og dens anvendelighed på computerdesign og lære om forskellige tilgange til bygningskomponenter. Ved at kombinere chips på lavere niveau på brødbrættet lærte jeg også om nogle vigtige arkitektoniske træk, der blev brugt inde i ALU, hvilket øgede min forståelse for denne udførelseskomponent på pc'en.

En anden vigtig komponent, som jeg lærte om, var brugen af transceivere, også kendt som buffere. Inden jeg gik dybere ind i projektet, troede jeg, at jeg simpelthen ville aktivere og deaktivere forskellige komponenter ved hjælp af kontrolsignaler, men fandt hurtigt igennem artikler, at buffere skulle bruges for at fungere denne Von-Neuman-stilarkitektur korrekt. Fordi computeren bruger en delt bus til data til at rejse mellem de forskellige moduler på pc'en, blev synkronisering af cyklusser dikteret af uret. Men da jeg tillod lagring og belastning at forekomme uden at forstyrre de tilgængelige data på bussen, fandt jeg ud af, at transceivere var afgørende for at fungere som porte, hvilket krævede et aktiveringssignal for at tillade data at strømme ind på bussen rettidigt. læseevnen var ikke så svær at forstå, da ledningerne altid ville holde værdierne på bussen, men at bruge den korrekte værdi betød, at registre kunne holde den nye værdi.

En sidste takeaway fra forskning i hele dette projekt var at forstå specifikationsforskellene mellem chips, der var ens. Ofte fandt jeg chips med de samme ID -værdier, men forskellige deskriptorbogstaver som LS og HC. Det, jeg lærte, var, at det ikke bare var fremstilling af etiketter, men også timing og strømspecifikationer om chipsene. Heldigvis siden min computer brugte temmelig lavt niveau, komponenter med høj tolerance, behøvede jeg ikke bekymre mig om at matche mange specifikationer, men på design på højere niveau lærte jeg, at ting som clockhastighed og strømforbrug er afgørende for elektronisk succes eller fiasko design

Trin 2: Opståede vanskeligheder

Ret hurtigt ind i projektet var jeg i stand til at designe enkle komponenter som f.eks. Tiduret til synkronisering af processer og grundlæggende hukommelsesarkitektur, men at skulle bestille dele ved siden af et tungt kurssemester gjorde det svært at allokere tid ude til projektet, hvilket satte mig tilbage på tidsplan for færdiggørelse. Efter mit første store tilbageslag fra at skulle vente en uge på at dele skulle ankomme, endte jeg med at omgå yderligere forsinkelser ved at bestille alle de dele, jeg troede, jeg skulle bruge for at fuldføre dette projekt, hvilket viste sig nyttigt, da jeg ikke længere stod over for forsinkelser, før jeg udgav dette. Efter at have lært nogle grundlæggende tilgange til fejlfinding også, begyndte jeg at overse en samling, hvilket betød, at jeg skulle gå tilbage og se videoer igen for at fange mine fejl, hvilket normalt førte til at skille det meste af et bord fra hinanden. Dette havde ingen genvej. Jeg lærte værdien i at kontrollere dine fremskridt med at bygge enhver elektronisk enhed. Ved at debugge hvert board undervejs kunne jeg gå videre til at kombinere dem med mere selvtillid, så blev debugging af kombinerede boards meget lettere.

Trin 3: Udførelser og refleksion

Alt i alt har jeg i øjeblikket afsluttet uret, opcode og program tælleren, ALU enhed, rs rt og rd registre og RAM. Udover at skulle fuldføre bussen og periferiudstyret for at fuldføre dette projekt, har jeg lært en hel del om computerarkitektur, som jeg håber at kunne videreføre til mine valgfag på senioråret og tage computerarkitekturkurset.

M5 gav alle de nødvendige værktøjer til at arbejde med mit projekt, og komponenter var meget godt anbragt langs delens vægge, så jeg vidste meget tidligt, hvilke dele der skulle bestilles, og hvad der kunne dispenseres. Hvis en anden elev skulle påtage sig dette projekt, vil jeg helt sikkert bemærke, at dette projekt tager meget tid, hvis du forsøger at forstå alt, hvad der foregår på computeren. DET ER IKKE Svært, men det kræver omhu, hvis du vil have det til at fungere korrekt. Jeg anbefaler stærkt at gå igennem videoafspilningslisten på Ben Eaters youtube -kanal for at få et indblik i alle de dele, du skal bruge, så du ikke kommer bagud til tiden, hvis du ikke planlægger at designe din egen tilgang. Da jeg købte de fleste dele, har jeg planer om at tage dette med mig til at fuldføre på min egen tid, men det ville være fedt at aflevere dette for at give en anden elev mulighed for at fuldføre det, hvilket ville betyde lyseksponering for designet af de resterende dele, men et stort fokus på samlingssprog, som jeg heldigvis fik arbejdet med i løbet af andre klasser

Anbefalede: