Sommario:

Computer a 8 bit su una breadboard Panoramica: 3 passaggi
Computer a 8 bit su una breadboard Panoramica: 3 passaggi

Video: Computer a 8 bit su una breadboard Panoramica: 3 passaggi

Video: Computer a 8 bit su una breadboard Panoramica: 3 passaggi
Video: PC Building 101: Breadboard, Parts, Windows, & Drivers Installation 2018 2024, Dicembre
Anonim
Computer a 8 bit su una panoramica breadboard
Computer a 8 bit su una panoramica breadboard

Il mio obiettivo per questo progetto era quello di costruire una migliore comprensione dell'architettura del computer, della progettazione dell'hardware e dei linguaggi a livello di assembly. Essendo uno studente universitario che studia ingegneria informatica, ho recentemente completato corsi di elettronica, laboratori che mi hanno introdotto al linguaggio assembly e all'architettura hardware. Ricevendo un'introduzione a questi argomenti, volevo aumentare la mia comprensione dei dettagli più fini in tutti e tre i corsi, e quale modo migliore per imparare che lavorare su un progetto?

La mia intenzione originale era di assemblare completamente questo computer a 8 bit utilizzando i video delle lezioni forniti sul canale YouTube di Ben Eater, che svolgono un lavoro fantastico nell'abbattere il processo di progettazione in un solido mix di materiale che ho trattato e aspetti che dovevo ancora imparare. Dato che avevo già una conoscenza di base del design combinatorio e della logica elettronica di base, volevo mettermi alla prova cercando di progettare e costruire parti del computer dopo le panoramiche di progettazione, ma senza guardare le istruzioni di costruzione. Durante tutto il progetto, il mio obiettivo era quello di imparare e migliorare la mia comprensione più che costruire semplicemente qualcosa di nuovo, quindi durante ogni fase del progetto, ho letto un po' da articoli e forum online sull'architettura dei componenti e sulle convenzioni di base utilizzate per ogni di loro.

Passaggio 1: ricerca lungo la strada

Ricerca lungo la strada
Ricerca lungo la strada
Ricerca lungo la strada
Ricerca lungo la strada

Questo progetto mi ha davvero fatto leggere molto più di quanto mi aspettassi. Uno dei miei approcci principali a ciascun componente era leggere una panoramica da un forum o un articolo online, guardare le lezioni dai video di Eater e tentare di progettare la mia parte prima di costruirla, testarla e il più delle volte dovendo scartarla per un approccio più guidato dal canale di Eater. Un esempio di ciò è stato quando stavo costruendo il componente ALU del PC. Mentre guardavo i video di progettazione, ho letto articoli sui componenti del chip che avevano funzionalità più elevate e ingressi trigger che consentivano di cambiare i tipi di istruzioni e invertire gli ingressi nel complemento di 2 internamente. Tuttavia, prima di acquistare questi chip semplificati, ho rivisto l'approccio progettuale di cui Ben Eater ha parlato nei suoi video, con la combinazione di sommatori e porte logiche XOR per aumentare la funzionalità del modulo ALU senza bisogno di chip di costo più elevato. Questo mi ha fatto apprezzare l'uso della logica discreta e la sua applicabilità alla progettazione di computer e ho appreso diversi approcci alla costruzione di componenti. Combinando chip di livello inferiore sulla breadboard, ho anche appreso alcuni tratti chiave dell'architettura utilizzati all'interno dell'ALU, che hanno aumentato la mia comprensione su questo componente di esecuzione sul PC.

Un altro componente chiave che ho appreso è stato l'uso dei ricetrasmettitori, noti anche come buffer. Prima di approfondire il progetto, ho pensato che avrei semplicemente attivato e disattivato diversi componenti utilizzando segnali di controllo, ma ho trovato rapidamente in tutti gli articoli che i buffer dovevano essere utilizzati per far funzionare correttamente questa architettura in stile Von-Neuman. Poiché il computer utilizza un bus condiviso per far viaggiare i dati tra i diversi moduli del PC, la sincronizzazione dei cicli è stata dettata dall'orologio. Tuttavia, consentendo l'archiviazione e il caricamento senza interferire con i dati disponibili sul bus, ho scoperto che i ricetrasmettitori erano fondamentali per agire come porte, richiedendo un segnale di abilitazione per consentire ai dati di fluire sul bus in modo tempestivo. la capacità di lettura non era così difficile da capire, poiché i fili avrebbero sempre mantenuto i valori sul bus, ma usare il valore corretto significava consentire ai registri di contenere il nuovo valore.

Un'ultima conclusione della ricerca nel corso di questo progetto è stata la comprensione delle differenze di specifiche tra chip simili. Spesso ho trovato chip con gli stessi valori ID ma lettere descrittive diverse come LS e HC. Quello che ho imparato è che non si trattava semplicemente di produrre etichette, ma anche di tempistiche e specifiche di potenza dei chip. Per fortuna, poiché il mio computer utilizzava componenti di livello abbastanza basso e ad alta tolleranza, non dovevo preoccuparmi di abbinare molte specifiche, ma su un design di livello superiore, ho imparato che cose come la velocità di clock e l'assorbimento di potenza sono fondamentali per il successo o il fallimento dell'elettronica design

Fase 2: Difficoltà incontrate

Abbastanza rapidamente nel progetto sono stato in grado di progettare componenti semplici come il cronometro per la sincronizzazione dei processi e l'architettura di memoria di base, ma la necessità di ordinare parti insieme a un semestre di corso pesante ha reso difficile allocare il tempo al di fuori del progetto, riportandomi indietro programma per il completamento. Dopo la mia prima grande battuta d'arresto dovuta alla necessità di aspettare una settimana per l'arrivo delle parti, ho finito per evitare ulteriori ritardi ordinando tutte le parti che pensavo mi sarebbero servite per completare questo progetto, che si è rivelato utile in quanto non ho più dovuto affrontare ritardi fino alla pubblicazione di questo. Dopo aver appreso anche alcuni approcci di base al debug, ho iniziato a trascurare alcuni assemblaggi, il che significava dover tornare indietro e rivedere i video per rilevare i miei errori, il che di solito portava a smontare la maggior parte di una scheda. Questo non aveva scorciatoie. Ho imparato l'importanza di controllare i tuoi progressi nella costruzione di qualsiasi dispositivo elettronico. Eseguendo il debug di ogni scheda lungo il percorso, sono stato in grado di passare alla loro combinazione con maggiore sicurezza, quindi il debug delle schede combinate è diventato molto più semplice.

Passaggio 3: risultati e riflessione

Tutto sommato, al momento ho completato l'orologio, il codice operativo e il contatore del programma, l'unità ALU, i registri rs rt e rd e la RAM. Oltre alla necessità di completare il bus e le periferiche per completare questo progetto, ho imparato molto sull'architettura dei computer, che spero di portare avanti ai miei corsi di laurea, frequentando il corso di architettura dei computer.

M5 mi ha fornito tutti gli strumenti necessari per lavorare al mio progetto e i componenti erano disposti molto bene lungo le pareti delle parti, quindi ho saputo molto presto le parti che avevano bisogno di essere ordinate e cosa era superfluo. Se un altro studente dovesse intraprendere questo progetto, noterei sicuramente che questo progetto richiede molto tempo se stai cercando di capire tutto ciò che sta accadendo sul computer. NON È DIFFICILE, ma richiede attenzione se vuoi che funzioni correttamente. Consiglio vivamente di esaminare la playlist video sul canale YouTube di Ben Eater per comprendere tutte le parti che è necessario utilizzare in modo da non rimanere indietro in tempo se non si prevede di progettare il proprio approccio. Dato che ho acquistato la maggior parte delle parti, ho intenzione di portarlo con me per completarlo nel mio tempo libero, ma sarebbe bello tramandarlo per consentire a un altro studente di completarlo, il che significherebbe un'esposizione alla luce per il design delle parti rimanenti, ma una grande attenzione al linguaggio assembly, su cui fortunatamente ho avuto modo di lavorare durante altre lezioni

Consigliato: