Cognome _______________________________ Nome ______________________________________ Matricola ____________________
Calcolatori Elettronici – A.A. 2008/2009
Esame di Profitto
20 Luglio 2009
•
•
•
•
•
•
•
La durata della prova è di 120 minuti.
Riportare nell'intestazione di ogni foglio (a stampatello) i seguenti dati: cognome, nome, matricola, codice del compito.
Solo i fogli che devono essere corretti ed il presente foglio devono essere consegnati (non consegnare copie di brutta).
I fogli aggiuntivi sono disposti in pila al centro della cattedra e sono a disposizione dello studente che può ritirarli senza
chiedere il permesso al docente. Se lo studente ha difficoltà a raggiungere la cattedra (perchè si trova in un posto centrale) il
docente si farà carico di favorire il foglio allo studente.
Qualsiasi tipo di interazione con un collega determinerà l'annullamento del compito (di entrambi) o la penalizzazione fino al
50% del punteggio ottenuto.
Non è possibile utilizzare libri o appunti personali. E' consentito soltanto l'uso dell'Instruction-Set manual del DLX.
Scrivere in modo chiaro e ordinato.
Esercizio 1 (Centralina antifurto) [50%]
Progettare la centralina elettronica di un un antifurto il cui funzionamento è specificato nel seguito.
•
La centralina ha due ingressi, di 1 bit, sensore (s) e chiave (c) e due uscite, di 1 bit, sirena (a) e indicatore (i).
•
L'uscita a è collegata ad una sirena che si attiva se a=1.
•
L'uscita i è collegata ad un indicatore luminoso che si accende se i=1. L'indicatore luminoso si deve
accendere se la centralina è attivata e spegnere se è disattivata.
•
La centralina si attiva se è disattivata (o si disattiva se è attivata) quando sull'ingresso c appare la sequenza
101.
•
Quando la centralina è disattivata, qualsiasi segnale all'ingresso s è ignorato. Quando la centralina è attiva,
un 1 sull'ingresso s causa l'avvio della sirena per un periodo di 30 secondi trascorso il quale la sirena si
interrompe. Da quel momento in poi la centralina si disattiva.
•
Si assuma la disponibilità di un blocco timer (che non è necessario progettare) dotato di un ingresso Start e
di una uscita Stop. Il funzionamento del timer è il seguente. Quando Start=1, un registro interno del timer
viene settato al valore N. Quando Start=0, il registro interno del timer viene decrementato ogni ciclo di
clock. Quando il registro interno raggiunge 0, l'uscita Stop viene posta ad 1.
•
Si assuma una frequenza di clock di 50 Hz.
Lo schema strutturale del sistema è riportato in Figura 1. Svolgere i seguenti punti.
1.
Determinare la dimensione (in bit) del registro interno del timer ed il valore di N. [10%]
2.
Tracciare il diagramma degli stati. [40%]
3.
Minimizzare il diagramma degli stati (utilizzare qualsiasi metodo a scelta dello studente). [10%]
4.
Sintetizzare la logica dell'uscita a. [20%]
5.
Sintetizzare la logica si stato prossimo (per un flip-flop a scelta) assumendo flip-flip D. [20%]
Figura 1: Schema strutturale del sistema.
A
Cognome _______________________________ Nome ______________________________________ Matricola ____________________
Esercizio 2 (Assembly) [50%]
Convertire in assembly del DLX il seguente programma pseudo-C. E' possbile fare riferimento alla funzione
InputUnsigned discussa a lezione.
main()
{
int i, v, counter;
double vect[10];
/* inserimento */
for (i=0; i<10; i++) {
printf(“Inserisci elemento %d: “, i);
scanf(“%d”, &v);
vect[i] = v*(v­1);
}
/* elaborazione */
counter = 0;
for (i=0; i<9; i++) {
if (vect[i] > vect[i+1])
counter++;
else
counter = ­counter;
}
/* visualizzazione */
printf(“counter = %d\n”, counter);
}
Parte riservata per il docente
1
1.2
1.2
1.3
2
1.4
1.5
2.1
2.2
2.3
Note
A
Scarica

Compito A