In the landscape of modern computing, Field-Programmable Gate Arrays (FPGAs) play an important role as a key hardware component for enabling High-Performance Computing (HPC). The goal of FPGAs is to accelerate data-intensive tasks or parts of applications that require energy-efficient processing. FPGAs are configurable integrated circuits that can be repeatedly programmed, enabling continuous functional development and improvements without the need to replace physical components. FPGA hardware is expensive, and the most high-performance boards are tied with long procurement times, which lead to delays in development. To overcome this problem and improve the design space exploration phase of development, the need for accurate hardware simulators is higher than ever. This thesis provides an accurate and flexible CPU+FPGA system simulator that takes into consideration all the hardware limitations and software overheads that other tools fail to capture. These systems, which are composed not only of an FPGA but also of a Central Processing Unit (CPU) and a memory hierarchy, need to run not only the kernel, but also the Operating System (OS), and the host application. To aid the development of hardware designs, this work also presents itself as a tool for design space exploration, integrating High-level synthesis (HLS) tools into the simulator's workflow. Through HLS, it is possible to automatically generate different implementations of the same behavioral design, but with different characteristics, for example, the number of memory interfaces. By simulating these implementations and measuring the performance, it is possible to improve a digital design before the need to physically deploy the FPGA kernel.
Nel panorama dell'informatica moderna, i Field-Programmable Gate Array (FPGA) svolgono un ruolo essenziale come componente hardware per l'High-Performance Computing (HPC). L'obiettivo degli FPGA è accelerare task e funzioni ad alta intensità di dati o porzioni di applicazioni che richiedono un'elaborazione a alta efficienza energetica. Gli FPGA sono circuiti integrati riconfigurabili che possono essere programmati ripetutamente, consentendo uno sviluppo hardware e un miglioramento funzionale continui senza la necessità di sostituire i componenti fisici. L'hardware FPGA è costoso e le schede ad alte prestazioni sono spesso soggette a lunghi tempi di approvvigionamento, i quali portano a ritardi nello sviluppo. Per ovviare a questo problema e migliorare la fase di design space exploration durante lo sviluppo, la necessità di simulatori hardware accurati è oggi maggiore che mai. Questa tesi fornisce un simulatore di sistema CPU+FPGA flessibile e accurato, che tiene in considerazione tutte le limitazioni hardware e gli overhead software che altri tool non sono in grado di simulare. Questi sistemi, composti non solo da un FPGA ma anche da una Central Processing Unit (CPU) e da una gerarchia di memoria, devono eseguire non solo il kernel, ma anche il Sistema Operativo (OS) e l'applicazione host. Per migliorare lo sviluppo di progetti hardware, questo lavoro si presenta anche come uno strumento per la design space exploration, integrando acceleratori prodotti da High-Level Synthesis (HLS) nel workflow del simulatore. Attraverso l'HLS è possibile generare automaticamente diverse implementazioni dello stesso design, ma con caratteristiche differenti, ad esempio, il numero di interfacce di memoria. Simulando queste diverse implementazioni e misurandone le prestazioni, è possibile perfezionare un progetto hardware prima di dover effettuare il deploy fisico del kernel sull'FPGA.
Open-source full-system simulation for CPU+FPGA platforms
Spineto, Alessio
2025/2026
Abstract
In the landscape of modern computing, Field-Programmable Gate Arrays (FPGAs) play an important role as a key hardware component for enabling High-Performance Computing (HPC). The goal of FPGAs is to accelerate data-intensive tasks or parts of applications that require energy-efficient processing. FPGAs are configurable integrated circuits that can be repeatedly programmed, enabling continuous functional development and improvements without the need to replace physical components. FPGA hardware is expensive, and the most high-performance boards are tied with long procurement times, which lead to delays in development. To overcome this problem and improve the design space exploration phase of development, the need for accurate hardware simulators is higher than ever. This thesis provides an accurate and flexible CPU+FPGA system simulator that takes into consideration all the hardware limitations and software overheads that other tools fail to capture. These systems, which are composed not only of an FPGA but also of a Central Processing Unit (CPU) and a memory hierarchy, need to run not only the kernel, but also the Operating System (OS), and the host application. To aid the development of hardware designs, this work also presents itself as a tool for design space exploration, integrating High-level synthesis (HLS) tools into the simulator's workflow. Through HLS, it is possible to automatically generate different implementations of the same behavioral design, but with different characteristics, for example, the number of memory interfaces. By simulating these implementations and measuring the performance, it is possible to improve a digital design before the need to physically deploy the FPGA kernel.| File | Dimensione | Formato | |
|---|---|---|---|
|
Open_source_Full_System_simulation_for_CPU_FPGA_platforms.pdf
accessibile in internet per tutti
Descrizione: Testo della tesi
Dimensione
3.42 MB
Formato
Adobe PDF
|
3.42 MB | Adobe PDF | Visualizza/Apri |
|
Executive_Summary___Open_source_full_sytem_simulation_for_CPU_FPGA_platforms.pdf
accessibile in internet per tutti
Descrizione: Executive summary
Dimensione
1.41 MB
Formato
Adobe PDF
|
1.41 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/261147