Introduzione al corso

Obiettivi dell'insegnamento

Lo scopo dell'insegnamento è fornire le basi della progettazione a livello logico delle reti combinatorie e delle reti sequenziali che costituiscono i componenti fondamentali dei sistemi digitali. Si forniscono le metodologie e le tecniche di progetto necessarie alla realizzazione e ottimizzazione di circuiti combinatori e sequenziali. Vengono inoltre presentati i più comuni blocchi funzionali programmabili utilizzati nella sintesi dei circuiti digitali e vengono approfondite le strutture più utilizzate nella realizzazione dei blocchi dedicati alle operazioni di tipo aritmetico.

L'insegnamento introduce anche gli strumenti concettuali e di progetto che sono alla base della sintesi logica automatizzata, utilizzando il VHDL come linguaggio di descrizione del sistema digitale.

Risultati di apprendimento attesi

Conoscenza e Comprensione (DdD1):

  • Conosce e comprende i principi fondamentali dei sistemi digitali 
  • Conosce e comprende le tecniche per la realizzazione e ottimizzazione di circuiti digitali combinatori e a stati finiti
  • Conosce e comprende il funzionamento dei principali blocchi funzionali presenti all’interno di un calcolatore (aritmetici, di memorizzazione, di smistamento, ...)
  • Conosce e comprende gli elementi concettuali che sono alla base  degli strumenti per la progettazione automatica dei circuiti e sistemi logici digitali

Capacità di applicare conoscenza e comprensione (DdD2): 

  • Lo studente è in grado di progettare e ottimizzare reti logiche combinatorie e macchina a stati finiti
  • Lo studente è in grado di comprendere il funzionamento di una rete logica digitale progettata da qualcun altro
  • Lo studente è in grado di trasformare i requisiti di un progetto digitale in un circuito 

Capacità di apprendimento (DdD5): 

  • Lo studente è in grado di apprendere in maniera autonoma il funzionamento di altri blocchi aritmetici
  • Lo studente è in grado di apprendere autonomamente le tecniche avanzate di progettazione e ottimizzazione delle reti logiche

Argomenti trattati

  1. Il livello logico digitale: progetto di reti combinatorie
    1.1  Sintesi combinatoria: introduzione alla minimizzazione e cenni ai criteri di costo
    1.2  Minimizzazione esatta: Quine McCluskey a singola uscita e a più uscite
    1.3  Cenni alla sintesi euristica di funzioni a 2 livelli
    1.4  Cenni alla sintesi multilivello
    1.5  ROM, PAL, PLA: architetture e sintesi
  2. Aritmetica del calcolatore
    2.1  Notazione e aritmetica in virgola fissa e in virgola mobile
    2.2  Architetture di sommatori e di moltiplicatori
  3. Il livello logico digitale: progetto di reti sequenziali sincrone
    3.1  Introduzione ai circuiti sequenziali: il concetto di stato, macchine sincrone e asincrone
    3.2  Elementi di memoria sincroni a livello e sul fronte  D, RS, JK e T
    3.3  Le macchine a stati finiti: il modello generale di macchina sequenziale sincrona
    3.4  Sintesi di macchine a stati finiti
    3.5  Minimizzazione del numero degli stati
  4. Introduzione al progetto automatizzato di architetture digitali
    4.1  Il flusso di progettazione di architetture hardware
    4.2  Il linguaggio VHDL per la descrizione di architetture hardware

Prerequisiti

Avere le conoscenze del corso di Architetture dei Calcolatori e Sistemi Operativi

Modalità di valutazione

Le prove d’esame sono costituite da verifica scritta con eventuale discussione orale (con verifica scritta sufficiente) solo su richiesta del docente. La prova scritta prevede la risoluzione di problemi numerici, esercizi di tipo progettuale e domande di carattere teorico su argomenti trattati nel corso. (DdD1, DdD2, DdD5)

In sede d'esame lo studente deve dimostrare di essere in grado di:

  • progettare e ottimizzare reti logiche combinatorie (DdD2)
  • conoscere gli algoritmi di progettazione e ottimizzazione di reti combinatorie (DdD1, DdD5)
  • progettare macchine a stati finiti (DdD2)
  • conoscere gli algoritmi di progettazione e ottimizzazione di macchine a stati finiti (DdD1, DdD2)
  • comprendere il funzionamento di una rete logica digitale progettata da qualcun altro (DdD1, DdD5)
  • conoscere il funzionamento dei principali blocchi aritmetici (DdD1, DdD5)
  • trasformare i requisiti di un progetto digitale in un circuito (DdD1, DdD2, DdD5)