270 likes | 549 Views
UNIVERSITÀ DEGLI STUDI DI TRIESTE Facoltà di Ingegneria Corso di Laurea Triennale in Ingegneria dell’Informazione Curriculum Elettronica. Relatore : Professore Boscolo Antonio Laureanda: Giovanna Bernardi.
E N D
UNIVERSITÀ DEGLI STUDI DI TRIESTEFacoltà di IngegneriaCorso di Laurea Triennale in Ingegneria dell’Informazione Curriculum Elettronica Relatore: Professore Boscolo Antonio Laureanda: Giovanna Bernardi
L’HARDWARE DEL MICROCONTROLLORE: VISIONE STORICA E REALIZZAZIONE TRAMITE SSI DI UN MICROCONTROLLORE A 8 BIT
INTRODUZIONE E MOTIVAZIONI Al giorno d’oggi i microcontrollori sono onnipresenti. È un dispositivo elettronico facile da utilizzare: è sufficiente la conoscenza di un opportuno linguaggio di programmazione di alto livello e della relazione che intercorre tra l’ingresso e l’uscita del sistema. Tuttavia il microcontrollore esiste: ha un’architettura, qualcuno prima di noi ha lavorato e studiato molto per la sua realizzazione e tutt’ora i microcontrollori vengono prodotti e le loro caratteristiche vengono continuamente ottimizzate.
Ho ritenuto quindi opportuno comprendere: • le motivazioni che hanno portato alla loro nascita • la loro evoluzione nel tempo • la loro architettura Obiettivo: realizzare un semplice microcontrollore a 8 bits per acquisire le conoscenze necessarie alla futura realizzazione di un sistema più complesso. Modello di riferimento: il SAP (Simple-As-Possible), microcontrollore a 8 bits con architettura Von Neumann realizzato il logica TTL grazie ai componenti della famiglia 74XX. Implementazione: in mancanza dei componenti SSI fisici, ho utilizzato la tecnologia FPGA.
Il microcontrollore è caratterizzato dal seguente set di istruzioni: • LDA (0000): è l’operazione “load the accumulator”. • ADD (0001): è l’operazione di somma. • SUB (0010): èl’operazione di sottrazione. • OUT (0011): è l’istruzione che ordina di trasferire il contenuto dell’accumulatore all’output register per poter visualizzare poi il risultato sul display di led. • HLT (0100): è l’operazione di “halt” che ordina al microcomputer di terminare qualsiasi elaborazione sui dati.
FETCH E EXECUTION CYCLE Un componente fondamentale dell’unità di controllo è il ring counter il quale produce un output T=T 6 T 5 T 4 T 3 T 2 T1.
CONTROL MATRIX I segnali LDA, ADD, SUB e OUT prodotti dall’instruction decoder, guidano la matrice di controllo insieme ai segnali generati dal ring counter.
IL PROGRAMMA È fondamentale memorizzare il programma prima dei dati all’interno della memoria. Programma: 95+2-1+2
COMPILAZIONE ERRORE: il bus W non può portare più di 8 bit nello stesso momento. MODIFICA 1: poiché sia il program counter che l’instruction register devono inviare bits al MAR, ho sfruttato un multiplexer che selezioni il registro opportuno ed il invii il contenuto corretto al MAR. Il multiplexer seleziona il registro corretto tramite il bit di selezione posto pari a Ep.
MODIFICA 2: l’accumulatore riceve le parole inviate dall’adder/subtracter e dalla RAM, pertanto ho utilizzato un ulteriore multiplexer che selezioni opportunamente la RAM o l’adder/subtracter in base alle necessità grazie al bit di controllo Ce. MODIFICA 3: hocreato infine un bus indipendente per la connessione tra accumulatore e registro di output.
CONCLUSIONI • Progettazione attraverso schematici (*.bdf) non consente di effettuare simulazioni RTL ( Register Tranfer Level), l'unica simulazione permessa è la Gate Level Simulation, la simulazione post-sintesi, che però è dipendente dal dispositivo impiegato. • L’attività di system validation ha permesso di verificare che i singoli componenti sintetizzati all’interno dell’FPGA rispondono adeguatamente agli input, tuttavia il sistema nel suo complesso richiede ancora un’operazione di debuging. • Il fatto che il sistema nel complesso risponde in modo anomalo potrebbe esser dovuto al fatto che i componenti sintetizzati all'interno dell'FPGA presentano dei tempi di setup e hold differenti da quelli associati agli IC reali.
CONCLUSIONI • Queste leggere differenze nei tempi potrebbero creare problemi di sincronizzazione e metter in discussione la corretta attività del microcontrollore. • L’attività di debuging pertanto consiste nel risolvere problematiche legate alla tecnologia FPGA, per me nuova, e non all’hardware del microcontrollore. La risoluzione di queste quindi si discosta dal mio intento di realizzare il sistema fisicamente, appena sarà possibile reperire tutti i componenti SSI necessari.