HomeWork3: realizzare un trascodificatore usando una ROM
L'obiettivo del compito è realizzare un transcodificatore che produce, per i valori di ingresso da 0 a 15, le lettere del vostro WikiName in ordine
- l'ingresso X è codificato con 4 bit ed indica la posizione del carattere nel wikiname (partendo da 0 per il primo carattere)
- l'uscita Y è codificata con 7 bit e rappresenta il codice ASCII del carattere alla posizione X nel vostro wikiname
- se il vostro wikiname è più lungo di 16 caratteri troncatelo
- se il vostro wikiname è più corto di 16 caratteri aggiungete valori nulli (0000000)
Esempio: il circuito d'esempio realizza il transcodificatore che produce il WikiName
AndreaSterbini
In questo caso la tabella di verità da realizzare è
X |
x3 |
x2 |
x1 |
x0 |
Y |
y6 |
y5 |
y4 |
y3 |
y2 |
y1 |
y0 |
1 |
0 |
0 |
0 |
1 |
n |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
2 |
0 |
0 |
1 |
0 |
d |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
1 |
r |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
4 |
0 |
1 |
0 |
0 |
e |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
5 |
0 |
1 |
0 |
1 |
a |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
7 |
0 |
1 |
1 |
1 |
t |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
8 |
1 |
0 |
0 |
0 |
e |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
9 |
1 |
0 |
0 |
1 |
r |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
10 |
1 |
0 |
1 |
0 |
b |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
11 |
1 |
0 |
1 |
1 |
i |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
12 |
1 |
1 |
0 |
0 |
n |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
13 |
1 |
1 |
0 |
1 |
i |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
A |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
6 |
0 |
1 |
1 |
0 |
S |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
14 |
1 |
1 |
1 |
0 |
null |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
15 |
1 |
1 |
1 |
1 |
null |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Da questa tabella si ricavano i dati da inserire nella ROM.
ATTENZIONE:
- la ROM ha:
- un bus di ingresso (Address bus) che va configurato da 4 bit e va collegato ad uno splitter per connetterlo agli ingressi
- un bus di uscita (Data bus) che va configurato da 7 bit e va collegato ad uno splitter per connetterlo alle uscite
COMPITO:
- scaricate il file dall'HomeWork2
- aprite il file in Logisim per modificare il componente test
- eliminate tutti i MUX e sostituiteli con una ROM con 4 bit di ingresso e 7 di uscita
- inserite nella ROM i valori che fanno apparire il vostro WikiName
- consegnate l'esercizio (vedi sotto)
AUTOVERIFICA:
- caricate il circuito in Logisim
- azzerate il circuito cliccando sul bottone BLU "Azzera tutto"
- scrivete il vostro WikiName nel componente tastiera
- cliccate ripetutamente sul generatore di impulsi per far generare i numeri da 0 a 15
- i caratteri del WikiName verranno uno per uno confrontati con i caratteri generati dal componente test
- Se tutto va bene il LED resterà sempre verde, altrimenti diventerà rosso in corrispondenza del carattere sbagliato
NOTA: quando il contatore arriva a 15 e poi ritorna a 0 il componente
test produrrà il vostro primo carattere mentre la tastiera darà qualcosa di diverso, per cui
è normale che il LED diventi rosso dopo il 16° carattere.
CONSEGNA: (SCADUTA)
CORREZIONE
--
AndreaSterbini - 24 Nov 2011