Salta ai contenuti. | Salta alla navigazione

Strumenti personali

PROGETTO AUTOMATICO DI SISTEMI DIGITALI

Anno accademico e docente
Non hai trovato la Scheda dell'insegnamento riferita a un anno accademico precedente? Ecco come fare >>
English course description
Anno accademico
2022/2023
Docente
MICHELE FAVALLI
Crediti formativi
6
Periodo didattico
Secondo Semestre
SSD
ING-INF/05

Obiettivi formativi

Conoscenze

Obbiettivo principale del corso è fornire le basi neccessarie per approfondire la conoscenza degli algoritmi utilizzati nella progettazione e collaudo di sistemi digitali ai fini di: i) utilizzare correttamente tali strumenti sfruttandone al meglio le possibilità offerte per lo sviluppo di architetture digitali; ii) acquisire la capacità di progettare algoritmi che consentano di risolvere problemi specifici nell'ambito della progettazione e collaudo dei sistemi digitali. Obbiettivo secondario, implicito negli argomenti trattati, è introdurre le architetture e le tecnologie utilizzate nei moderni sistemi digitali.



Abilità

Utilizzo ragionato di strumenti per la sintesi e l'ottimizzazione di circuiti digitali. Tale capacità non riguarda soltanto la sintesi funzionale, ma anche l'ottimizzazione di prestazioni e costi e l'analisi dei risultati degli strumenti di progetto.
Capacità di sviluppare o implementare algoritmi per problemi specifici di sintesi e collaudo di sistemi digitali.

Prerequisiti

Si richiede una conoscenza approfondita degli argomenti di reti logiche trattati nel corso di "Analisi e sintesi dei circuiti digitali". Sono poi richieste conoscenze relative all'elettronica digitale ("Elettronica digitale"), all'architetura dei calcolatori elettronici ("Calcolatori elettronici") e la capacità di utilizzare efficentemente un linguaggio di programmazione.

Contenuti del corso

Problemi e algoritmi utilizzati nella sintesi e ottimizzazione dei circuiti digitali descritti al livello logico:

Introduzione alla sintesi e ottimizzazione dei circuiti integrati digitali
a) Cenni di algoritmi di sintesi per reti a 2 livelli (PLA e nano-fabric)
b) Algoritmi di sintesi per reti multilivello:
b.1) Metodologie technology independent
b.2) rappresentazione dei circuiti (grafi, BDD)
principali trasformazioni
b.3) tecniche algebriche
b.4) tecniche booleane
b.5) utilizzo delle condizioni di indifferenza (CDC e ODC)
c) Algoritmi per il technology mapping
d) Algoritmi per l'ottimizzazione di macchine a stati finiti
d.1) ottimizzazione del numero di stati
d.2) ottimizzazione della codifica

Problemi e algoritmi utilizzati nel collaudo e verifica dei sistemi digitali:

Tecniche di verifica formale
a) Combinational equivalence checking con Boolean Satisfiability.
b) Model checking
Modellistica e simulazione di guasto
a) modelli di guasto per circuiti CMOS
a.1) algoritmi di simulazione di guasto
a.2) guasti transitori
b) Generazione di vettori di collaudo
b.1) metodi strutturali
b.2) metodi basati su Boolean satisfiability
c) Cenni di progettazione orientata al collaudo
c.1) scan-design e algoritmi per l'inserzione di scan-path
c.2) built-in self-test
d) Cenni di sistemi digitali affidabili:
d.1) sistemi self-checking
d.2) sistemi fault tolerant

Metodi didattici

Il corso consiste di lezioni frontali di carattere teorico e di esercitazioni di laboratorio. Gli aspetti teorici e gli algoritmi illustrati nell'ambito delle lezioni teoriche vengono poi applicati, utilizzando strumenti di progettazione di sistemi digitali di tipo open-source, nelle esercitazioni di laboratorio. Le lezioni sono organizzate in due parti, nella prima si trattano gli argomenti legati alla sintesi di sistemi digitali e nella seconda quelli relativi al collaudo.

Modalità di verifica dell'apprendimento

L'esame consiste di: 1) una prova orale il cui compito è verificare la comprensione degli argomenti trattati durante le lezioni frontali e il laboratorio (punti 14); 2) un progetto, nel quale viene verificata la capacità dello studente di analizzare un problema relativo alla sintesi e al collaudo dei sistemi digitali, approfondirne una possibile soluzione (proposta dal docente), implementarla in uno strumento software e validarlo rispetto a un insieme di benchmark (punti 18).

Ciascun progetto (le specifiche sono fornite dal docente) consiste di: a) una relazione contenente: la descrizione del problema, la descrizione della metodologia seguita per risolverlo, una breve descrizione del codice e delle modalita' di compilazione e utilizzo e i risultati su un sottoinsieme di benchmark; b) il codice sviluppato.

L'esame finale si considera superato se lo studente raggiunge una valutazione sufficiente in entrambe le prove: 6/11 punti nella prima e 12/22 nella seconda. In tale caso la valutazione è data dalla somma dei due punteggi.

Il superamento dell'esame è prova di aver acquisito le conoscenze e le abilità specificate negli obiettivi formativi dell'insegnamento.

Testi di riferimento

Dispense fornite dal docente e disponibili sul sito web del corso.