Ρ203 – Σχεδίαση Συστημάτων Υψηλών Επιδόσεων (FPGAs, DSPs, GPUs)

Εβδομαδιαίες ώρες διδασκαλίας: 3

Τυπικό εξάμηνο διδασκαλίας: 2ο Εξάμηνο

Διδασκαλίας:

Ενδεικτικά προαπαιτούμενα:

Διδακτικές Μονάδες: 7.5

Σκοπός και στόχοι του μαθήματος:

Σκοπός του μαθήματος είναι να εισαγάγει τους φοιτητές στις έννοιες της παράλληλης επεξεργασίας για επιτάχυνση εφαρμογών επεξεργασίας σήματος, με χρήση εξειδικευμένου υλικού, όπως FPGAs και GPUs. Αναπτύσσονται παραδείγματα εφαρμογών σε περιβάλλον ρομποτικών συστημάτων. Γίνεται αναφορά σε ειδικούς επεξεργαστές DSP, στα συστήματα σε chip (SoC) και σε μονάδες Επεξεργασίας Γραφικών (GPUs). Το μάθημα ολοκληρώνεται με ανάπτυξη εφαρμογών στο εργαστήριο, με χρήση εργαλείων όπως Quartus II και CUDA.

Τύπος Μαθήματος: Υποχρεωτικό

Κατεύθυνση:

  • Επισκόπηση των επεξεργαστών ψηφιακού σήματος. Εφαρμογές επεξεργαστών ψηφιακού σήματος στη Ρομποτική.

  • Εισαγωγή στις διατάξεις FPGAs και CPLDs. Κύκλος σχεδίασης συστημάτων. Εργαστηριακό παράδειγμα με το Quartus II.

  • Χρήση του MATLAB για σχεδίαση εφαρμογών σε πλατφόρμες FPGA. Εργαστηριακή υλοποίηση κυκλωμάτων.

  • Γλώσσες περιγραφής υλικού. Σχεδίαση κυκλωμάτων με τη γλώσσα VHDL. Εργαστηριακή υλοποίηση συνδυαστικών και ακολουθιακών κυκλωμάτων.

  • Εργαστηριακή υλοποίηση απλών ελεγκτών σε γλώσσα περιγραφής υλικού.

  • Σχεδίαση ψηφιακών φίλτρων FIR. Σχεδίαση επιταχυντών DSP σε γλώσσα περιγραφής υλικού. Εργαστηριακή εφαρμογή: σχεδίαση απλού ανιχνευτή γωνιών σε video.

  • Εισαγωγή στον παράλληλο προγραμματισμό με την χρήση επεξεργαστών γραφικών. Εισαγωγή στην πλατφόρμα CUDA (Compute Unified Device Architecture) της NVIDIA.

  • Προγραμματισμός σε CUDA με το MATLAB, εργαστηριακά παραδείγματα.

  • Υλοποίηση απλού project ρομποτικής σε CUDA.

Βιβλιογραφία:

1. “Circuit Design and Simulation with VHDL”, V. Pedroni, 2nd Edition, MIT Press.
2. “Digital Signal processing with Field Programmable Gate Arrays”, Meyer-Baese, Springer.
3. “Embedded SoPC design with Nios II Processor and VHDL examples”, Pong Chu, Wiley.
5. “Εισαγωγή στη VHDL”, Ιωάννη Καλόμοιρου, Σημειώσεις.
6. “Programming on Parallel machines”, Norm Matloff, open access.
7. “Programming Massively Parallel Processors”, David Kirk, Wen-mei W. Hwu, Morgan Kaufmann, 2010.
8. "The CUDA Handbook: A Comprehensive Guide to GPU Programming", Nicholas Wilt, 2011.