Table of Contents

Progetto Verilog

Anche per l'anno accademico 2012-2013, per il solo CorsoB, è possibile realizzare un progetto in Verilog che vale come prova scritta.

Su questa pagine sono riassunte tutte le informazioni utili per lo svolgimento del progetto. Le informazioni relative all'utilizzo di Verilog sono invece disponibili su questa pagina sul didawiki. Le slide utilizzate a lezione per la presentazione/introduzione all'utilizzo del Verilog sono invece disponibili a questo link

Blog/FAQ

Su questo link trovate una pagina con alcune delle domande ricorrenti relative all'uso di Verilog per il progettino di AE.

Argomenti dei progetti

Questa è la lista degli argomenti che si possono scegliere per il progetto:

  1. MMU con memoria associativa da 32 posizioni
  2. Cache ad accesso diretto: 8 parole per blocco, 64 blocchi
  3. Cache associativa su insiemi: 64 insiemi da 2 blocchi, 8 parole per blocco, rimpiazzamento pseudo-LRU con bit di accesso
  4. Unità IM del processore pipeline.
  5. Unità EU slave per la moltiplicazione di numeri in virgola mobile (pipeline)
  6. Unità buffer (buffer da 1K posizioni da una parola ciascuna, scritture da U0 e letture da U1, entrambe unità esterne)
  7. Unità che identifica le dipendenze logiche in un buffer di K istruzioni D-RISC
  8. Unità interruzioni (K dispositivi di I/O)

Per ciascuno degli argomenti, alcune caratteristiche non sono specificate. E' parte integrante del progetto completare le specifiche in modo consistente con gli argomenti sviluppati a lezione e/o con il materiale didattico utilizzato per il corso.

Per i progetti più complessi alcune sottocomponenti possono essere inizialmente realizzate in modo semplificato. Ad esempio, nel realizzare l'unità IM, l'intera MMUistruzioni potrà essere inizialmente realizzata con un semplice modulo memoria contenente tutte le informazioni necessarie al calcolo degli indirizzi fisici. Una volta che l'unità IM è stata realizzata e testata, lo studente discuterà con il docente se realizzare anche in modo dettagliato i moduli “semplificati”.

Modalità di svolgimento del progetto

Il progetto deve procedere attraverso una serie di passi ben definiti:

  1. Scelta dell'argomento: si concorda con il docente un argomento del progetto scelto nella lista dei progetti (vedi sopra). La scelta avviene inviando al docente un'email con subject “Richiesta progetto Verilog AEb”, con il tema scelta. Seguirà mail di conferma. La lista dei progetti scelti sarà pubblicata su questa pagina.
  2. Specifiche: si sviluppano le specifiche in modo da avere un chiaro quadro di quali sono i punti da trattare nel progetto
  3. Progettazione: si progetta l'unità come si farebbe normalmente, seguendo il progedimento formale presentato nel corso
  4. Implementazione Verilog: si procede alla implementazione in Verilog dell'unità, secondo le specifiche risultanti dalla fase di progettazione
  5. Test bench: si implementano, in Verilog, uno o più programmi test che permettono di verificare il buon funzionamento dell'unità implementata in Verilog
  6. Relazione: si prepara una relazione sintetica (max 10 pagine) in cui
    • si descrivono le specifiche dell'unità
    • si descrivono le principale scelte di progettazione
    • si descrivono i passi necessari a testare il progetto

Il progetto si conclude con l'invio al docente via email, in un giorno qualunque di uno degli appelli di esame dell'anno accademico, della relazione e del file tar.gz (o .zip) con tutti i sorgenti, eventuali makefile e programmi di test sviluppati per il progetto.

Modalità di progettazione di una unità firmware

Il workflow di progettazione delle unità fw in Verilog comprede

  1. la progettazione, come discussa nel corso
  2. la realizzazione di un modulo Verilog che la implementa
  3. la realizzazione di un testbench Verilog (modulo senza parametri che istanzia una o più copie della unità progettata e sottopone una serie di output che dovrebbero portare ad output diversi da parte dell'unità firmware) volto a dimostrare la funzionalità dell'unità stessa.

Eventuali moduli Verilog privi del loro testbech non verranno considerati validi. In caso di unità composte da più sotto-unità, ciascuna delle sotto-unità dovrà essere dotata di un proprio testbench.

Esame

Una volta consegnato il progetto, lo studente riceverà un'email con la convocazione per l'esame orale (approssimativamente nel giro di una settimana). L'esame consisterà in una discussione del progetto (demo, con un terminale alfanumerico su una macchina con installazione iverilog/gtkwave standard, con eventuale richiesta di modifiche o commenti al codice Verilog) della durata di ca. 15-20 minuti seguita dal tradizionale “orale” sugli argomenti del corso.

In qualunque momento, lo studente può decidere di ritornare alla modalità classica di svolgimento dell'esame (prova scritta + prova orale).

Lista dei progetti già assegnati

Studente Progetto Consegnato
Bacciarelli Unità IM x
Caselli Cache set associativa
Ceccotti Cache ad accesso diretto
Ferrari Unità IM
Forti Cache ad accesso diretto
Marotta Cache ad accesso diretto
Menegotti Unità che identifica le dipendenze logiche in un buffer di K istruzioni D-RISC
Pieretti MMU
Ruvolo Cache set associativa