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
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.
ARCHITETTURA
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 T 1.
PROGRAM COUNTER
MAR E MULTIPLEXER
RAM
INSTRUCTION REGISTER
ACCUMULATORE
ADDER/SUBTRACTER
ADDER/SUBTRACTER
REGISTRO B
OUTPUT REGISTER
INSTRUCTION DECODER
RING COUNTER
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.
MACRO
LDA
ADD
SUB
OUT
STATE
CON
ATTIVI
T1
5E3H
Ep, Lm_negato
T2
BE3H
CP
T3
263H
Ce_negato, Li_negato
T4
1A3H
Lm_negato, Ei_negato
T5
2C3H
Ce_negato, La
T6
3E3H
None
T4
1A3H
Lm_negato, Ei_negato
T5
2E1H
Ce_negato, Lb_negato
T6
3C7H
La_negato, Eu
T4
1A3H
Lm_negato, Ei_negato
T5
2E1H
Ce_negato, Lb_negato
T6
3CFH
La_negato, Eu, Su
T4
3F2H
Ea, Lo_negato
T5
3E3H
None
T6
3E3H
None
CONTROL MATRIX
CLOCK E RESET
IL PROGRAMMA
È fondamentale memorizzare il programma prima dei dati all’interno
della memoria.
Programma: 95+2-1+2
INDIRIZZO
CONTENUTO
OH
LDA 6H
1H
ADD 7H
2H
SUB 8H
3H
ADD 9H
4H
OUT
5H
HLT
6H
5FH
7H
2H
8H
1H
9H
2H
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: ho creato 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.
Scarica

microcontrollore_SSI - Università degli Studi di Trieste