Ottimizzazione delle prestazioni della simulazione RTL per circuiti digitali complessi

Docente

Davide Zoni (web, mail)

Area di ricerca

Architetture dei sistemi di elaborazione

Keyword (max 3 separate da virgola)

simulazione hardware, progettazione digitale, Verilog

Tecnologie da utilizzare

C++, Verilog, simulatore Icarus Verilog

Descrizione (max 500 caratteri)

La simulazione RTL (Register Transfer Level) è una fase cruciale nello sviluppo di
sistemi digitali complessi che permette di verificare il funzionamento del sistema
descritto e di identificare eventuali problemi di progettazione prima della realizzazione
fisica del circuito, consentendo quindi di correggere gli eventuali problemi rilevati prima
che il circuito venga realizzato risparmiando così tempo e costi.
La simulazione RTL prende come input una descrizione hardware a livello RTL,
specificata in un linguaggio HDL (Hardware Description Language) come Verilog o VHDL,
del comportamento desiderato dal circuito oggetto della simulazione.
La velocità e l’accuratezza di una piattaforma di verifica hardware e simulazione
sono aspetti fondamentali nel determinare il successo del progetto di un sistema digitale.

Icarus Verilog è un simulatore hardware scritto in C++ e basato su Verilog
che costituisce un’alternativa open source ai simulatori proprietari commerciali
offrendo molte delle stesse funzionalità, tra cui la capacità di eseguire la simulazione RTL,
l’analisi delle prestazioni e la verifica formale.

A partire dalla versione corrente di Icarus Verilog (LINK)
il progetto prevede le seguenti attività:

  1. Studio della tematica (documenti iniziali forniti a cura del docente) [30 ore]
  2. Comprensione dell’utilizzo di Icarus Verilog per la simulazione RTL di circuiti digitali [20 ore]
  3. Ottimizzazione delle prestazioni del simulatore RTL Icarus Verilog, implementando ad esempio un’architettura multi-threaded [40 ore]
  4. Valutazione dell’incremento prestazionale ottenuto dalle ottimizzazioni al punto 3. prendendo come benchmark un insieme eterogeneo di circuiti digitali [10 ore]
  5. Stesura del report finale [25 ore]

Prerequisiti: conoscenza di C++, non sono richieste conoscenze pregresse di progettazione hardware

Comments are closed.