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.
ING - Scuola di Ingegneria Industriale e dell'Informazione
22-lug-2026
2025/2026
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.
File allegati
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.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/261147