SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05
LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA
ANNO ACCADEMICO: 2022-2023
INFORMAZIONI GENERALI - DOCENTE
DOCENTE: NICOLA MAZZOCCA
TELEFONO:
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
INFORMAZIONI GENERALI - ATTIVITÀ
INSEGNAMENTO INTEGRATO (EVENTUALE):
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): I
SEMESTRE (I, II): I
CFU: 9
(se previsti dall'Ordinamento del CdS)
...................................................................................................................................................
EVENTUALI PREREQUISITI
Conoscenza dei principi di progettazione delle reti logiche combinatorie e sequenziali e dell’architettura generale di un calcolatore; conoscenze di programmazione.
OBIETTIVI FORMATIVI
Il corso si pone l’obiettivo di fornire un’impostazione metodologica e tecnologica per il progetto di architetture dei sistemi digitali dedicati e/o programmabili. Il corso prevede di analizzare le tecniche di progetto con riferimento allo sviluppo di: microcontrollori, processori dedicati, unità di I/O, sistemi di interconnessione, unità aritmetiche, unità dedicate ad applicazioni di IoT e multimediali. Le attività sono svolte con riferimento al linguaggio VHDL, mediante l’impiego di simulatori industriali e di sistemi FPGA (con i relativi ambienti di sviluppo), utilizzati per l’implementazione dei casi di studio proposti durante il corso. Sono inoltre presentati i principali elementi per la realizzazione della documentazione e per il testing di sistemi digitali in applicazioni industriali.
(Descrittori di Dublino)
Conoscenza e capacità di comprensione
Lo studente deve dimostrare di conoscere e comprendere le problematiche relative al progetto di sistemi digitali dedicati e programmabili, con riferimento alle metodologie generali di progetto e ai vincoli specifici derivanti dagli strumenti di sviluppo, dai linguaggi di programmazione e dalle piattaforme hardware coinvolti. Deve inoltre dimostrare di comprendere le caratteristiche fondamentali di diversi modelli di sistemi digitali e di saper individuare il modello o i modelli più appropriati per risolvere uno specifico problema di progettazione.
Capacità di applicare conoscenza e comprensione
Lo studente deve dimostrare di essere in grado di eseguire l’intero ciclo di progettazione e implementazione di sistemi digitali di base (ad es. macchine combinatorie o sequenziali notevoli) ed avanzati (macchine aritmetiche, reti di interconnessione, interfacce di I/O, processori), dalla fase di definizione dell’architettura e del comportamento funzionale alla descrizione mediante linguaggio VHDL, fino all’implementazione su dispositivi hardware programmabili (FPGA), utilizzando strumenti e ambienti di sviluppo di ampio utilizzo industriale.
PROGRAMMA-SYLLABUS
Principi di progetto di sistemi digitali: Sistemi general purpose, special purpose e embedded. Progettazione dei sistemi digitali: aspetti tecnologici, metodologici e ambienti a supporto. Il ciclo di sviluppo di un sistema digitale. I linguaggi HDL per la descrizione dell’hardware e gli ambienti di simulazione.
Richiami e approfondimenti sul progetto di macchine combinatorie: Realizzazione di funzioni booleane mediante circuiti digitali. Parametri e vincoli di progetto: ritardi, deformazioni dei segnali, dissipazioni di potenza. Minimizzazione di funzioni booleane. Progetto di macchine combinatorie notevoli (multiplexers/demultiplexer, decoder/encoder, reti di transcodifica).
Richiami e approfondimenti sul progetto di macchie sequenziali: Modelli di macchine sequenziali. Macchine impulsive, a livelli, sincrone, asincrone. Progetto di macchine sequenziali notevoli (registri, contatori).
Progetto di sistemi complessi: Modelli architetturali per lo sviluppo di sistemi complessi: sistemi di reti sequenziali, architettura a pipeline, problematiche di tempificazione, modello PO/PC, sistemi a controllo cablato e microprogrammato. Principi di progetto di un processore. Il processore MIC-1.
Protocolli e interfacce di comunicazione fra sistemi: Protocolli di comunicazione sincroni e asincroni; progetto di reti di interconnessione molti a molti; progetto e utilizzo di una interfaccia di comunicazione seriale secondo lo standard RS232.
Progetto di macchine aritmetiche combinatorie e sequenziali: Architetture parallele per addizionatori, sottrattori e moltiplicatori binari. Algoritmi ed architetture sequenziali per la moltiplicazione e la divisione.
Dispositivi per la sintesi di reti logiche: PAL, PLA, FPGA, ASIC. Approfondimento sull’architettura degli FPGA XIlinx delle famiglie Artix-7 e Spartan 3E.
Testing di sistemi digitali: Problematiche e tecniche di testing di dispositivi hardware.
Linguaggio VHDL e ambiente di sviluppo: Stili di descrizione dei sistemi digitali e principali costrutti del linguaggio a supporto. Linee guida per l’implementazione di macchine combinatorie e sequenziali notevoli. Processo di simulazione, sintesi, implementazione di un design digitale e strumenti a supporto. Timing analysis e strumenti a supporto.
MATERIALE DIDATTICO
Libro di testo: Conte, Mazzeo, Mazzocca, Prinetto. Architettura dei calcolatori. Edizioni CittàStudi. 2014. ISBN: 9788825173642.
Dispense e presentazioni fornite dal docente relative ad argomenti teorici e applicativi.
Manuali e datasheet dei dispositivi utilizzati per la sintesi dei progetti.
Codice VHDL relativo alle esercitazioni svolte in aula.
MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO
Il corso prevede circa il 70% di lezioni frontali in cui vengono affrontati gli argomenti teorici, mentre il restante 30% è riservato a lezioni pratiche ed esercitazioni riguardanti lo sviluppo di codice VHDL per l’implementazione di specifiche macchine e l’utilizzo degli ambienti di sviluppo.
La parte applicativa del corso si avvale di strumenti di sviluppo professionali di cui è disponibile una licenza ad uso gratuito e di board di sviluppo (dotate di FPGA e di diversi dispositivi di I/O) che vengono distribuiti agli studenti per l’implementazione dei propri progetti.
VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE
a) Modalità di esame:
L'esame si articola in prova: | |
Scritta e orale | |
Solo scritta | |
Solo orale | |
Discussione di elaborato progettuale | |
Altro |
In caso di prova scritta i quesiti sono (*): | |
A risposta multipla | |
A risposta libera | |
Esercizi numerici |
La verifica dell’apprendimento prevede una prova scritta consistente in esercizi di progetto di sistemi digitali e una prova orale orientata alla verifica della comprensione dei concetti teorici del corso e alla discussione di un elaborato.