Συστοιχία Επιτόπια Προγραμματιζόμενων Πυλών Field Programmable Gate Arrays (FPGAs)



Σχετικά έγγραφα
ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ

Κυκλωμάτων» Χειμερινό εξάμηνο

5 η Θεµατική Ενότητα : Μνήµη & Προγραµµατιζόµενη Λογική. Επιµέλεια διαφανειών: Χρ. Καβουσιανός

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2.

Μνήμη και Προγραμματίσιμη Λογική

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

Υλοποίηση μικροεπεξεργαστή σε περιβάλλον FPGA

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές...

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

, PAL PA, ΜΝΗΜΕΣ ROM)

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

Κεφάλαιο 14 ο. Γ. Τσιατούχας. VLSI Systems and Computer Architecture Lab. Σχεδιαστικές Μεθοδολογίες 2

Ψηφιακή Σχεδίαση Ενότητα 11:

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 17: Αναδιατασσόµενη Λογική Προγραµµατιζόµενο Υλικό

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Προγραμματιζόμενη Λογική Γιατί;

Α1. Προγραμματισμός Συστοιχίας Επιτόπια Προγραμματιζόμενων Πυλών - Field Programmable Gate Arrays (FPGAs).

Ψηφιακή Λογική Σχεδίαση

Παράδειγμα αντιστοίχισης κυκλώματος σε FPGA

Αρχιτεκτονική Υπολογιστών

ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες

Δομή Ηλεκτρονικού υπολογιστή

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

Μάθημα 7: Μικροϋπολογιστικό Σύστημα και Μνήμες

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Πολυπλεξία. Creative Commons License 3.0 Share-Alike

Mέσα στερεάς κατάστασης

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου

«Σχεδίαση Εφαρμογών Ψηφιακδη Συστημάτοη με τη Γλώσσα \ HDL»

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης.

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Ενσωματωμένα Συστήματα

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής»

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Πίνακας Περιεχομένων ΚΕΦΑΛΑΙΟ I ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΩΝ

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Χρ. Καβουσιανός Επίκουρος Καθηγητής

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

Εργαστήριο Ψηφιακών Κυκλωμάτων

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

ΘΕΜΑ : ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ. ΔΙΑΡΚΕΙΑ: 1 περίοδος

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή

ΡΟΜΠΟΤΙΚΗ ΟΡΑΣΗ. Όταν ένα ρομπότ κινείται σε άγνωστο χώρο ή σε χώρο που μπορεί να αλλάξει η διάταξή του τότε εμφανίζεται η ανάγκη της όρασης μηχανής.

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

i Το τρανζίστορ αυτό είναι τύπου NMOS. Υπάρχει και το συμπληρωματικό PMOS. ; Τι συμβαίνει στο τρανζίστορ PMOS; Το τρανζίστορ MOS(FET)

ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ. Δρ. Δ. Λαμπάκης (8 η σειρά διαφανειών)

ΤΕΧΝΟΛΟΓΙΕΣ ΥΛΟΠΟΙΗΣΗΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

Μνήμες RAM. Διάλεξη 12

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Τεχνολογίες Κύριας Μνήμης

Εφαρμογές μικροελεγκτών

Οργάνωση της φυσικής δομής του ολοκληρωμένου κυκλώματος

PLD. Εισαγωγή. 5 η Θεµατική Ενότητα : Συνδυαστικά. PLAs. PLDs FPGAs

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων. Διδάσκοντες

Ψηφιακή Λογική και Σχεδίαση

ΘΕΜΑ : ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ ΔΙΑΡΚΕΙΑ: 1 περιόδος. 24/11/ :09 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας

ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ

Πράξεις με δυαδικούς αριθμούς

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5. Ρυθμίζοντας τη Φορά Περιστροφής. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Ψηφιακά Κυκλώματα (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Σχετικά με το μάθημα. Ο Υπολογιστής Η γενική εικόνα. Η μνήμη. Ενότητες μαθήματος. Εισαγωγή στους Υπολογιστές. Βιβλία για το μάθημα

Σχεδιαστικά Προγράμματα Επίπλου

Βασικές Έννοιες της Πληροφορικής

Άσκηση 3 Ένα νέο είδος flip flop έχει τον ακόλουθο πίνακα αληθείας : I 1 I 0 Q (t+1) Q (t) 1 0 ~Q (t) Κατασκευάστε τον πίνακα

Εισαγωγή στους Υπολογιστές

Ενσωματωμένα Συστήματα

Transcript:

Συστοιχία Επιτόπια Προγραμματιζόμενων Πυλών Field Programmable Gate Arrays (FPGAs) Οι προγραμματιζόμενες λογικές διατάξεις (PLDs Programmable Logic Devices) είναι ψηφιακά ολοκληρωμένα κυκλώματα (ICs) που μπορούν να διαμορφωθούν από τον χρήστη και χρησιμοποιούνται για την υλοποίηση λογικών συναρτήσεων. Τα PLDs μπορούν να πραγματοποιήσουν οποιαδήποτε Boolean έκφραση ή συνάρτηση χρησιμοποιώντας τις λογικές δομές που είναι ήδη υλοποιημένες. Σε αντίθεση, τα συνήθη ολοκληρωμένα κυκλώματα, παρέχουν μια συγκεκριμένη λογική συνάρτηση που δεν μπορεί να τροποποιηθεί έτσι ώστε να ικανοποιήσει συγκεκριμένη απαίτηση σε κάποιο σχεδιασμό. Τα τελευταία χρόνια, τα PLDs αποτελούν την περισσότερο προτιμώμενη διάταξη στις εφαρμογές, καθώς το κόστος τους έχει μειωθεί σημαντικά με τη χρήση νέων τεχνολογιών. Τα PLDs προσφέρονται σε διάφορες αρχιτεκτονικές και με ένα μεγάλο πλήθος από τεχνολογίες μνημών για τον προγραμματισμό τους. Μία από τις σημαντικότερες κατηγορίες PLDs είναι τα FPGAs (Field Programmable Gate Arrays) [1]. Τα FPGAs είναι ψηφιακά ολοκληρωμένα κυκλώματα τα οποία περιέχουν προγραμματιζόμενα μπλοκ ψηφιακής λογικής [2]. Αυτά τα μπλοκ συνδέονται μεταξύ τους με την βοήθεια προγραμματιζόμενων διασυνδέσεων. Στο σχήμα 1 φαίνεται η κάτοψη μίας γενικής αρχιτεκτονικής FPGA. Σχ. 1. Γενική αρχιτεκτονική FPGA. Η διάταξη των προγραμματιζόμενων λογικών μπλοκ έχει κανονική μορφή, όμοια με αυτήν ενός διδιάστατου πίνακα. Σε ένα κανάλι διασύνδεσης υπάρχει ένας αριθμός αγωγών διασύνδεσης. Οι αγωγοί διασύνδεσης διατρέχουν οριζόντια και κάθετα το ολοκληρωμένο, διασυνδέοντας μέσω των προγραμματιζόμενων διασυνδέσεων, τα προγραμματιζόμενα λογικά μπλοκ. Με αυτόν τον τρόπο γίνεται δυνατή η υλοποίηση πολυεπίπεδων λογικών συναρτήσεων. Τα μπλοκ εισόδων/εξόδων, τα οποία σχετίζονται με τους ακροδέκτες εισόδου/εξόδου του ολοκληρωμένου, συνδέονται με τα προγραμματιζόμενα λογικά μπλοκ με αγωγούς διασύνδεσης, μέσω προγραμματιζόμενων διασυνδέσεων. Το τμήμα Field Programmable της ονομασίας τους αναφέρεται στο ότι αυτά τα ολοκληρωμένα προγραμματίζονται στο πεδίο εφαρμογής τους. Οι εταιρείες κατασκευής των FPGAs υλοποιούν τα ολοκληρωμένα έτσι ώστε να έχουν την ιδιότητα να προγραμματίζονται (προγραμματιζόμενα λογικά μπλοκ, προγραμματιζόμενες διασυνδέσεις κ.λπ.) από τον τελικό χρήστη. Η λειτουργία που θα επιτελείται από το ολοκληρωμένο καθορίζεται από τον τελικό χρήστη, ο οποίος επιλέγει τις λογικές συναρτήσεις που θα υλοποιούν τα προγραμματιζόμενα λογικά μπλοκ, τις μεταξύ τους

διασυνδέσεις και τις διασυνδέσεις των μπλοκ εισόδων/εξόδων με τα προγραμματιζόμενα λογικά μπλοκ. Η επιλογή αυτή λέγεται προγραμματισμός του FPGA και γίνεται με τη βοήθεια λογισμικού και υλικού που παρέχουν οι εταιρείες κατασκευής των FPGAs. Ο προγραμματισμός των λογικών μπλοκ αποσκοπεί στο να τα κάνει να εκτελούν τις λειτουργίες κάποιων βασικών λογικών πυλών, όπως της AND, της XOR ή και κάποιων ακόμη πιο σύνθετων συνδυαστικών συναρτήσεων, όπως αποκωδικοποιητές ή μαθηματικές συναρτήσεις. Οι πυκνότητες των λογικών πυλών στα FPGA κυμαίνονται από μερικές χιλιάδες έως μερικά εκατομμύρια λογικές πύλες. Στα περισσότερα FPGAs, τα λογικά μπλοκ περιλαμβάνουν επίσης τα στοιχεία μνήμης, τα οποία μπορούν να είναι απλά flip-flops ή πιο ολοκληρωμένα μπλοκ μνήμης. Στα πλεονεκτήματα τους περιλαμβάνονται ο μικρότερος χρόνος παραγωγής τους, η ικανότητα τους να μπορούν να αναπρογραμματίζονται, έτσι ώστε να διορθώνονται τα διάφορα σφάλματα και το μικρότερο κόστος παραγωγής [3]. Η ύπαρξη των FPGAs οφείλεται στο κενό που παρατηρήθηκε ότι υπάρχει στο φάσμα των ψηφιακών ολοκληρωμένων κυκλωμάτων στις αρχές της δεκαετίας του '90. Από την μία πλευρά υπήρχαν τα PLDs (Programmable Logic Devices), τα οποία ήταν σε πολύ μεγάλο βαθμό προγραμματιζόμενα και απαιτούσαν πολύ μικρούς χρόνους σχεδίασης (όσον αφορά την διαδικασία σχεδίαση προγραμματισμός έλεγχος διορθώσεις επαναπρογραμματισμός) αλλά αδυνατούσαν να υλοποιήσουν πολύ μεγάλες ή και πολύπλοκες λογικές συναρτήσεις. Από την άλλη πλευρά ήταν τα ASICs (Application-Specific Integrated Circuits), τα οποία μπορούσαν να υλοποιήσουν πολύ μεγάλες και πολύπλοκες λογικές συναρτήσεις αλλά ο χρόνος και το κόστος σχεδίασής τους ήταν εξαιρετικά μεγάλα. Επίσης στα ASICs η τελική σχεδίαση είναι παγωμένη στο πυρίτιο, δηλ. κατασκευάζονται άπαξ για μια συγκεκριμένη εφαρμογή και δεν υπάρχει στο εξής δυνατότητα αλλαγής της λειτουργικότητάς τους. Για να καλυφθεί αυτό το κενό στο φάσμα των ψηφιακών ολοκληρωμένων κυκλωμάτων η εταιρεία Xilinx ανέπτυξε μία νέα κατηγορία ψηφιακών ολοκληρωμένων κυκλωμάτων, τα FPGAs, τα οποία πρωτοεμφανίστηκαν στην αγορά το 1984. Ένα FPGA μπορεί να προγραμματιστεί απεριόριστες φορές και συνεπώς να αλλάζει λειτουργικότητα ανάλογα με τις εκάστοτε απαιτήσεις του χρήστη. Επιπλέον, ο προγραμματισμός ενός FPGA γίνεται σε επίπεδο ψηφιακών εξαρτημάτων και λογικών πυλών, δηλαδή ο προγραμματιστής μπορεί να διαχειρίζεται μέσω προγράμματος απευθείας το υλικό του ολοκληρωμένου κυκλώματος. Έτσι, τα κύρια συγκριτικά πλεονεκτήματα των FPGA έναντι των κυκλωμάτων ASIC και των μικροεπεξεργαστών είναι η ευελιξία τους και η ταχύτητά τους, αντίστοιχα [4]. Σχ. 2. Τυπική αρχιτεκτονική FPGA της Xilinx. 2

Τυπική εσωτερική δομή FPGA της Xilinx [4] Τα FPGA αποτελούνται από έναν αριθμό λογικών μπλοκ και από ένα πλήθος διασυνδέσεων μεταξύ των μπλοκ. Τόσο τα λογικά μπλοκ όσο και οι διασυνδέσεις είναι προγραμματιζόμενα. Έτσι, κάθε λογικό μπλοκ μπορεί να προγραμματιστεί ώστε να εκτελεί μια συγκεκριμένη λειτουργία και πολλά λογικά μπλοκ μπορούν να διασυνδεθούν μεταξύ τους για να διαμορφωθεί το τελικό κύκλωμα. Αν και υπάρχουν πολλές διαφορετικές αρχιτεκτονικές στα FPGA, η επικρατέστερη είναι αυτή που φαίνεται στο σχήμα 2. Αυτή η αρχιτεκτονική χρησιμοποιείται και στα FPGA της εταιρείας Xilinx. Όπως φαίνεται παραστατικά στο σχήμα 2, το FPGA έχει τη μορφή ενός δισδιάστατου πίνακα λογικών μπλοκ, τα οποία συνδέονται μεταξύ τους μέσω ενός πλέγματος διασυνδέσεων. Ο προγραμματισμός του FPGA καθορίζει τη λογική συμπεριφορά των μπλοκ και τις συνδέσεις που υφίστανται μεταξύ τους. Το βασικότερο και πολυπληθέστερο μπλοκ ενός FPGA ονομάζεται CLB (Configurable Logic Block) και μπορεί να υλοποιήσει ασύγχρονες ή σύγχρονες λογικές συναρτήσεις πολλών εισόδων, μνήμες RAM ή ROM, αθροιστές, shift registers, κλπ. Τα πρώτα FPGA αποτελούνταν ως επί το πλείστον από CLB. Σήμερα όμως, οι κατασκευαστές των FPGA ενσωματώνουν και πολλά άλλα λογικά μπλοκ στα προϊόντα τους, τα οποία εκτελούν εξειδικευμένες λειτουργίες, όπως μνήμες RAM, γρήγορους πολλαπλασιαστές, γεννήτριες σημάτων χρονισμού, ακόμα και πλήρεις μικροεπεξεργαστές. Το πλέγμα των διασυνδέσεων περιέχει διασυνδέσεις γενικής χρήσης, οι οποίες ενώνουν οποιαδήποτε λογικά μπλοκ μεταξύ τους, όπως επίσης και διασυνδέσεις εξειδικευμένης λειτουργικότητας. Πχ. στις οικογένειες FPGA της Xilinx υπάρχουν ειδικοί δίαυλοι για τη μεταφορά των σημάτων χρονισμού προς όλες τις περιοχές του FPGA, αποκλειστικές διασυνδέσεις υψηλής ταχύτητας μεταξύ γειτονικών μπλοκ μνήμης SRAM, κλπ. Η επικοινωνία του FPGA με τον εξωτερικό κόσμο γίνεται συνήθως μέσω ειδικών μπλοκ εισόδου-εξόδου (Input Output Blocks - IOB). Τα σύγχρονα FPGA διαθέτουν εκατοντάδες θύρες I/O και υποστηρίζουν πολλά διαφορετικά πρότυπα επικοινωνίας. Τεχνολογίες προγραμματισμού του υλικού [4] Οι επικρατέστερες τεχνολογίες προγραμματισμού των FPGA είναι οι παρακάτω: 1) Μέσω κελιών SRAM Ο προγραμματισμός κάθε σύνδεσης γίνεται αποθηκεύοντας ένα bit σε ένα κελί SRAM. Το bit αυτό οδηγεί ένα τρανζίστορ διασύνδεσης σε κατάσταση αγωγιμότητας ή αποκοπής, ενεργοποιώντας ή απενεργοποιώντας αντίστοιχα τη σύνδεση. Ο προγραμματισμός χάνεται μετά από κάθε απώλεια ισχύος, συνεπώς η τεχνική αυτή απαιτεί τη χρήση εξωτερικής μνήμης για την αποθήκευση του bitstream προγραμματισμού. 2) Fuse-antifuse Η μέθοδος αυτή χρησιμοποιεί υψηλή τάση για να μεταβάλλει την αντίσταση των συνδέσεων. Η αντίσταση κάθε σύνδεσης ρυθμίζεται να είναι είτε της τάξης των μερικών GOhms (πρακτικά ανοιχτό κύκλωμα) είτε της τάξης των μερικών Ohms (πρακτικά βραχυκύκλωμα). Το μειονέκτημα αυτής της μεθόδου είναι ότι ο προγραμματισμός είναι μόνιμος και το FPGA δεν μπορεί να επαναχρησιμοποιηθεί. 3) PROM EPROM EEPROM Flash Αυτή η μέθοδος χρησιμοποιεί τις ίδιες τεχνικές προγραμματισμού με τις τεχνολογίες των μνημών PROM EPROM EEPROM Flash και μπορεί να θεωρηθεί ότι βρίσκεται στο μέσο των δύο προηγούμενων τεχνικών. Παρέχει τόσο την ευστάθεια της fuse-antifuse όσο και την ικανότητα επανεγγραφής της SRAM. Από την άλλη, η αντίσταση των διακοπτών δρομολόγησης είναι μεγαλύτερη από αυτήν της fuse-antifuse, ενώ ο προγραμματισμός είναι πιο πολύπλοκος και χρονοβόρος από ότι αυτός της τεχνικής SRAM. 3

Τεχνολογία βασισμένη σε SRAM στοιχεία [2] Το SRAM-στοιχείο μνήμης, το οποίο χρησιμοποιείται ως δομικό στοιχείο των μνημών SRAM, φαίνεται στο σχήμα 3. Αυτό το στοιχείο μνήμης μπορεί να αποθηκεύσει πληροφορία του ενός bit. Για να εισαχθεί πληροφορία στο SRAM-στοιχείο μνήμης θα πρέπει να ενεργοποιηθεί η γραμμή Word line για ένα ορισμένο χρονικό διάστημα, τέτοιο ώστε η τιμή που βρίσκεται στη γραμμή Bit line να προλάβει να διαδοθεί μέσω των δύο αντιστροφέων που ορίζουν τον βρόχο. Η αποθηκευμένη τιμή θα παραμείνει στον βρόχο για πάντα, δεδομένου της αδιάλειπτης τροφοδοσίας, εκτός και εάν αντικατασταθεί από μία νέα τιμή, η οποία θα εισαχθεί στον βρόχο των δύο αντιστροφέων με τον τρόπο που περιγράφηκε παραπάνω. Όταν η τροφοδοσία διακοπεί, η τιμή του SRAM-στοιχείου μνήμης χάνεται. Σχ. 3. Ένα SRAM-στοιχείο μνήμης και η (ισοδύναμη) υλοποίηση με τρανζίστορ. Ένα SRAM-στοιχείο διασύνδεσης (pass-transistor switch ή SRAM switch) αποτελείται από ένα SRAM-στοιχείο μνήμης και ένα τρανζίστορ (pass-transistor). Η τιμή που αποθηκεύεται στο SRAM-στοιχείο μνήμης οδηγεί την πύλη του pass-transistor. Έτσι αναλόγως της τιμής που έχει αποθηκευτεί στο SRAM-στοιχείο μνήμης το pass-transistor λειτουργεί ως ανοικτός ή κλειστός διακόπτης. Στο σχήμα 4 φαίνεται ένα SRAM-στοιχείο διασύνδεσης. Γενικά η χρήση της τεχνολογίας SRAM έχει κάποια μειονεκτήματα και κάποια πλεονεκτήματα. Το SRAM-στοιχείο διασύνδεσης καταλαμβάνει μεγάλο χώρο στην επιφάνεια του ολοκληρωμένου γιατί αποτελείται από 6 τρανζίστορ (5 για το SRAM-στοιχείο μνήμης και 1 για pass-transistor). Σχ. 4. Ένα SRAM-στοιχείο διασύνδεσης (SRAM switch). Τα SRAM-στοιχεία μνήμης μπορούν όμως να χρησιμοποιηθούν ως latches, flip-flop ή ακόμα και ως μνήμη κατανεμημένη μέσα στο ολοκληρωμένο. Επειδή τα περιεχόμενα των SRAM-στοιχείων μνήμης χάνονται όταν διακοπεί η τροφοδοσία, το FPGA θα πρέπει να προγραμματίζεται κάθε φορά που του παρέχεται τροφοδοσία. Βέβαια, με την βοήθεια μίας εξωτερικής μνήμης EΕPROM ή FLASH, η οποία κρατάει μόνιμα το επιθυμητό πρόγραμμα, η διαδικασία προγραμματισμού του FPGA (αφού προγραμματιστεί η εξωτερική μνήμη) διαρκεί περίπου 1 με 2 δευτερόλεπτα, δίνοντας την αίσθηση ότι το FPGA είναι μόνιμα προγραμματισμένο. Γενικά ένα SRAM-based FPGA μπορεί να προγραμματίζεται σχετικά γρήγορα και επαναλαμβανόμενα, γεγονός που το 4

καθιστά ελκυστικό για την σχεδίαση νέων εφαρμογών, όπου απαιτούνται επαναλαμβανόμενες δοκιμές και διορθώσεις. Ανάπτυξη εφαρμογών στα FPGA [3] Η ανάπτυξη εφαρμογών για τα FPGA γίνεται συνήθως με τη χρήση ειδικών γλωσσών προγραμματισμού, που ονομάζονται Hardware Description Languages (HDL). Mέσω αυτών, ο προγραμματιστής μπορεί να χειριστεί ψηφιακά εξαρτήματα και σήματα. Οι πιο γνωστές γλώσσες είναι οι VHDL και Verilog. Τα τελευταία χρόνια πάντως, εκτός από τις γλώσσες HDL έχουν αναπτυχθεί σχηματικοί συντάκτες και εργαλεία προγραμματισμού υψηλού επιπέδου, τα οποία διευκολύνουν σε μεγάλο βαθμό το έργο των προγραμματιστών. Παράλληλα, διάφορες εταιρείες έχουν αναπτύξει δομές σε γλώσσες HDL, οι οποίες υλοποιούν με βέλτιστο τρόπο πολύπλοκα ψηφιακά κυκλώματα. Αυτές οι δομές λέγονται IP-cores (Intellectual Property Cores) και μπορούν να χρησιμοποιηθούν για τη μείωση του χρόνου ανάπτυξης και του ρίσκου μιας εφαρμογής καθώς και την αύξηση της απόδοσης. Εφαρμογές [3] Οι εφαρμογές των FPGAs περιλαμβάνουν ψηφιακή επεξεργασία σήματος, διαστημικές εφαρμογές και συστήματα άμυνας, αναγνώριση φωνής, κρυπτογραφία, βίο -πληροφορική, και ένα σύνολο άλλων αναπτυσσόμενων εφαρμογών. Τα FPGAs αρχικά ξεκίνησαν σαν ανταγωνιστές των PLDs. Καθώς το μέγεθος τους, η δυνατότητες και η ταχύτητα τους αυξάνονται, άρχισαν να υλοποιούν όλο και μεγαλύτερες συναρτήσεις στο επίπεδο που κάποιες να έχουν εξελιχτεί σε πλήρη συστήματα on chip (SOC). Τα FPGA βρίσκουν επίσης εφαρμογές σε περιοχές που χρησιμοποιούν μαζικό παραλληλισμό, πράγμα που προσφέρεται από την αρχιτεκτονική τους. Μια τέτοια περιοχή είναι η κρυπτανάλυση, και συγκεκριμένα η μέθοδος επίθεσης με υπολογιστική ισχύ (brute force attack) σε κρυπτογραφημένα μηνύματα. Τα FPGA έχουν αρχίσει να χρησιμοποιούνται κατά κόρον σε εφαρμογές υψηλής επίδοσης υπολογισμών, όπως Ταχύ Μετασχηματισμό Fourier (FFT) ή συνελίξεις που πραγματοποιούνται από FPGA αντί των μικροεπεξεργαστών. Η ευελιξία των FPGA δίνει την δυνατότητα για ακόμη μεγαλύτερη απόδοση, αλλάζοντας την ακρίβεια και το εύρος για έναν αυξανόμενο αριθμό παράλληλων αριθμητικών μονάδων. Αυτό έχει οδηγήσει σε έναν νέο τύπο επεξεργασίας, που ονομάζεται αναδιαμορφωμένος υπολογισμός (reconfigurable computing). Μια νέα τάση είναι ο συνδυασμός των λογικών μπλοκ και των διασυνδέσεων των παραδοσιακών FPGAs με ένθετους μικροεπεξεργαστές και περιφερειακά, για την διαμόρφωση ενός πλήρους "συστήματος σε προγραμματιζόμενο chip". Παραδείγματα αυτών των υβριδικών τεχνολογιών μπορούν να βρεθούν στις διατάξεις της Xilinx Virtex - Il Pro και Virtex - 4, που περιλαμβάνουν έναν ή περισσότερους PowerPC επεξεργαστές ένθετους στη λογική του FPGA. FPGA Εργαστηρίου Ηλεκτρονικής ΣΝ Το Εργαστήριο Ηλεκτρονικής της ΣΝ διαθέτει ένα FPGA Spartan 3A της εταιρείας Xilinx. Προτείνεται ως διπλωματική εργασία ο προγραμματισμός του για την υλοποίηση απλών ψηφιακών πυλών ή ψηφιακών κυκλωμάτων (λ.χ. καταχωρητών, πολυπλεκτών, αποκωδικοποιητών, κλπ). Στο παρακάτω σχήμα δίνεται η βασική του δομή. 5

Σχ. 5. Βασική δομή FPGA Xilinx Spartan 3A. Aναφορές [1] Εργαστήριο Ηλεκτρονικών Εφαρμογών, Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών. [2] «Yλοποίηση μικροεπεξεργαστή σε περιβάλλον FPGA», ιπλωματική Εργασία Παναγιώτη Μουσουλιώτη, Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΑΠΘ, Νοέμβριος 2011. [3] «Yλοποίηση αλγορίθμου ανίχνευσης δασικής πυρκαγιάς με χρήση οπτικής κάμερας σε κύκλωμα FPGA», ιπλωματική Εργασία Νικόλαου Σισμάνη, Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΑΠΘ, 2009. [4] «Ανάλυση του προτύπου κωδικοποίησης ομιλίας LPC-10e και υλοποίηση σε προγραμματιζόμενο κύκλωμα FPGA της οικογένειας Xilinx Virtex-4», ιπλωματική Εργασία Bασίλειου Μηλιόπουλου, Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΑΠΘ, Οκτώβριος 2010. 6