====== Progetto Verilog (AEb 2015/2016) ======= ==== Materiale di consultazione ==== Vedi [[verilogpag|pagina]] AE Verilog ==== Progetti disponibili (Solo Appello Novembre 2015) ==== * cache completamente associativa (16 linee da 8 parole ciascuna) * unità che controlla la presenza di dipendenze logiche fra due istruzioni D-RISC * unità che implementa una mappa con chiavi e valori da 32 bit (dimensioni della mappa: 1024 posizioni) * unità pipeline per la moltiplicazione di due numeri in virgola mobile, formato IEEE singola precisione ==== Progetti disponibili per appelli AA 2015/2016 ==== Questi progetti saranno resi disponibili entro la fine delle lezioni, presumibilmente entro la metà di dicembre. ===== Modalità di svolgimento del progetto ===== Il progetto deve procedere attraverso una serie di passi ben definiti: - 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. - Specifiche: si sviluppano le specifiche in modo da avere un chiaro quadro di quali sono i punti da trattare nel progetto - Progettazione: si progetta l'unità come si farebbe normalmente, seguendo il progedimento formale presentato nel corso - Implementazione Verilog: si procede alla implementazione in Verilog dell'unità, secondo le specifiche risultanti dalla fase di progettazione - Test bench: si implementano, in Verilog, uno o più programmi test che permettono di verificare il buon funzionamento dell'unità implementata in Verilog - 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 - la progettazione, come discussa nel corso - la realizzazione di un modulo Verilog che la implementa - 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).