CODICE 72345 ANNO ACCADEMICO 2017/2018 CFU 12 cfu anno 1 INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE 9273 (L-8) - SETTORE SCIENTIFICO DISCIPLINARE ING-INF/01 LINGUA Italiano SEDE PERIODO Annuale MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Il corso fornisce le basi per lo studio e la progettazione dei sistemi digitali. Nella prima parte, inizia dall'algebra booleana e aritmetica binaria, e arriva al progetto di reti sequenziali, utilizzando le Macchine a Stati Finiti e i diagrammi ASM. Nella seconda parte, il corso introduce le basi dei microcomputer, con particolare riferimento ai sistemi “embedded”, programmazione in linguaggio macchina, interfacciamento con tecniche di interruzione e loro utilizzo come controllori di sistema. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Basi di progettazione digitale: algebra booleana, aritmetica binaria, reti combinatorie e sequenziali. Macchine a Stati Finiti. Dispositivi logici programmabili. Cenni ai linguaggi per la descrizione dell'hardware. Sistemi programmabili: architettura, programmazione in linguaggio macchina, interfacciamento. Introduzione ai sistemi embedded. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Il corso costituisce la base per lo studio ed il progetto dei sistemi digitali. Nella prima parte, dopo aver fornito i fondamenti dell'algebra booleana e dell'aritmetica binaria, il corso tratta le metodologie di analisi e di progetto delle reti digitali combinatorie e sequenziali, utilizzando per queste ultime la tecnica delle Macchine a Stati Finiti, realizzate con l’aiuto dei diagrammi ASM. Nella seconda parte, dopo avere definito gli elementi della architettura di un microcomputer, il corso introduce allo sviluppo di sistemi “embedded”, con particolare riguardo alla programmazione in linguaggio macchina, all'interfacciamento con dispositivi esterni, alle tecniche di interruzione e all'utilizzo del microcomputer come controllore del sistema. MODALITA' DIDATTICHE Il corso si articola in circa 120 ore in aula, nelle quali lezioni teoriche ed esercitazioni sono alternate a seconda delle necessità. Inoltre sono previste 25 sessioni di esercitazioni di laboratorio dedicate all’analisi, progettazione, simulazione e realizzazione di circuiti digitali. Le esercitazioni di laboratorio possono essere svolte in modo remoto, con il supporto del sito AulaWeb del corso. PROGRAMMA/CONTENUTO Introduzione al corso, rappresentazione dell'informazione, funzioni booleane e reti logiche, teorema di espansione di Shannon, circuiti combinatori standard. Minimizzazione di funzioni booleane, mappe di Karnaugh, cenno ai metodi algoritmici. Aritmetica binaria, codici e operazioni, complementi, conversioni, principali architetture aritmetico-logiche, codici a rilevazione di errore, codici alfanumerici. Introduzione alle reti sequenziali, temporizzazioni, Flip-Flop (FF SR, FF D Latch, FF JK, D e E PET), registri, contatori, analisi di reti sequenziali. Introduzione alle Macchine a Stati Finiti (MSF) e ai diagrammi ASM (blocco di stato, blocco condizionale, uscite condizionate). Esempi ed esercizi di progetto di MSF, criteri per l'assegnazione degli stati, cenni alle MSF asincrone. Dispositivi elettronici e componentistica, packaging, dispositivi programmabili (FPGA), panoramica dei dispositivi disponibili, esempi di progetto. Elementi fondamentali di un calcolatore numerico: Unità di Processo, Memoria, Unità di Ingresso/Uscita (architettura di Von Neumann). Sistemi a Bus: indirizzamento, trasferimento dati, segnali di controllo. Dispositivi di memoria a semiconduttore: memorie di lettura/scrittura statiche, memorie a sola lettura. Architettura dei microprocessori: registri, unità di calcolo, sequenziatore. Programmi e istruzioni: fasi di fetch, decode, execute. Linguaggio macchina. Formato mnemonico delle istruzioni e linguaggio assembly. Esempio di esecuzione di una generica istruzione. Temporizzazioni. Distinzione tra processori CISC e RISC. Introduzione alla programmazione assembly. Sintassi del linguaggio. Confronti con i linguaggi ad alto livello. Modi di indirizzamento. Insieme delle istruzioni e loro classificazione funzionale. Istruzioni di trasferimento dati. Istruzioni aritmetiche e logiche. Istruzioni di salto. La struttura a catasta, istruzioni di chiamata e ritorno, sottoprogrammi. Istruzioni di controllo e istruzioni "nascoste". Progetto dell'hardware di un sistema a microprocessore. Generatore di Clock, circuiti di Reset, decodificatore degli indirizzi. Progetto di banchi di memoria. Dispositivi di Ingresso/Uscita. Tecniche base di interfacciamento parallelo e seriale. Handshake tra dispositivi. Introduzione ai dispositivi di ingresso/uscita programmabili. Tecniche di interruzione. Gestione del riconoscimento delle periferiche e delle priorita`. Il controllore delle interruzioni. Il microcomputer come controllore di un sistema digitale. Introduzione ai sistemi "embedded". Introduzione ai microprocessori RISC. TESTI/BIBLIOGRAFIA Le dispense del corso, disponibili (in pdf) sulla pagina Aulaweb del corso DOCENTI E COMMISSIONI GIULIANO DONZELLINI Ricevimento: Il docente è disponibile per chiarimenti sugli argomenti del corso, previo appuntamento (da concordare via e-mail). Commissione d'esame GIULIANO DONZELLINI (Presidente) DAVIDE ANGUITA PAOLO GASTALDO DOMENICO PONTA RODOLFO ZUNINO LEZIONI Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME La prova d'esame del corso consiste in due prove scritte (prove parziali) ed una prova orale. Nello stesso appello è possibile sostenere una o entrambe le prove scritte parziali. La prima prova parziale consiste nel progetto di un sistema digitale controllato da MSF (argomenti della prima parte del corso). La seconda prova parziale verte sul progetto di un sistema basato su microcalcolatore (argomenti della seconda parte del corso). Entrambe le prove devono essere svolte senza l'uso di computer. MODALITA' DI ACCERTAMENTO Il tempo a disposizione per svolgere una prova scritta parziale e' di 1h 30'. A ciascuna delle due prove parziali è aggiunto un punto di "bonus", se svolta e consegnata una sola volta. E' consentito ritirarsi dalla prova scritta parziale, mantenendo il bonus. Il voto finale verra' calcolato come segue: 13 punti max per la prima prova parziale 13 punti max per la seconda prova parziale ± 5 punti per la prova orale + 2 punti totali di bonus. La prova orale è obbligatoria. Per sostenere la prova orale e' necessario aver svolto entrambe le prove parziali, riportando un punteggio totale (escluso il bonus) di almeno 13, con un punteggio minimo di 5 per ciascuna prova. Calendario appelli Data appello Orario Luogo Tipologia Note 15/01/2018 09:30 GENOVA I Scritto Parziale 15/01/2018 11:00 GENOVA II Scritto Parziale 12/02/2018 09:30 GENOVA I Scritto Parziale 12/02/2018 11:00 GENOVA II Scritto Parziale 11/06/2018 09:30 GENOVA I Scritto Parziale 11/06/2018 11:00 GENOVA II Scritto Parziale 09/07/2018 09:30 GENOVA I Scritto Parziale 09/07/2018 11:00 GENOVA II Scritto Parziale 10/09/2018 09:30 GENOVA I Scritto Parziale 10/09/2018 11:00 GENOVA II Scritto Parziale