La maggior parte delle CPU oggi esistenti trovano impiego nei sistemi embedded per applicazioni di elaborazione numerica dei segnali. In questo corso gli studenti impareranno i fondamenti della progettazione, interfacciamento, configurazione e programmazione di sistemi embedded basati sia su GPP che ASIP(DSP). In aggiunta, sarà dato spazio anche all'uso dei dispositivi logico programmabili in questo contesto, data la loro sempre maggior adozione. Durante le esercitazioni di laboratorio, gli studenti avranno modo di "toccare con mano" diverse piattaforme hardware largamente usate sia nel mondo accademico che in quello industriale.
Programma esteso:
- Introduzione ai sistemi embedded
- Implementazione dei sistemi digitali (logica combinatoria e sequenziale, Automi a stati finiti, implementazioni SW e HW). La tecnologia CMOS
- Rappresentazioni numeriche. Virgola fissa e virgola mobile. Notazione frazionaria
- Microprocessori, microcontrollori e DSP
- I dispositivi di memoria. La memoria cache.
- Programmazione di sistemi embedded: assembler e in C. Memory mapped I/O and Programmed I/O. Polling loop e gestione ad interrupt
- Il modello locale e remoto del dispositivo di I/O. Topologie di interconnessione. La RS232. La SPI
- I tool di programmazione. Il debugging. Analizzatori di stati logici.
- Tecnologie e dispositivi PLD
- Il VHDL - concetti base
- Il VHDL - implementazione di FSM
- Laboratorio: il uC 18F452 di Microchip, il DSP TMS320C6000 di TI, la FPGA Cyclone III di Altera e i rispettivi ambienti di sviluppo.