HLS (High-Level Synthesis) is a translation process from a behavioural description of an algorithm into a code which can directly be implemented on hardware. Usually, the synthesis process starts from the formal description of an algorithm through a high-level language (such as C or C ++) and then it translates that into something which best suits the circuit description, e.g., HDL (Hard-ware Description Languages). The recent diffusion of hardware technologies, in particular FPGA (Field-Programmable Gate Array), has highlighted the importance of effective method- ologies during the synthesis process. Indeed, the synthesis result can have a significant impact in determining the performance of the final circuit, in terms of latency and area. This thesis work focuses on the analysis of the intermediate representation of the input code in order to increase and optimize the overall area of the circuit by functional units sharing. Therefore, the proposed methodology starts from the analysis of the basic blocks in the program control flow. Through the use of heuristic strategies, the statements are moved (code motion) in order to facilitate the sharing (reuse) of the same functional module for different operations of the same type.

La sintesi ad alto livello (HLS) è quel processo che si occupa della traduzione da una descrizione comportamentale algoritmica in un codice che può essere direttamente implementato su hardware. Solitamente il processo di sintesi parte dalla descrizione formale di un algoritmo attraverso un linguaggio di alto livello (come il C o il C++) per poi essere tradotto in qualcosa che meglio si adatta alla descrizione di un circuito, come ad esempio, i vari linguaggi di HDL (Hardware Description Languages). La recente diffusione di tecnologie hardware, in particolare FPGA (Field-Programmable Gate Array), ha messo in luce l’importanza e il bisogno di efficaci metodologie nel processo di sintesi. Il risultato prodotto da tale processo, infatti, ha considerevole impatto nel determinare le performance del circuito finale, in termini di latenza e area. Il presente lavoro di tesi si focalizza sull’analisi della rappresentazione intermedia del codice di input al fine di incrementare ed ottimizzare l’area complessiva del circuito mediante la condivisione delle unità funzionali. La metodologia presentata parte dall’analisi dei blocchi basici all’interno del flusso di controllo del programma. Attraverso l’impiego di strategie euristiche, successivamente, vengono sfruttati approcci di spostamento delle istruzioni al fine di bilanciare la distribuzione di un tipo di operazioni all’interno del flusso. In questo modo, si favorisce, dunque, la condivisione (riuso) di uno stesso modulo funzionale per differenti operazioni compatibili.

Balancing code motion for FPGA resource reduction

FESTA, BIAGIO
2016/2017

Abstract

HLS (High-Level Synthesis) is a translation process from a behavioural description of an algorithm into a code which can directly be implemented on hardware. Usually, the synthesis process starts from the formal description of an algorithm through a high-level language (such as C or C ++) and then it translates that into something which best suits the circuit description, e.g., HDL (Hard-ware Description Languages). The recent diffusion of hardware technologies, in particular FPGA (Field-Programmable Gate Array), has highlighted the importance of effective method- ologies during the synthesis process. Indeed, the synthesis result can have a significant impact in determining the performance of the final circuit, in terms of latency and area. This thesis work focuses on the analysis of the intermediate representation of the input code in order to increase and optimize the overall area of the circuit by functional units sharing. Therefore, the proposed methodology starts from the analysis of the basic blocks in the program control flow. Through the use of heuristic strategies, the statements are moved (code motion) in order to facilitate the sharing (reuse) of the same functional module for different operations of the same type.
ING - Scuola di Ingegneria Industriale e dell'Informazione
3-ott-2017
2016/2017
La sintesi ad alto livello (HLS) è quel processo che si occupa della traduzione da una descrizione comportamentale algoritmica in un codice che può essere direttamente implementato su hardware. Solitamente il processo di sintesi parte dalla descrizione formale di un algoritmo attraverso un linguaggio di alto livello (come il C o il C++) per poi essere tradotto in qualcosa che meglio si adatta alla descrizione di un circuito, come ad esempio, i vari linguaggi di HDL (Hardware Description Languages). La recente diffusione di tecnologie hardware, in particolare FPGA (Field-Programmable Gate Array), ha messo in luce l’importanza e il bisogno di efficaci metodologie nel processo di sintesi. Il risultato prodotto da tale processo, infatti, ha considerevole impatto nel determinare le performance del circuito finale, in termini di latenza e area. Il presente lavoro di tesi si focalizza sull’analisi della rappresentazione intermedia del codice di input al fine di incrementare ed ottimizzare l’area complessiva del circuito mediante la condivisione delle unità funzionali. La metodologia presentata parte dall’analisi dei blocchi basici all’interno del flusso di controllo del programma. Attraverso l’impiego di strategie euristiche, successivamente, vengono sfruttati approcci di spostamento delle istruzioni al fine di bilanciare la distribuzione di un tipo di operazioni all’interno del flusso. In questo modo, si favorisce, dunque, la condivisione (riuso) di uno stesso modulo funzionale per differenti operazioni compatibili.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
Tesi_Biagio_Festa.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Thesis
Dimensione 404.1 kB
Formato Adobe PDF
404.1 kB 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/135994