Υλοποίηση αλγορίθμου Wavelets σε FPGA με τη χρήση τεχνικών High-Level Synthesis
Creators: name: Αξιώτης, Κωνσταντίνος Παναγιώτη
Publisher: name: Aristotle University of Thessaloniki
Year: 2020
Subjects: Επαναδιαμορφώσιμη Αρχιτεκτονική (FPGA)
Εργαλείο σύνθεσης ψηφιακών συστημάτων από υψηλό επίπεδο
Wavelets
FPGA
Vivado High-Level Synthesis

description: Η επεξεργασίας εικόνας καθώς και άλλες εφαρμογές που απαιτούν μεγάλη υπολογιστική ισχύει, έχουν φέρει στο προσκήνιο τον παράλληλο προγραμματισμό. Ο παράλληλος προγραμματισμός μας δίνει τη δυνατότητα να εκτελούμε πολλαπλές διεργασίες κατά την διάρκεια ενός κύκλου ρολογιού. Μία από τις συσκευές που μας επιτρέπουν να υλοποιήσουμε εφαρμογές με χρήση παράλληλου προγραμματισμού είναι το FPGA (Field Programmable Gate Array). Για τον προγραμματισμό του FPGA μέχρι πρόσφατα ήταν αναγκαία η χρήση μιας γλώσσας περιγραφής υλικού όπως η VHDL και η Verilog. Πρόσφατα, η Xilinx δημιούργησε ένα εργαλείο για τον προγραμματισμό FPGA με γλώσσα γενικού σκοπού, το Vivado High Level Synthesis (HLS). To Vivado HLS μετασχηματίζει τον κώδικα μιας γλώσσας υψηλού επιπέδου έτσι ώστε να μπορεί να προγραμματίσει ένα FPGA.Σε αυτή τη διπλωματική υλοποιούμε μία εφαρμογή για FPGA με χρήση του Vivado HLS. Συγκεκριμένα η εφαρμογή υλοποιεί έναν HAAR μετασχηματισμό wavelet πάνω σε εικόνες τριών διαστάσεων. Ζητούμενο είναι η εκμετάλλευση του παραλληλισμού που μας προσφέρει το FPGA για να πετύχουμε τις υψηλότερες δυνατές επιδόσεις. Για να εκμεταλλευτούμε τα χαρακτηριστικά του FPGA, χρησιμοποιούμε τα εργαλεία του Vivado HLS. Με σκοπό την σύγκριση και την όσο το δυνατό περισσότερων διαφορετικών υλοποιήσεων σε λιγότερο χρόνο, χρησιμοποιούμε tcl κώδικα. Με τον tcl κώδικα μπορούμε να δημιουργήσουμε projects χωρίς την χρήση Graphical User Interphase. Αυτό, ενώ για ένα project δεν είναι αποδοτικό, είναι αποδοτικότερο για περισσότερα παρόμοια μεταξύ τους project. Σε αυτή την διπλωματική, εκμεταλλευόμαστε αυτό το χαρακτηριστικό για την παραγωγή διαφορετικών υλοποιήσεων της ίδιας εφαρμογής με σκοπό την μεταξύ τους σύγκριση
description: Image processing, as well as, other applications which require substantial computational power, have made parallel programming relevant. Using parallel programming we can process multiple tasks in one clock cycle. We can create applications using parallel programming on specific devices such as the FPGA (Field Programmable Gate Array). In order to program an FPGA we need to use a hardware description language such as VHDL and Verilog. Recently, Xilinx created a platform in order to create an application for an FPGA using a general purpose programming language. The platform is the Vivado High Level Synthesis (HLS). Vivado HLS transforms the code of a high level programming language so it can program an FPGA. In this thesis, we implement an application targeting an FPGA using Vivado HLS. In particular, the application is a Haar wavelet transform for 3D. Our goal is to utilize the parallelism in order to achieve higher performance. The FPGA characteristics can be utilized using the Vivado HLS tools. In order to compare as many projects as possible, we use tcl code. By using tcl code, we can create projects with no need for Graphical User Interphase use. Although, this might not be the faster of easier way to create one project, it is faster when we create multiple projects. In this thesis, we exploit this characteristic in order to create various implementations that create the same application with the view to compere and contrast them