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



Σχετικά έγγραφα
ΔΙΕΡΕΥΝΗΣΗ ΕΝΑΛΛΑΚΤΙΚΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΩΝ FPGA ΜΕ ΤΗ ΒΟΗΘΕΙΑ ΤΟΥ MEANDER FRAMEWORK

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

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

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

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

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

Εισαγωγή στα κυκλώµατα CMOS 2

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

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

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

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

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

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ

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

Συστήματα σε Ολοκληρωμένα Κυκλώματα

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

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

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

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

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

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

Πανεπιστήµιο Αιγαίου Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων. 3η Άσκηση Logical Effort - Ένα ολοκληρωµένο παράδειγµα σχεδίασης

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

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

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

Τεχνικές βελτιστοποίησης µε σκοπό την επίτευξη χαµηλής κατανάλωσης ισχύος

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

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

Προγραµµατισµός Συστηµάτων Πραγµατικού Χρόνου

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

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

Εργαστηριακή άσκηση. Θεωρητικός και πρακτικός υπολογισμός καθυστερήσεων σε αναστροφείς CMOS VLSI

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

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

Κεφάλαιο 7 ο. Γ. Τσιατούχας. VLSI Technology and Computer Architecture Lab. Ακολουθιακή Λογική 2

Μικροηλεκτρονική - VLSI

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

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

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

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

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

Μικροηλεκτρονική - VLSI

Κυκλώµατα CMOS και Λογική Σχεδίαση 2

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

ΑΣΚΗΣΗ 7. ΘΕΜΑ 1ο MINORITY A B C. C out

ΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙ ΙΟ ΓΙΑ ΣΧΕ ΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL

ΑΡΧΕΣ ΣΧΕΔΙΑΣΗΣ FPGA

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών &

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

Συστήματα VLSI. Εισαγωγή. Γιώργος Δημητρακόπουλος. Δημοκρίτειο Πανεπιστήμιο Θράκης. Άνοιξη 2014

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

7 η διάλεξη Ακολουθιακά Κυκλώματα

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

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

Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία. Φοιτητής: ΤΣΟΥΛΑΣ ΧΡΗΣΤΟΣ

Περιεχόµενα. Πρόλογος Εισαγωγή 21

Καταστάσεων. Καταστάσεων

Αποκωδικοποιητές Μνημών

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

8.1 Θεωρητική εισαγωγή

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

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

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

ΑΣΚΗΣΗ 2 η N-MOS ΚΑΙ P-MOS TRANSISTOR ΩΣ ΔΙΑΚΟΠΤΗΣ

Διαφορές single-processor αρχιτεκτονικών και SoCs

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

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

VHDL Εισαγωγικές έννοιες

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

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

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

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL

Μικροηλεκτρονική - VLSI

Προγραµµατιζόµενες Συσκευές. Χρ. Καβουσιανός

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΒΑΣΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ ΜΙΚΡΟΗΛΕΚΤΡΟΝΙΚΗ

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

Εισαγωγή στην Αρχιτεκτονική Η/Υ

Εφαρµογές Υπολογιστών Βασίλης Μπλιάµπλιας Γεωργία Τσούτσου Γιώργος Συνάπαλος

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

Κεφάλαιο 10 ο. Γ. Τσιατούχας. VLSI Systems and Computer Architecture Lab. Ακολουθιακή Λογική 2

Σχεδίαση κυκλωμάτων ακολουθιακής λογικής

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Καθυστέρηση στατικών πυλών CMOS

Κτίρια nζεβ και προσομοίωση με την χρήση του energy+

ΚΕΦΑΛΑΙΟ Συνδυαστικά Κυκλώµατα. 3.2 Σχεδιασµός Συνδυαστικής Λογικής 3.3 ιαδικασία Ανάλυσης 3.4 ιαδικασία Σχεδιασµού.

4/10/2008. Στατικές πύλες CMOS και πύλες με τρανζίστορ διέλευσης. Πραγματικά τρανζίστορ. Ψηφιακή λειτουργία. Κανόνες ψηφιακής λειτουργίας

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

ς Ποιότητα ξιολόγηση Α

Εκτέλεση πράξεων. Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική. Πράξεις με δυαδικούς αριθμούς. Πράξεις με δυαδικούς αριθμούς

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

Ψηφιακά Ηλεκτρονικά. Μάθηµα 5ο.. Λιούπης

Transcript:

ΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΞΑΝΘΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΤΕΧΝΟΛΟΓΙΑΣ ΗΛΕΚΤΡΟΤΕΧΝΙΚΩΝ & ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΛΙΚΩΝ ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΙΚΗΣ ΟΜΙΚΗΣ ΜΟΝΑ ΑΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΕΡΓΑΛΕΙΩΝ ΣΧΕ ΙΑΣΜΟΥ ΓΙΑ ΕΝΣΩΜΑΤΩΜΕΝΟ FPGA ΜΕΤΑΠΤΥΧΙΑΚΗ ΙΑΤΡΙΒΗ ΣΤΟΝ ΤΟΜΕΑ ΕΙ ΙΚΕΥΣΗΣ: ΤΕΧΝΟΛΟΓΙΕΣ ΣΥΣΤΗΜΑΤΩΝ ΜΙΚΡΟΗΛΕΚΤΡΟΝΙΚΗΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΚΩΝΣΤΑΝΤΙΝΟΥ Σ. ΣΙΩΖΙΟΥ ΗΛΕΚΤΡΟΛΟΓΟΥ ΜΗΧΑΝΙΚΟΥ ΚΑΙ ΜΗΧΑΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΩΝ ΕΠΙΒΛΕΠΩΝ ΕΠΙΚΟΥΡΟΣ ΚΑΘΗΓΗΤΗΣ ΗΜΗΤΡΙΟΣ ΣΟΥΝΤΡΗΣ ΞΑΝΘΗ 2003

Αφιερώνεται στους γονείς µου και στην αδερφή µου

ΠΕΡΙΛΗΨΗ ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΙΚΗΣ ΟΜΙΚΗΣ ΜΟΝΑ ΑΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΕΡΓΑΛΕΙΩΝ ΓΙΑ ΕΝΣΩΜΑΤΩΜΕΝΟ FPGA Οι διατάξεις πυλών προγραµµατιζόµενων πεδίων (FPGA) αποτελούν µια σηµαντική τεχνολογία, η οποία επιτρέπει στους σχεδιαστές κυκλωµάτων την παραγωγή συγκεκριµένου σκοπού ολοκληρωµένων κυκλωµάτων µε µικρό χρόνο κατασκευής. Μέχρι στιγµής έχουν γίνει αρκετές αξιόλογες προσπάθειες για το σχεδιασµό ενός FPGA σε ακαδηµαϊκό επίπεδο, η καθεµία από τις οποίες εµφανίζει πλεονεκτήµατα και µειονεκτήµατα. Πολλές από αυτές εµφανίζουν ως χαρακτηριστικά γνωρίσµατα την χαµηλή κατανάλωση ισχύος καθώς και το µικρό χρονικό διάστηµα που απαιτείται για τον επαναπρογραµµατισµό τους. Ο στόχος της παρούσας µεταπτυχιακής διατριβής είναι διττός, και περιλαµβάνει το σχεδιασµό της βασικής δοµικής µονάδας µιας διάταξης FPGA και την ανάπτυξη κατάλληλων εργαλείων, εύχρηστα προς τον µη-εξοικειωµένο χρήστη, τα οποία να µπορούν να προγραµµατίσουν ένα ενσωµατωµένο FPGA. Αναλυτικότερα, στο πρώτο µέρος της εργασίας περιγράφεται ο σχεδιασµός της βασικής δοµικής µονάδας του FPGA σε τεχνολογία 0.18µm ST Microelectronics. Κατά το στάδιο αυτό έχουν ληφθεί υπόψη ορισµένοι παράµετροι οι οποίοι επηρεάζουν σε µεγάλο βαθµό την τελική απόδοση της υπο-σχεδίαση βασικής δοµικής µονάδας. Μεταξύ αυτών ήταν η επιλογή του µεγέθους της συστοιχίας για τη βελτιστοποίηση της καταναλισκόµενης ισχύος, η χρησιµοποίηση όσο το δυνατόν µεγαλύτερου ποσοστού του υλικού, ο βέλτιστος λόγος απόδοσης προς κατανάλωση για τα στοιχεία που απαρτίζουν τη βασική δοµική µονάδα, καθώς επίσης και η χρήση τεχνικών χαµηλής κατανάλωσης ισχύος σε επίπεδο κυκλώµατος στο σχεδιασµό του κάθε στοιχείου. Η βασιµότητα των επιλογών που πραγµατοποιήθηκαν κατά το στάδιο της σχεδίασης, αποδεικνύεται από τις µετρήσεις που αφορούν διάφορες παραµέτρους του υλικού της βασικής δοµικής µονάδας. Η δεύτερη ενότητα της εργασίας περιλαµβάνει την ανάπτυξη εύχρηστων εργαλείων για τον προγραµµατισµό του ενσωµατωµένου FPGA. Για το σκοπό αυτό, επιλέχθηκαν ορισµένα εργαλεία πάνω στα οποία θα στηριζόταν η σχεδιαστική ροή (VHDL_Parser, E2FMT, T-VPack, VPR, Power Model), τα οποία στη συνέχεια τροποποιήθηκαν κατάλληλα. Παράλληλα για τις ανάγκες της ολοκληρωµένης σχεδιαστικής ροής, έπρεπε να υλοποιηθούν πλήρως µερικά νέα σχεδιαστικά εργαλεία (DEMORALIZER, DEFILER, DAFT, DAGGER). Όλα τα εργαλεία που χρησιµοποιούνται για τον προγραµµατισµό της διάταξης του FPGA είναι ανεξάρτητα της τεχνολογίας του FPGA. Τέλος αναπτύχθηκε το γραφικό περιβάλλον εργασίας των εργαλείων και έχουν συγγραφεί εγχειρίδια χρήσης για όλα τα εργαλεία που αποτελούν την προτεινόµενη σχεδιαστική ροή. 1

Τόσο ο σχεδιασµός της βασικής δοµικής µονάδας, όσο και η ανάπτυξη των εργαλείων για τον προγραµµατισµό της διάταξης του FPGA αποτελούν µέρος του Ευρωπαϊκού ερευνητικού προγράµµατος IST-2001-34379 AMDREL Architectures and Methodologies for Dynamic Reconfigurable Logic (http://vlsi.ee.duth.gr/amdrel). Πιο συγκεκριµένα, η εργασία αναφορικά µε το σχεδιασµό της βασικής δοµικής µονάδας αποτελεί τµήµα του TASK 4.2 το οποίο πραγµατεύεται το σχεδιασµό και την υλοποίηση ενός λεπτόκοκκου επαναδιαµορφώσιµου υλικού µε ικανοποιητικά χαρακτηριστικά σε θέµατα κατανάλωσης ισχύος. Αντίστοιχα τα εργαλεία αποτελούν µέρος του TASK 4.3 που ως στόχο έχει την ανάπτυξη σχεδιαστικών εργαλείων τα οποία να υποστηρίζουν το λεπτόκοκκο επαναπροσδριορίσιµο υλικό που προκύπτει από το TASK 4.2. 2

ABSTRACT ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΙΚΗΣ ΟΜΙΚΗΣ ΜΟΝΑ ΑΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΕΡΓΑΛΕΙΩΝ ΓΙΑ ΕΝΣΩΜΑΤΩΜΕΝΟ FPGA The FPGAs provide a significant technology that permits the designers to produce specific application chips in a reasonable time to market. Until now, there have been many admirable attempts to design an academic efficient FPGA. Each one of them has advantages and disadvantages. Most of them aim at low-power consumption, as well as the short reconfiguration time. The goal of this project is double. The first one is to design a competitive configurable logic block (CLB), while the other is the development of a tool chain that will be capable to program the proposed CLB. The first part of the thesis describes the FPGA s Configurable Logic Block at 0.18µm ST Microelectronics technology. During this stage a lot of parameters that affect the CLB s efficiency were taken in consideration. Among them is the appropriate cluster size in order to minimize power consumption, the best performance to power consumption ratio for all the elements of the CLB, as well as the use of low-power techniques at the component design whenever this is possible. The reliability of the choices that were made during the design was proven by the experimental results for the CLB s efficiency. The second part of the thesis involves the development of easy to use tools capable of programming an FPGA consisting of the proposed CLB, with a user specified circuit described in VHDL. For this reason, some existing tools (VHDL_Parser, E2FMT, T-VPack, VPR, and PowerModel) were chosen. These tools were appropriately modified in order to meet the requirements of the design flow. In addition to that, some new tools (DEMORALIZER, DEFILER, DAFT, DAGGER) that complement the proposed design flow were designed and implemented. Finally, a Graphical User Interface (GUI) for those tools was developed and manuals for all the tools were prepared. Both the design of the Configurable Logic Block, as well as the development of the new tools (or the modification of the existing ones) are part of the European Research Project IST-2001-34379 Architectures and Methodologies for Dynamic Reconfigurable Logic (http://vlsi.ee.duth.gr/amdrel) with the acronym AMDREL. In more detail, the design of the Configurable Logic Block is part of the TASK 4.2 which involves the design and implementation of a fine-grain reconfigurable hardware with satisfactory power consumption. Respectively, the development of the tool chain, as well as the Graphical User Interface, is part of the TASK 4.3. 3

4

ΠΡΟΛΟΓΟΣ ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΙΚΗΣ ΟΜΙΚΗΣ ΜΟΝΑ ΑΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΕΡΓΑΛΕΙΩΝ ΓΙΑ ΕΝΣΩΜΑΤΩΜΕΝΟ FPGA Το θέµα της µεταπτυχιακής διατριβής είναι Σχεδιασµός Βασικής οµικής Μονάδας και Ανάπτυξη Εργαλείων Σχεδιασµού για Ενσωµατωµένο FPGA. Η εκπόνηση της παρούσας εργασίας πραγµατοποιήθηκε στο Κέντρο Σχεδιασµού και οκιµών Συστηµάτων VLSI του Εργαστηρίου Τεχνολογίας Ηλεκτροτεχνικών και Ηλεκτρονικών Υλικών, του τοµέα Ηλεκτρονικής και Τεχνολογίας Συστηµάτων Πληροφορικής του ηµοκρίτειου Πανεπιστηµίου Θράκης, υπό την επίβλεψη του Επίκουρου Καθηγητή κ.. Σούντρη. Η µεταπτυχιακή διατριβή δοµείται από τέσσερα κεφάλαια εκ των οποίων το πρώτο αποτελεί µια συνοπτική εισαγωγή στις διαθέσιµες αρχιτεκτονικές διασύνδεσης, στην αρχιτεκτονική της βασικής δοµικής µονάδας, στις διαθέσιµες τεχνολογίες προγραµµατισµού και στην κατανάλωση ισχύος της διάταξης του FPGA. Τέλος παρουσιάζονται ορισµένα από τα πιο δηµοφιλή µοντέλα επαναδιαµόρφωσης για τα FPGA. Το δεύτερο κεφάλαιο πραγµατεύεται το σχεδιασµό της βασικής δοµικής µονάδας. Εδώ εξετάζονται ορισµένα από τα χαρακτηριστικά της αρχιτεκτονικής του επαναδιαµορφώσιµου λογικού µπλοκ, όπως είναι ο αριθµός εισόδων του πίνακα αναζήτησης, το µέγεθος της συστοιχίας κ.τ.λ. Στη συνέχεια περιγράφονται οι τεχνικές σχεδιασµού σε επίπεδο κυκλώµατος για χαµηλή κατανάλωση ισχύος που έχουν χρησιµοποιηθεί, καθώς και τα αποτελέσµατα των µετρήσεων που αφορούν τη βασική λογική µονάδα. Στο τέλος του κεφαλαίου δίνεται η φυσική υλοποίηση του διαµορφώσιµου λογικού µπλοκ. Στο επόµενο κεφάλαιο περιγράφονται τα επιλεγµένα εργαλεία που απαρτίζουν την ολοκληρωµένη σχεδιαστική ροή. Τόσο τα υπάρχοντα όσο και τα καινούργια σχεδιαστικά εργαλεία εξηγούνται διεξοδικά. Με τη βοήθεια κατάλληλων σχηµάτων δείχνονται όλα τα στάδια της σχεδιαστικής ροής, από την περιγραφή του κυκλώµατος σε γλώσσα VHDL, έως και τον προγραµµατισµό της διάταξης FPGA. Το τέταρτο κεφάλαιο περιγράφει το γραφικό περιβάλλον που αναπτύχθηκε για την ολοκληρωµένη ροή εργαλείων. Επιπλέον, αναλύονται οι δυνατότητες που αυτό παρέχει σε σχέση µε τη χρήση των εργαλείων από τη γραµµή εντολών του λειτουργικού συστήµατος. Τέλος, στον επίλογο συνοψίζονται τα όσα έχουν γίνει κατά την διάρκεια της παρούσης µεταπτυχιακής διατριβής, ενώ στη συνέχεια ακολουθούν τρία παραρτήµατα στα οποία υπάρχουν οι συναρτήσεις που απαρτίζουν τα σχεδιαστικά εργαλεία ACE, T-VPACK και VPR αντίστοιχα. Τόσο ο σχεδιασµός της βασικής δοµικής µονάδας, όσο και η ανάπτυξη των εργαλείων για τον προγραµµατισµό της διάταξης του FPGA αποτελούν µέρος του Ευρωπαϊκού ερευνητικού προγράµµατος IST-2001-34379 AMDREL Architectures and Methodologies for Dynamic Reconfigurable Logic (http://vlsi.ee.duth.gr/amdrel). Πιο συγκεκριµένα, η εργασία αναφορικά µε το σχεδιασµό της βασικής δοµικής µονάδας αποτελεί τµήµα του TASK 4.2 το οποίο πραγµατεύεται 5

το σχεδιασµό και την υλοποίηση ενός λεπτόκοκκου επαναδιαµορφώσιµου υλικού µε ικανοποιητικά χαρακτηριστικά σε θέµατα κατανάλωσης ενέργειας. Αντίστοιχα τα εργαλεία αποτελούν µέρος του TASK 4.3 που ως στόχο έχει την ανάπτυξη σχεδιαστικών εργαλείων τα οποία να υποστηρίζουν το λεπτόκοκκο επαναπροσδριορίσιµο υλικό που προκύπτει από το TASK 4.2. Τελειώνοντας τον πρόλογο, θα ήθελα να ευχαριστήσω ιδιαίτερα το δάσκαλο µου και επιβλέποντα της µεταπτυχιακής διατριβής, κ. ηµήτριο Σούντρη Επίκουρο Καθηγητή του Τµήµατος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του ηµοκριτείου Πανεπιστηµίου Θράκης για την ευκαιρία που µου έδωσε για εκµάθηση αρκετών και ενδιαφερόντων θεµάτων, µε την εµπιστοσύνη που µου έδειξε κατά την διάρκεια της δίχρονης παρουσίας µου στο εργαστήριο VLSI, καθώς και για την αµέριστη βοήθεια και τις πολύτιµες συµβουλές που µου παρείχε µέχρι την περάτωση της παρούσης εργασίας. Επίσης, θα ήθελα να ευχαριστήσω τόσο τους υποψήφιους διδάκτορες Τάτα Κωνσταντίνο (του ηµοκρίτειου Πανεπιστηµίου Θράκης) και Βασιλιάδη Νίκο (του Αριστοτελείου Πανεπιστηµίου Θεσσαλονίκης), όσο και τον φοιτητή Τοπτσίδη Γιώργο του τµήµατος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών για τη συνεργασία τους στην διεκπεραίωση της παρούσας εργασίας. Τέλος, ευχαριστώ όλους τους φίλους και συνεργάτες από το Κέντρο Σχεδιασµού οµικών Συστηµάτων VLSI του Εργαστηρίου Τεχνολογίας Ηλεκτροτεχνικών και Ηλεκτρονικών Υλικών καθώς και του εργαστηρίου Ηλεκτρονικών Υπολογιστών και Επεξεργασίας Πληροφοριών για τα όµορφα φοιτητικά χρόνια που περάσαµε µαζί στην Ξάνθη. Ξάνθη, Οκτώβριος 2003 Κωνσταντίνος Σ. Σιώζιος 6

ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΛΗΨΗ...1 ABSTRACT...3 ΠΡΟΛΟΓΟΣ...5 ΠΕΡΙΕΧΟΜΕΝΑ...7 ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ...11 ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ...15 ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ...17 ΠΙΝΑΚΑΣ ΣΥΝΤΟΜΟΓΡΑΦΙΩΝ...19 ΚΕΦΑΛΑΙΟ 1 Ο - ΕΙΣΑΓΩΓΗ ΣΤΑ FPGA...21 1.1. Αρχιτεκτονικές ιασύνδεσης...23 1.1.1. Αρχιτεκτονική νησίδας...24 1.1.2. Αρχιτεκτονική βασιζόµενη σε γραµµές...25 1.1.3. Θάλασσα από πύλες...26 1.1.4. Ιεραρχική αρχιτεκτονική...26 1.1.5. ιάταξη µιας διάστασης...27 1.1.6. Συστήµατα πολλαπλών FPGA...28 1.2. Αρχιτεκτονική της Βασικής οµικής Μονάδας (CLB)...29 1.2.1. Κοκκοποίηση του λογικού µπλοκ...30 1.2.2. Μελέτες στη δοµή της βασικής δοµικής µονάδας...31 1.3. Τεχνολογία Προγραµµατισµού...31 1.3.1. SRAM...32 1.3.2. Αντι-ασφάλεια (Antifuse)...33 1.3.3. EPROM, EEPROM, and FLASH...34 1.4. Κατανάλωση Ισχύος...34 1.4.1. Παράγοντες που επηρεάζουν την κατανάλωση ισχύος...35 1.4.2. Ενέργεια διασύνδεσης...35 1.4.3. Ενέργεια ρολογιού...36 1.5. Επαναδιαµορφώσιµα Μοντέλα...36 1.5.1. Στατικά επαναδιαµορφώσιµα µοντέλα...36 1.5.2. υναµική επαναδιαµόρφωση...37 1.5.3. FPGA απλού πλαισίου...38 1.5.4. FPGA πολλαπλών πλαισίων...38 7

1.5.5. Μερική επαναδιαµόρφωση... 39 1.5.6. Επαναδιαµόρφωση διοχέτευσης... 40 1.6. Κατηγορίες Επαναδιαµόρφωσης Κατά Την ιάρκεια Της Λειτουργίας... 41 1.6.1. Επαναδιαµόρφωση σε επίπεδο αλγορίθµου... 41 1.6.2. Επαναδιαµόρφωση σε επίπεδο αρχιτεκτονικής... 41 1.6.3. Επαναδιαµόρφωση σε επίπεδο λειτουργίας... 41 1.7. Γρήγορη ιαµόρφωση... 42 1.7.1. Φόρτωµα της διαµόρφωσης εκ των προτέρων... 42 1.7.2. Συµπίεση της διαµόρφωσης... 43 1.7.3. Επανακατανοµή και αποκατακερµάτιση σε µερικώς επαναδιαµορφώσιµα συστήµατα... 43 1.7.4. Προσωρινή αποθήκευση των διαµορφώσεων... 44 1.8. Σύνοψη Κεφαλαίου... 45 ΚΕΦΑΛΑΙΟ 2 Ο - ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΙΚΗΣ ΟΜΙΚΗΣ ΜΟΝΑ ΑΣ (CLB)... 47 2.1. Αρχιτεκτονική Του ιαµορφώσιµου Λογικού Μπλοκ (CLB)... 48 2.1.1. ιερεύνηση για την χαµηλής κατανάλωσης ισχύος αρχιτεκτονική του CLB... 50 2.1.2. Προσδιορισµός του βέλτιστου αριθµού εισόδων (K) για τον πίνακα αναζήτησης... 52 2.1.3. Προσδιορισµός του βέλτιστου αριθµού εισόδων (I) του CLB... 56 2.1.4. Προσδιορισµός του βέλτιστου µεγέθους συστοιχίας (N)... 57 2.1.5. Η διασύνδεση του CLB... 60 2.1.6. Επιλεγµένη αρχιτεκτονική για το CLB... 60 2.2. Κυκλωµατικός Σχεδιασµός Του CLB Για Τις Προσοµοιώσεις Χαµηλής Κατανάλωσης Ισχύος... 62 2.2.1. Σχεδιασµός του κυκλώµατος... 63 2.2.2. Τεχνικές σχεδιασµού σε επίπεδο κυκλώµατος για χαµηλή κατανάλωση ισχύος... 72 2.2.3. Σχεδιασµός του αποµονωτή Αποτελέσµατα προσοµοίωσης... 77 2.2.4. Κυκλωµατικός σχεδιασµός του βασικού λογικού στοιχείου και προσοµοίωση αυτού... 79 2.2.5. Κυκλωµατικός σχεδιασµός του CLB Προσοµοίωση... 80 2.3. Σύνοψη Κεφαλαίου... 80 ΚΕΦΑΛΑΙΟ 3 Ο - ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΕΡΓΑΛΕΙΩΝ ΤΗΣ ΟΛΟΚΛΗΡΩΜΕΝΗΣ ΣΧΕ ΙΑΣΤΙΚΗΣ ΡΟΗΣ... 83 3.1. Επιλεγµένο Λειτουργικό Σύστηµα... 84 3.1.1. Άδεια ανοιχτού κώδικα... 84 3.1.2. Ανοιχτός κώδικας... 85 3.1.3. Άδεια χρήσης... 86 3.1.4. Η τιµή... 86 3.1.5. Ιδιόκτητο λογισµικό... 86 3.2. VHDL_Parser... 87 3.3. Free_HDL... 89 3.3.1. Μεταγλώττιση των πακέτων ieee.std_logic_1164 και ieee.numeric_std... 91 3.3.2. Επιλογές της µεταγλώττισης... 91 8

3.3.3. Επιλογές για την προσοµοίωση του κυκλώµατος...92 3.3.4. Έλεγχος της προσοµοίωσης από τη γραµµή εντολών...93 3.4. DEMORALIZER...93 3.5. DEFILER...96 3.6. E2FMT...99 3.7. POWERMODEL...102 3.7.1. Γενικά...103 3.7.2. Αρχικό πλαίσιο εργασίας...103 3.7.3. Τροποποιηµένο πλαίσιο εργασίας...104 3.7.4. Εντολές του T-VPack που αφορούν την κατανάλωση ισχύος...108 3.7.5. Εντολές του VPR που αφορούν την κατανάλωση ισχύος...110 3.8. T-VPack...113 3.8.1. Επιλογές του T-VPack...117 3.8.2. Αρχεία εξόδου του T-VPack...119 3.9. DAFT...121 3.9.1. Βασική παράµετρος του αρχείου περιγραφής της αρχιτεκτονικής...122 3.9.2. Περιγραφή του σχετικού πλάτους καναλιού σε ένα FPGA...122 3.9.3. Επιλογές για τη περιγραφή του λογικού µπλοκ...124 3.9.4. Περιγραφή της λεπτοµερούς αρχιτεκτονικής διασύνδεσης...126 3.9.5. Παράµετροι ανάλυσης χρονισµού...132 3.9.6. Παράµετροι για την εκτίµηση κατανάλωσης ισχύος...134 3.10. VPR...137 3.10.1. Γραφικό περιβάλλον του VPR...138 3.10.2. Επιλογές στη γραµµή εντολών...139 3.10.3. Γενικές παράµετροι του VPR...140 3.10.4. Επιλογές του VPR για τη τοποθέτηση των λογικών µπλοκ...141 3.10.5. Τοποθέτηση οδηγούµενη από χρονισµό...146 3.10.6. Επιλογές για τη διασύνδεση...147 3.10.7. ιασύνδεση οδηγούµενη από χρονισµό...149 3.11. DAGGER...155 3.11.1. Ψευδοκώδικας του εργαλείου DAGGER...156 3.11.2. Θεωρητική προσέγγιση του προβλήµατος...159 3.11.3. Παράδειγµα εκτέλεσης του εργαλείου DAGGER...162 3.12. Σύνοψη Κεφαλαίου...167 ΚΕΦΑΛΑΙΟ 4 Ο - ΓΡΑΦΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΧΡΗΣΗΣ ΤΩΝ ΕΡΓΑΛΕΙΩΝ...171 4.1. Πλεονεκτήµατα Του Γραφικού Περιβάλλοντος Των Εργαλείων...172 4.2. Χρήση Του Ολοκληρωµένου Περιβάλλοντος Εργασίας...173 4.3. Ανταλλαγή Αρχείων Με Τον Κεντρικό Υπολογιστή...175 9

4.4. Γραφικό Περιβάλλον Χρήσης Των Εργαλείων... 176 4.5. Σύνοψη Κεφαλαίου... 178 ΚΕΦΑΛΑΙΟ 5 Ο - ΣΥΜΠΕΡΑΣΜΑΤΑ... 179 ΒΙΒΛΙΟΓΡΑΦΙΑ... 183 ΠΑΡΑΡΤΗΜΑ Ι - GNU GENERAL PUBLIC LICENSE... 189 ΠΑΡΑΡΤΗΜΑ ΙΙ - THE OPEN SOURCE DEFINITION... 193 ΠΑΡΑΡΤΗΜΑ ΙΙΙ ΣΥΝΑΡΤΗΣΕΙΣ ΤΟΥ ΕΡΓΑΛΕΙΟΥ ACE... 197 ΠΑΡΑΡΤΗΜΑ ΙV ΣΥΝΑΡΤΗΣΕΙΣ ΤΟΥ ΕΡΓΑΛΕΙΟΥ T-VPACK... 199 ΠΑΡΑΡΤΗΜΑ V ΣΥΝΑΡΤΗΣΕΙΣ ΤΟΥ ΕΡΓΑΛΕΙΟΥ VPR... 213 10

Κατάλογος Σχηµάτων Σχήµα 1: Μοντέλο ενός τυπικού FPGA... 23 Σχήµα 2: Αρχιτεκτονική Νησίδας... 24 Σχήµα 3: Αρχιτεκτονική βασιζόµενη σε γραµµές... 25 Σχήµα 4: Θάλασσα από πύλες... 26 Σχήµα 5: Ιεραρχική Αρχιτεκτονική... 27 Σχήµα 6: Μονοδιάστατη διάταξη... 28 Σχήµα 7: ιάταξη πλέγµατος (αριστερά) και µερικό διασταύρωσης (δεξιά) για τις τοπολογίες διασύνδεσης σε συστήµατα πολλαπλών FPGA... 29 Σχήµα 8: ιάφοροι τύπου από προγραµµατιζόµενους διακόπτες οι οποίοι χρησιµοποιούνται στα FPGA και βασίζονται στην SRAM τεχνική... 33 Σχήµα 9: Παράγοντες κατανάλωσης ισχύος σε ένα FPGA της οικογένειας XC4003... 35 Σχήµα 10: Στατική Επαναδιαµόρφωση... 37 Σχήµα 11: υναµική Επαναδιαµόρφωση... 37 Σχήµα 12: Βασικό λογικό µπλοκ... 49 Σχήµα 13: Συστοιχία λογικών µπλοκ... 49 Σχήµα 14: Ολική καταλαµβανόµενη επιφάνεια για διάφορους αριθµούς εισόδων του πίνακα αναζήτησης και µεγέθη της συστοιχίας... 53 Σχήµα 15: Ολική καθυστέρηση για διαφορετικό αριθµό εισόδων του πίνακα αναζήτησης και το µέγεθος της συστοιχίας... 54 Σχήµα 16: Παράγοντας επιφάνειας-καθυστέρησης για διαφορετικό αριθµό εισόδων του πίνακα αναζήτησης και για διαφορετικά µεγέθη συστοιχιών... 55 Σχήµα 17: Ενέργεια σε σχέση µε το µέγεθος του πίνακα αναζήτησης... 56 Σχήµα 18: Απαιτούµενος αριθµός εισόδων για την επίτευξη 98% χρήσης του υλικού... 57 Σχήµα 19: Ενέργεια σε σύγκριση µε το µέγεθος συστοιχίας για πίνακα αναζήτησης 4 εισόδων... 58 Σχήµα 20: Ενεργειακές απαιτήσεις 22 µεσαίων και µικρού µεγέθους κυκλωµάτων... 59 Σχήµα 21: Η διασύνδεση του CLB... 61 Σχήµα 22: Η επιλεγµένη αρχιτεκτονική του CLB... 61 Σχήµα 23: Κυκλωµατικός σχεδιασµός του πίνακα αναζήτησης... 64 Σχήµα 24: Κυκλωµατικός σχεδιασµός του πολυπλέκτη... 64 Σχήµα 25: Το F/F Chung που προτάθηκε στην εργασία [35]... 66 Σχήµα 26: Το F/F Pedram που προτάθηκε στην εργασία [36]... 66 Σχήµα 27: Το F/F Llopis που προτάθηκε στην εργασία [71]... 67 Σχήµα 28: Το F/F Strollo που προτάθηκε στην εργασία [37]... 67 Σχήµα 29: Είσοδοι παλµών στα F/F για τη προσοµοίωση... 68 Σχήµα 30: Η διάταξη προσοµοίωσης των F/F... 69 Σχήµα 31: N-MOS τρανζίστορ που ακολουθείται από έναν αντιστροφέα... 73 Σχήµα 32: Σήµα απλού ρολογιού... 75 Σχήµα 33: Σήµα ρολογιού µέσω πύλης... 75 Σχήµα 34: Κύκλωµα του σήµατος ρολογιού µέσω πύλης στο επίπεδο του CLB... 76 Σχήµα 35: Απλή διάταξη πυλών στο επίπεδο του CLB... 76 Σχήµα 36: οκιµαστική διάταξη για το BLE... 79 Σχήµα 37: Αρχείο περιγραφής κυκλώµατος σε γλώσσα VHDL, χωρίς συντακτικά σφάλµατα... 88 Σχήµα 38: Έξοδος του εργαλείου VHDL_Parser, στη περίπτωση σωστού κώδικα VHDL... 88 Σχήµα 39: Αρχείο περιγραφής κυκλώµατος σε γλώσσα VHDL, µε συντακτικά σφάλµατα... 88 Σχήµα 40: Έξοδος του εργαλείου VHDL_Parser, στη περίπτωση λανθασµένου κώδικα VHDL... 89 11

Σχήµα 41: Σχηµατική περιγραφή κυκλώµατος...94 Σχήµα 42: Περιγραφή του προηγούµενου σχήµατος σε γλώσσα VHDL...94 Σχήµα 43: Αποτέλεσµα αρχείου EDIF που προκύπτει από τη σύνθεση του κυκλώµατος µε το εργαλείο DEMORALIZER...96 Σχήµα 44: Αποτέλεσµα που προκύπτει από την έξοδο του εργαλείο DEFILER...99 Σχήµα 45: Αρχείο εξόδου σε δοµή BLIF που προκύπτει από το εργαλείο E2FMT...101 Σχήµα 46: Επεξήγηση της δοµής και σύνταξης του αρχείου BLIF...102 Σχήµα 47: Αρχικό πλαίσιο εργασίας του VPR...104 Σχήµα 48: Τροποποιηµένο πλαίσιο εργασίας του VPR µε το εργαλείο για τη εκτίµηση της κατανάλωσης ισχύος...104 Σχήµα 49: Αρχείο εξόδου σε µορφή απλού κειµένου (TXT)...107 Σχήµα 50: Περιεχόµενα του αρχείου εξόδου της δραστηριότητας (.act)...107 Σχήµα 51: οµή του αρχείου εξόδου της εκτίµησης (.ac2)...109 Σχήµα 52: Περιεχόµενα του αρχείου εξόδου λειτουργίας...110 Σχήµα 53: Παράδειγµα αρχείου Power.echo...111 Σχήµα 54: Παράδειγµα αρχείου RoutingPower.echo...112 Σχήµα 55: Παράδειγµα αρχείου LBPower.echo...113 Σχήµα 56: Παράδειγµα αρχείου CLKPower.echo...113 Σχήµα 57: Βασικό λογικό µπλοκ...115 Σχήµα 58: Συστοιχία λογικών µπλοκ...116 Σχήµα 59: Παράδειγµα αρχείου σε µορφή κοµβικής λίστας (NET)...120 Σχήµα 60: Προσδιορισµός του σχετικού πλάτους καναλιού...123 Σχήµα 61: Πρώτο τµήµα του αρχείου περιγραφής της αρχιτεκτονικής του FPGA...125 Σχήµα 62: ιακόπτης τύπου subset...129 Σχήµα 63: ιακόπτης τύπου wilton...129 Σχήµα 64: ιακόπτης τύπου universal...130 Σχήµα 65: Παράδειγµα περιγραφής τµήµατος καλωδίου...130 Σχήµα 66: Παράδειγµα τµήµατος καναλιού διασύνδεσης µε τέσσερα µονοπάτια ανά κανάλι...131 Σχήµα 67: Τµήµα αρχείου περιγραφής της αρχιτεκτονικής για τη δήλωση διακοπτών σύνδεσης...132 Σχήµα 68: ιάταξη σύνδεσης του καναλιού διασύνδεσης στο λογικό µπλοκ...134 Σχήµα 69: Καθυστερήσεις της τοπικής διασύνδεσης στο εσωτερικό του CLB...134 Σχήµα 70: ιάταξη του τρανζίστορ...137 Σχήµα 71: Αρχική τοποθέτηση λογικών µπλοκ...144 Σχήµα 72: Αρχική τοποθέτηση των λογικών µπλοκ, µαζί µε τα κανάλια διασύνδεσης...145 Σχήµα 73: Τελική τοποθέτηση λογικών µπλοκ...145 Σχήµα 74: Αρχείο εξόδου της τοποθέτησης των λογικών µπλοκ...146 Σχήµα 75: Επιτυχής διασύνδεση κυκλώµατος µε το VPR...150 Σχήµα 76: Επιτυχής διασύνδεση µαζί µε τους διαθέσιµους πόρους διασύνδεσης...151 Σχήµα 77: Αρχείο εξόδου που περιέχει τη διασύνδεση του κυκλώµατος...152 Σχήµα 78: Υπερ-χρησιµοποιηµένοι πόροι διασύνδεσης του κυκλώµατος...153 Σχήµα 79: Κρίσιµο µονοπάτι του κυκλώµατος...154 Σχήµα 80: Κρίσιµο µονοπάτι του κυκλώµατος...155 Σχήµα 81: Σχηµατική αναπαράσταση του FPGA µε πίνακες...159 Σχήµα 82: Αναπαράσταση του FPGA µε τη χρήση πινάκων...160 Σχήµα 83: Σχηµατική τοποθέτηση των ακροδεκτών στην περίµετρο του CLB...160 Σχήµα 84: Παράδειγµα πίνακα τύπου E...164 Σχήµα 85: Παράδειγµα αρχείου για τον προγραµµατισµό στο εσωτερικό του λογικού µπλοκ...165 Σχήµα 86: Ψευδοκώδικας του εργαλείου DAGGER...158 12

Σχήµα 87: Βασικό µενού επιλογών του ολοκληρωµένου περιβάλλοντος εργασίας... 171 Σχήµα 88: Παράθυρο επικοινωνίας για το φόρτωµα των αρχείων... 175 Σχήµα 89: Μενού για το γραφικό περιβάλλον λειτουργίας του εργαλείου VPR... 176 Σχήµα 90: Έξόδος του γραφικού περιβάλλοντος εργασίας για το εργαλείο VPR... 177 13

14

Κατάλογος Πινάκων Πίνακας 1: Χαρακτηριστικά χρονισµού και κατανάλωσης ενέργειας για τον πίνακα αναζήτησης και τον πολυπλέκτη... 63 Πίνακας 2: Παράµετροι της προσοµοίωσης... 68 Πίνακας 3: Κατανάλωση ενέργειας, καθυστέρηση και ο παράγοντας ενέργειας-καθυστέρησης... 71 Πίνακας 4: Κατανάλωση ενέργειας, καθυστέρηση και ο παράγοντας ενέργειας-καθυστέρησης για τα βελτιστοποιηµένα F/F... 72 Πίνακας 5: Ρεύµα διαρροής και κατανάλωση ενέργειας για έναν αντιστροφέα µε διαφορετικά πλάτη για τα πλάτη των N-MOS και P-MOS τρανζίστορ... 74 Πίνακας 6: Κατανάλωση ενέργειας για απλό και σήµα ρολογιού µέσω πύλης... 75 Πίνακας 7: Κατανάλωση ενέργειας για απλού και σήµατος ρολογιού µέσω πύλης σε επίπεδο CLB... 77 Πίνακας 8: Καθυστέρηση και κατανάλωση ενέργειας για τον αποµονωτή στην έξοδο του πολυπλέκτη... 78 Πίνακας 9: Καθυστέρηση και κατανάλωση ισχύος για τον buffer εξόδου... 78 Πίνακας 10: ιάδοση καθυστέρησης και κατανάλωση ενέργειας για το BLE... 79 Πίνακας 11: ιάδοση καθυστέρησης από το σήµα του ρολογιού στις εξόδους... 80 Πίνακας 12: ιάδοση καθυστέρησης και κατανάλωση ισχύος του CLB στη χείριστη περίπτωση... 80 Πίνακας 13: Επιλογές του προγράµµατος Free_HDL... 92 Πίνακας 14: οµικά στοιχεία από τα οποία αποτελείται η βιβλιοθήκη απεικόνισης τεχνολογίας του εργαλείου E2FMT... 100 15

16

Πίνακας Ορολογίας FPGA Reconfiguration architecture CLB BLE SRAM Antifuse Non-volatile LUT Connection box Switch box Pass-transistors Power density Single context Fan-in / out Pipeline stages Gated clock Double edge-triggered Tri-state buffer Greedy algorithm Inverter Transmition gates Effective capacitance Layout Full-custom Active-high Global routing Detailed routing Netlist Placement Latch ιάταξη προγραµµατιζόµενων πυλών Επαναδιαµόρφωσιµη αρχιτεκτονική Βασική δοµική µονάδα Βασικό λογικό στοιχείο Στατική µνήµη τυχαίας προσπέλασης Τεχνολογία αντι-ασφάλειας Μη-πτητική Πίνακας αναζήτησης Κουτί διασύνδεσης Κουτί διακοπτών Τρανζίστορ διέλευσης Πυκνότητα ισχύος Απλό πλαίσιο Βεντάγια εισόδου/εξόδου Σκηνή διοχέτευσης Σήµα ρολογιού µέσω πύλης ιπλο-ακµοπυροδότητο Τρισταθής αποµονωτής Άπληστος αλγόριθµος Αντιστροφέας Πύλες µετάδοσης Ενεργή χωρητικότητα Φυσική σχεδίαση Πλήρως προσαρµοσµένη Ενεργό στην υψηλή τάση Γενική διασύνδεση Λεπτοµερής διασύνδεση Κοµβική λίστα Τοποθέτηση Μανδαλωτής 17

18

Πίνακας Συντοµογραφιών BLE CLB DET F/F FPGA LUT SRAM F/F ALU VHDL IP I/O VCD GPL CAD IPIN OPIN PDF EDIF BLIF Basic Logic Element Configurable Logic Block Double edge-triggered F/F Field Programmable Gate Array Look-up Table Static Random Access Memory Flip/Flop Arithmetic Logic Unit Very High Speed Integrated Circuit Hardware Description Language Internet Protocol Input/Output Value Change Dump General Public License Computer Aided Design Input PIN Output PIN Portable Document Format Electronic Design Interchange Format Berkley Logic Interchange Format 19

20

ΚΕΦΑΛΑΙΟ 1 ο ΕΙΣΑΓΩΓΗ ΣΤΑ FPGA Οι διατάξεις προγραµµατιζόµενων πυλών (FPGA) αποτελούν µια σηµαντική τεχνολογία η οποία επιτρέπει στους σχεδιαστές των κυκλωµάτων να παράγουν ολοκληρωµένα κυκλώµατα εξειδικευµένου σκοπού σε σχετικά µικρό χρονικό διάστηµα. Την εποχή που εµφανίστηκαν τα FPGA, στα µέσα της δεκαετίας του 1980, είχαν παρουσιαστεί ως µια εναλλακτική τεχνολογία αντικατάστασης των συνήθη διατάξεων πυλών για ορισµένες εφαρµογές. Στα συστήµατα της πρώτης γενιάς ο προγραµµατισµός του FPGA γινόταν µε τη χρήση µόνο µίας διαµόρφωσης, η οποία και ήταν η µόνη φορτωµένη στο FPGA. Η δεύτερη γενιά των FPGA ακολούθησε σύντοµα, στην οποία ήταν δυνατό να χρησιµοποιούν πολλαπλές διαµορφώσεις. Η ιδιοµορφία που εµφάνιζαν οι συγκεκριµένες συσκευές ήταν πως το χρονικό διάστηµα που µεσολαβούσε µεταξύ δύο διαµορφώσεων ήταν σχετικά µεγάλο. Στα συστήµατα αυτά ο απαιτούµενος χρόνος για την επαναδιαµόρφωση του FPGA δεν αποτελούσε κρίσιµο παράγοντα, σε αντίθεση µε τις σηµερινές εφαρµογές. Το γεγονός αυτό έκανε επιτακτική την ανάγκη για την ανάπτυξη µιας νέας γενιάς FPGA, τα οποία θα µπορούν να υποστηρίζουν επαναδιαµορφώσεις πολλαπλών κατηγοριών, η κάθε µια εκ των οποίων θα εξαρτάται από τις ανάγκες της εφαρµογής. Στο πρώτο µέρος του κεφαλαίου περιγράφονται τα FPGA µε βάση κάποια γενικά χαρακτηριστικά τους όπως είναι οι υπάρχουσες αρχιτεκτονικές διασύνδεσης, η αρχιτεκτονική της βασικής δοµικής µονάδας, οι τεχνικές προγραµµατισµού, η κατανάλωση ισχύος και τα µοντέλα επαναδιαµόρφωσης. Ο κύριος στόχος των επαναδιαµορφώσιµων αρχιτεκτονικών είναι η επίτευξη ικανοποιητικής απόδοσης στην υλοποίηση του κυκλώµατος συγκρινόµενη µε τη λογική εξειδικευµένου σκοπού, ενώ παράλληλα να εξακολουθήσουν να παρέχουν το πλεονέκτηµα της επαναχρησιµοποίησης που εµφανίζουν οι επεξεργαστές γενικού σκοπού. Τα κύρια χαρακτηριστικά της αρχιτεκτονικής του FPGA, βάσει των οποίων γίνεται η διάκριση µεταξύ των διατάξεων προγραµµατιζόµενων πυλών είναι: 21

Η αρχιτεκτονική διασύνδεσης Η αρχιτεκτονική της βασικής δοµικής µονάδας Η τεχνολογία προγραµµατισµού Η κατανάλωση ισχύος Τα υποστηριζόµενα µοντέλα επαναδιαµόρφωσης Σε γενικές γραµµές τα FPGA µπορούν να θεωρηθούν ως προγραµµατιζόµενη λογική η οποία είναι ενσωµατωµένη σε προγραµµατιζόµενη διασύνδεση. Όλα τα FPGA αποτελούνται από τρία βασικά χαρακτηριστικά: Τη βασική δοµική µονάδα Το δίκτυο εισόδου/εξόδου Την προγραµµατιζόµενη διασύνδεση Για να γίνει η υλοποίηση ενός κυκλώµατος σε ένα FPGA πρέπει να προγραµµατιστεί η κάθε βασική δοµική µονάδα του τελευταίου ώστε να υλοποιεί ένα µικρό µέρος της λογικής, ενώ ταυτόχρονα καθένα από τα µπλοκ εισόδου/εξόδου να ενεργεί είτε ως µπλοκ εισόδου είτε ως εξόδου, ανάλογα µε τις απαιτήσεις του κυκλώµατος. Η προγραµµατιζόµενη διασύνδεση ρυθµίζεται για να υλοποιεί τις απαραίτητες συνδέσεις τόσο ανάµεσα στις βασικές δοµικές µονάδες, όσο και ανάµεσα στις βασικές δοµικές µονάδες και τα µπλοκ εισόδου/εξόδου. Η λειτουργική πολυπλοκότητα των βασικών λογικών µονάδων µπορεί να ποικίλει από µια απλή λογική συνάρτηση (Bool) 2-εισόδων, έως πολύπλοκες, πολλαπλών bit αριθµητικές λειτουργίες. Η επιλογή της κοκκοποίησης της βασικής δοµικής µονάδας εξαρτάται από το πεδίο της κάθε εφαρµογής. Η χρησιµοποιούµενη τεχνολογία προγραµµατισµού καθορίζει µονοσήµαντα τη µέθοδο αποθήκευσης της πληροφορίας προγραµµατισµού. Η επιλογή της συγκεκριµένης τεχνολογίας έχει σηµαντική επίδραση τόσο στην καταλαµβανόµενη επιφάνεια όσο και στην απόδοση του FPGA. Οι κυριότερες και επικρατέστερες τεχνολογίες είναι η Στατική Μνήµη Τυχαίας Προσπέλασης (SRAM) [1], η αντι-ασφάλεια (antifuse) [2], και η µη-πτητική (non-volatile). Η επιλογή µιας εκ των προαναφερθέντων τεχνολογιών βασίζεται κυρίως στο υπολογιστικό περιβάλλον στο οποίο πρόκειται να χρησιµοποιηθεί το FPGA. 22

Σχήµα 1: Μοντέλο ενός τυπικού FPGA Το γενικό µοντέλο ενός τυπικού FPGA δείχνεται στο Σχήµα 1. Η βασική δοµική µονάδα συνήθως αποτελείται από πίνακες αναζήτησης (LUTs), µεταφορείς λογικής, F/F, και προγραµµατιζόµενους πολυπλέκτες. Ο ρόλος των πολυπλεκτών είναι τόσο η δηµιουργία των µονοπατιών δεδοµένων στο εσωτερικό της λογικής µονάδας, όσο και η παροχή συνδέσεων µεταξύ των βασικών δοµικών µονάδων µε το δίκτυο διασύνδεσης. 1.1. Αρχιτεκτονικές ιασύνδεσης Οι αρχιτεκτονικές διασύνδεσης πραγµατοποιούνται χρησιµοποιώντας διακόπτες (switch) οι οποίοι προγραµµατίζονται για να υλοποιούν τις συνδέσεις. Η µέθοδος µε την οποία δηµιουργούνται οι συνδέσεις ανάµεσα στις βασικές δοµικές µονάδες έχει σηµαντική επίπτωση στα χαρακτηριστικά της αρχιτεκτονικής του FPGA. Με βάση την τοποθέτηση των βασικών δοµικών µονάδων και των πόρων διασύνδεσης, οι διατάξεις προγραµµατιζόµενων πυλών είναι δυνατό να διακριθούν στις ακόλουθες κατηγορίες: Αρχιτεκτονική νησίδας Αρχιτεκτονική βασιζόµενη σε γραµµές Θάλασσα από πύλες Ιεραρχική αρχιτεκτονική ιάταξη µιας διάστασης Συστήµατα πολλαπλών FPGA 23

Η πλειονότητα των εµπορικών FPGA είναι δυνατό να οµαδοποιηθεί σε τρεις από τις προαναφερθέντες κατηγορίες ανάλογα µε την αρχιτεκτονική που ακολουθούν για τη διασύνδεση. Έτσι τα FPGA από την Xilinx, τη Lucent και τη Vantis βασίζονται στην αρχιτεκτονική νησίδας, τα FPGA από την Actel διαθέτουν αρχιτεκτονική βασιζόµενη σε γραµµές, ενώ αυτά της Altera είναι ιεραρχικά. Στη συνέχεια παρουσιάζονται τα βασικά χαρακτηριστικά καθεµίας από τις προαναφερθείσες αρχιτεκτονικές. 1.1.1. Αρχιτεκτονική νησίδας Η αρχιτεκτονική νησίδας αποτελείται από µια διάταξη προγραµµατιζόµενων λογικών µπλοκ µε κατακόρυφα και οριζόντια προγραµµατιζόµενα κανάλια διασύνδεσης. Η βασική ιδέα της συγκεκριµένης αρχιτεκτονικής παρουσιάζεται στο Σχήµα 2. Ο αριθµός των τµηµάτων καλωδίων που υπάρχουν στο εσωτερικό του καναλιού προσδιορίζει τους διαθέσιµους πόρους για τη διασύνδεση. Οι ακροδέκτες του λογικού µπλοκ έχουν πρόσβαση στο κανάλι διασύνδεσης διαµέσου του κουτιού διασύνδεσης (connection box). Οι οικογένειες XC4000 και XC3000 της Xilinx [3] είναι παραδείγµατα του συγκεκριµένου τύπου αρχιτεκτονικής. Σχήµα 2: Αρχιτεκτονική Νησίδας 24

1.1.2. Αρχιτεκτονική βασιζόµενη σε γραµµές Όπως υποδηλώνει το όνοµα, στη συγκεκριµένη αρχιτεκτονική τα λογικά µπλοκ είναι τοποθετηµένα σε γραµµές και διαχωρίζονται µεταξύ τους µε οριζόντια κανάλια διασύνδεσης. Η αρχιτεκτονική αυτή παρουσιάζεται στο Σχήµα 3. Τα µονοπάτια διασύνδεσης στο εσωτερικό του καναλιού χωρίζονται σε ένα ή περισσότερα τµήµατα, το µήκος των οποίων µπορεί να κυµαίνεται από το πλάτος ενός ζεύγους βασικών δοµικών στοιχείων έως και ολόκληρο το µήκος του καναλιού. Τα τµήµατα αυτά ενδέχεται να ενώνονται στα άκρα τους χρησιµοποιώντας προγραµµατιζόµενους διακόπτες για τη δηµιουργία γραµµών µεγαλύτερου µήκους. Πέρα από αυτά τα κανάλια, υπάρχουν και εκείνα που βρίσκονται τοποθετηµένα κάθετα ανάµεσα στα λογικά µπλοκ, τα οποία παρέχουν τις απαραίτητες συνδέσεις ανάµεσα στα οριζόντια κανάλια και τα κατακόρυφα τµήµατα της διασύνδεσης. Το µήκος των συγκεκριµένων τµηµάτων στα κανάλια προσδιορίζονται από τον συµβιβασµό που γίνεται ανάµεσα στον αριθµό των µονοπατιών, την αντίσταση που εµφανίζουν οι διακόπτες διασύνδεσης και τη χωρητικότητα των συγκεκριµένων τµηµάτων. Ένα παράδειγµα οικογένειας FPGA που στηρίζεται στην αρχιτεκτονική βασιζόµενη σε γραµµές είναι αυτό της ACT3 που παράγει η εταιρεία Actel [4]. Σχήµα 3: Αρχιτεκτονική βασιζόµενη σε γραµµές 25

1.1.3. Θάλασσα από πύλες Η αρχιτεκτονική που βασίζεται στη θάλασσα από πύλες, όπως φαίνεται στο Σχήµα 4, ανόµοια µε τις προηγούµενες, δεν αποτελείται από µια διάταξη λογικών µπλοκ ενσωµατωµένων σε µια γενική δοµή διασύνδεσης. Αντίθετα συνίσταται από λογικά µπλοκ τα οποία καλύπτουν όλη την επιφάνεια του FPGA. Οι απαιτούµενες συνδέσεις πραγµατοποιούνται χρησιµοποιώντας δεσµευµένες συνδέσεις του τύπου γείτονα-προς-γείτονα, οι οποίες συνήθως είναι γρηγορότερες συγκρινόµενες µε τους γενικούς πόρους διασύνδεσης. Τις περισσότερες φορές, η συγκεκριµένη αρχιτεκτονική χρησιµοποιείται σε συνδυασµό µε γενικού τύπου συνδέσεις για την επίτευξη διασυνδέσεων µεταξύ λογικών µπλοκ που βρίσκονται σε µεγαλύτερη απόσταση. Παράδειγµα αυτού του τύπου της αρχιτεκτονικής είναι η οικογένεια SX από την εταιρεία Actel [5]. Σχήµα 4: Θάλασσα από πύλες 1.1.4. Ιεραρχική αρχιτεκτονική Οι πλειονότητα των λογικών σχεδιασµών παρουσιάζουν κάποια τοπικότητα στις συνδέσεις, η οποία υποδηλώνει µια ιεραρχία στην τοποθέτηση και διασύνδεση των συνδέσεων ανάµεσα στα λογικά µπλοκ. Η ιεραρχική αρχιτεκτονική στα FPGA προσπαθεί να εκµεταλλευτεί το συγκεκριµένο χαρακτηριστικό, ώστε οι διατάξεις των προγραµµατιζόµενων πυλών να εµφανίζουν µικρότερες καθυστερήσεις διασύνδεσης και µια πιο προβλέψιµη συµπεριφορά χρονισµού. Η συγκεκριµένη αρχιτεκτονική δηµιουργείται συνδέοντας λογικά µπλοκ σε συστοιχίες, οι οποίες στη συνέχεια συνδέονται αναδροµικά για τη δηµιουργία µιας ιεραρχικής δοµής. Στο Σχήµα 5 παρουσιάζεται µια τέτοια αρχιτεκτονική. Ο αριθµός των διακοπτών διασύνδεσης από τους οποίους πρέπει να περάσει το σήµα καθορίζει τη ταχύτητα του δικτύου. Η ιεραρχική αρχιτεκτονική µειώνει το πλήθος των διακοπτών που απαιτούνται για τη δηµιουργία µεγάλων µονοπατιών διασύνδεσης, µε αποτέλεσµα η διάταξη να λειτουργεί σε µεγαλύτερη ταχύτητα. 26

Σχήµα 5: Ιεραρχική Αρχιτεκτονική 1.1.5. ιάταξη µιας διάστασης Τα περισσότερα από τα εµπορικά FPGA είναι διατάξεις δύο διαστάσεων. Αυτό επιτρέπει µεγαλύτερη ευελιξία καθώς κάθε σήµα µπορεί να διασυνδεθεί ευκολότερα από ένα κοντινό ελεύθερο µονοπάτι. Εντούτοις, παρέχοντας αυτού του επιπέδου τη διασύνδεση, η ευελιξία απαιτεί µεγάλο µέρος της περιοχής διασύνδεσης. Επιπρόσθετα, κάνει πολυπλοκότερο το λογισµικό για την τοποθέτηση και τη διασύνδεση των λογικών µπλοκ, καθώς αυτό θα πρέπει να λαµβάνει υπ όψιν ένα πολύ µεγάλο αριθµό πιθανοτήτων σεναρίων. Μια λύση στο συγκεκριµένο πρόβληµα θα ήταν η χρησιµοποίηση µιας µονοδιάστατης αρχιτεκτονικής, όπως αυτής που παρουσιάζεται στο Σχήµα 6. Εδώ η τοποθέτηση των λογικών µπλοκ περιορίζεται κατά µήκος του ενός άξονα. Με ένα πιο περιορισµένο σετ επιλογών, η τοποθέτηση των λογικών µπλοκ µπορεί να γίνει πολύ γρηγορότερα. Η διαδικασία της διασύνδεσης απλοποιείται επίσης διότι και αυτή γίνεται κατά κύριο λόγο κατά µήκος µιας µόνο διάστασης, ενώ η δεύτερη διάσταση χρησιµοποιείται γενικά για υπολογισµούς που απαιτούν λειτουργία ολίσθησης. Ένα µειονέκτηµα της αρχιτεκτονικής µιας-διάστασης είναι το ενδεχόµενο να µην υπάρχουν αρκετοί πόροι για τη διασύνδεση σε µια συγκεκριµένη περιοχή του FPGA στην οποία έγινε τοποθέτηση του κυκλώµατος. Σε µια τέτοια περίπτωση, η διασύνδεση ολόκληρου του κυκλώµατος γίνεται πραγµατικά πολύ δυσκολότερο από µια διάταξη δύοδιαστάσεων, η οποία όπως έχει αναφερθεί προηγουµένως παρέχει περισσότερες εναλλακτικές επιλογές στη διασύνδεση. Ένας αριθµός από επαναδιαµορφώσιµα συστήµατα έχουν σχεδιαστεί µε 27

τη χρήση της συγκεκριµένης αρχιτεκτονικής, µεταξύ των οποίων είναι το Garp [6], το Chimaera [7][8] και το NAPA [9]. Σχήµα 6: Μονοδιάστατη διάταξη 1.1.6. Συστήµατα πολλαπλών FPGA Τα επαναδιαµορφώσιµα συστήµατα τα οποία αποτελούνται από περισσότερα του ενός FPGA που βρίσκονται διασυνδεδεµένα πάνω στην ίδια πλακέτα, έχουν επιπλέον θεωρήσεις στο υλικό σε σχέση µε ένα σύστηµα αποτελούµενο από ένα µόνο FPGA. Πιο συγκεκριµένα, υπάρχει η ανάγκη για ικανοποιητική σύνδεση ανάµεσα στα διάφορα FPGA, καθώς επίσης και µε την εξωτερική µνήµη και το κανάλι δεδοµένων του συστήµατος. Η χρησιµότητα των συγκεκριµένων συστηµάτων είναι για να παρέχουν τη δυνατότητα σε κυκλώµατα µεγάλου µεγέθους να διαµεριστούν σε περισσότερα του ενός FPGA. Ένα πλήθος διαφορετικών αρχιτεκτονικών διασύνδεσης έχουν µελετηθεί [10] [11] [12] [13] µεταξύ των οποίων περιλαµβάνονται αυτές του πλέγµατος και της διασταύρωσης, όπως παρουσιάζονται στο Σχήµα 7. Μία διάταξη πλέγµατος συνδέει τους κοντινότερους γείτονες σε ένα σύστηµα από FPGA. Με τον τρόπο αυτό, επιτρέπεται η ικανοποιητική επικοινωνία ανάµεσα στις γειτονικές διατάξεις προγραµµατιζόµενων πυλών. Το µειονέκτηµα που παρουσιάζει η συγκεκριµένη αρχιτεκτονική είναι πως ορισµένα σήµατα ίσως χρειαστεί να διέλθουν διαµέσου ενός FPGA απλά και µόνο για να δηµιουργηθεί η σύνδεση ανάµεσα σε µη-γειτονικά FPGA. Εάν και κάτι τέτοιο είναι εφικτό, εντούτοις χρησιµοποιεί πολύτιµους πόρους εισόδου/εξόδου στο FPGA οι οποίοι υλοποιούν τη γεφύρωση της διασύνδεσης. Από την άλλη πλευρά, η αρχιτεκτονική της διασταύρωσης προσπαθεί να αποτρέψει το συγκεκριµένο πρόβληµα χρησιµοποιώντας ειδικά ολοκληρωµένα κυκλώµατα µόνο για τους σκοπούς της διασύνδεσης, έτσι ώστε να επιτρέπεται η σύνδέση απ ευθείας καθενός FPGA µε οποιοδήποτε άλλο. Στην περίπτωση αυτή, η καθυστέρηση που εµφανίζεται στο εσωτερικό του ολοκληρωµένου κυκλώµατος είναι πιο οµοιόµορφη δεδοµένου ότι το κάθε σήµα διανύει ακριβώς 28

την ίδια απόσταση για να µεταβεί από το ένα FPGA σε οποιοδήποτε άλλο, ανεξάρτητα από το που αυτά βρίσκονται τοποθετηµένα. Παρόλα αυτά, η διασύνδεση που βασίζεται στην αρχιτεκτονική διασταύρωσης δεν είναι εύκολο να υλοποιηθεί καθώς αυξάνει σηµαντικά ο αριθµός των FPGA. Σχήµα 7: ιάταξη πλέγµατος (αριστερά) και µερικό διασταύρωσης (δεξιά) για τις τοπολογίες διασύνδεσης σε συστήµατα πολλαπλών FPGA 1.2. Αρχιτεκτονική της Βασικής οµικής Μονάδας (CLB) Το λογικό µπλοκ, το οποίο είναι επίσης γνωστό και ως βασική δοµική µονάδα (CLB), είναι υπεύθυνο για την υλοποίηση σε επίπεδο πύλης της λειτουργίας που απαιτείται για κάθε εφαρµογή. Το λογικό µπλοκ χαρακτηρίζεται από την εσωτερική δοµή και την κοκκοποίηση του. Η δοµή καθορίζει τις διάφορες κατηγορίες λογικής τις οποίες µπορεί να υλοποιήσει, ενώ η κοκκοποίηση ορίζει το µέγεθος της συνάρτησης την οποία µπορεί να πραγµατοποιήσει. Η λειτουργικότητα του λογικού µπλοκ πετυχαίνεται ελέγχοντας τις συνδέσεις ορισµένων βασικών λογικών πυλών ή χρησιµοποιώντας πίνακες αναζήτησης (LUT). Η λειτουργικότητα αυτή έχει σηµαντική επίπτωση στους πόρους της διασύνδεσης µιας και µε την αύξηση των λειτουργικών δυνατοτήτων το απαιτούµενο µέγεθος της λογικής η οποία µπορεί να ενσωµατωθεί σ αυτό αυξάνει παράλληλα. Αυτό οδηγεί σε ελάττωση των απαιτούµενων εξωτερικών πόρων διασύνδεσης. Από την άλλη πλευρά, καθώς αυξάνει το µέγεθος του λογικού µπλοκ είναι πιθανόν αυτό να µην αξιοποιείται πλήρως, µε αποτέλεσµα να υπάρχει απώλεια τόσο στην επιφάνεια όσο και στην καταναλισκόµενη ενέργεια. Βασιζόµενοι στην εξισορρόπηση αυτών των παραµέτρων, υπάρχει ένα πλήθος από δοµές λογικών µπλοκ καθεµία εκ των οποίων προσπαθεί να βελτιστοποιήσει την επιφάνεια και την ταχύτητα του FPGA [14]. 29

Μια οµάδα από βασικές δοµικές µονάδες ονοµάζεται λογική συστοιχία και µπορεί να περιγραφεί µε τις ακόλουθες τέσσερις παραµέτρους: Το µέγεθος (ο αριθµός εισόδων) του πίνακα αναζήτησης (LUT) Το πλήθος των βασικών δοµικών µονάδων από τις οποίες αποτελείται η λογική συστοιχία Τον αριθµό εισόδων της λογικής συστοιχίας που χρησιµοποιούνται ως είσοδοι στους πίνακες αναζήτησης Τον αριθµό εισόδων του ρολογιού στη λογική συστοιχία (που χρησιµοποιούνται από τους καταχωρητές). Το πλεονέκτηµα της χρήσης ενός πίνακα αναζήτησης Κ-εισόδων είναι ότι µπορεί να υλοποιήσει οποιαδήποτε συνδυαστική λογική συνάρτηση µε Κ-εισόδους. Κατά το παρελθόν έχουν γίνει µελέτες [15] οι οποίες εκτιµούν την επίδραση του λογικού µπλοκ στην αρχιτεκτονική του FPGA χρησιµοποιώντας έναν Κ-εισόδων πίνακα αναζήτησης µε µια µόνο έξοδο. Η δοµή αυτή είναι περισσότερο αποδοτική για την υλοποίηση τυχαίων λογικών συναρτήσεων παρά για λειτουργίες bit-slice στα µονοπάτια µετάδοσης δεδοµένων. 1.2.1. Κοκκοποίηση του λογικού µπλοκ Η πολυπλοκότητα του λογικού µπλοκ ποικίλει από ένα πολύ µικρό µπλοκ το οποίο µπορεί να υλοποιήσει µια συνάρτηση 3-εισόδων, έως µια δοµή η οποία είναι µια 4-bit αριθµητική λογική µονάδα (ALU). Τόσο το µέγεθος, όσο και η πολυπλοκότητα των βασικών µπλοκ, αναφέρεται συχνά ως κοκκοποίηση του τελευταίου. Με άλλα λόγια, το κριτήριο της κοκκοποίησης αναπαριστά το µικρότερο µπλοκ από το οποίο αποτελείται η επαναδιαµορφώσιµη διάταξη. Η επιλογή της κοκκοποίησης του λογικού µπλοκ εξαρτάται από το πεδίο εφαρµογής στο οποίο θα χρησιµοποιηθεί το FPGA, και έχει σηµαντική επίπτωση στο χρόνο που χρειάζεται για την επαναδιαµόρφωση, κάτι που είναι ιδιαίτερα κρίσιµο ειδικά για συστήµατα που η διαµόρφωση γίνεται κατά την διάρκεια λειτουργίας του FPGA. Όλες οι επαναδιαµορφούµενες πλατφόρµες διακρίνονται ανάλογα µε την κοκκοποίηση τους σε λεπτόκκοκες και χονδρόκκοκες. Στις λεπτόκκοκες αρχιτεκτονικές, η βασική δοµική µονάδα αποτελείται από ένα συνδυαστικό δίκτυο και µερικούς καταχωριτές. Μια διάταξη από τέτοια λογικά µπλοκ µπορεί να υλοποιήσει πολύ µικρούς υπολογισµούς, και εποµένως απαιτεί περισσότερα bit δεδοµένων κατά την διάρκεια του προγραµµατισµού. Η κοκκοποίηση αυτού του τύπου είναι περισσότερο αποδοτική για λειτουργίες ελέγχου, ενώ τα µπλοκ που χαρακτηρίζονται 30

ως χονδρόκκοκα, και τα οποία έχουν µεγαλύτερες αριθµητικές ικανότητες, είναι περισσότερο χρήσιµα για λειτουργίες µεταφοράς δεδοµένων µέσω των µονοπατιών (datapath). Όλες οι αρχιτεκτονικές που περιγράφονται στο παρόν κείµενο αφορούν λεπτόκκοκα επαναδιαµορφώσιµα συστήµατα. Ο όρος αυτός παραδοσιακά χρησιµοποιείται όταν το υλικό υλοποιεί συναρτήσεις σε επίπεδο bit. Σήµερα, όπου η ανάγκη για µεγάλη ταχύτητα υπολογισµών αποτελεί κρίσιµο παράγοντα, πολλά από τα υπάρχοντα επαναδιαµορφώσιµα συστήµατα χρησιµοποιούν περισσότερα του ενός bit για τις συναρτήσεις που εκτελούν. Εάν και οι συσκευές αυτές µπορούν να χαρακτηριστούν ως χονδρόκκοκες, εντούτοις θεωρούµε πως οι πλατφόρµες που βασίζουν τις συναρτήσεις που υλοποιούν σε 1 ή 2 bit µπορούν να χαρακτηριστούν ως λεπτόκκοκες (fine-grain) αρχιτεκτονικές, ενώ όλες οι υπόλοιπες να θεωρούνται ως χονδρόκκοκες (coarse-grain). 1.2.2. Μελέτες στη δοµή της βασικής δοµικής µονάδας Μελέτες στη δοµή της βασικής δοµικής µονάδας έδειξαν πως ο βέλτιστος αριθµός εισόδων που µπορεί να χρησιµοποιηθεί για την ελαχιστοποίηση της καταλαµβανόµενης επιφάνειας είναι ανάµεσα σε 3 και 4. Επίσης, είναι δυνατό να βελτιστοποιηθεί η λειτουργικότητα συµπεριλαµβάνοντας ένα καταχωρητή D-τύπου. Σε περίπτωση που χρησιµοποιηθούν οι πίνακες αναζήτησης πολλαπλών εξόδων, η χρήση αυτών µε 4-εισόδους µπορεί να ελαχιστοποιήσει την καταλαµβανόµενη επιφάνεια, ενώ η χρήση των 5 ή 6 εισόδων µπορεί να οδηγήσει σε περιορισµό της καθυστέρησης [16]. Η χρήση ετερογενών λογικών µπλοκ, τα οποία αποτελούνται από συνδυασµό πινάκων αναζήτησης µε 4 και 6 εισόδους, έχει αποδειχθεί πως καταλαµβάνει την ίδια επιφάνεια µε εκείνη των 4-εισόδων, αλλά είναι βελτιστοποιηµένη ως προς τη ταχύτητα κατά 25% [17]. Τέλος η χρήση συστοιχιών µε πίνακες αναζήτησης 4-εισόδων αντί για έναν µόνο πίνακα αναζήτησης των 4-εισόδων, οδηγεί σε µείωση της καταλαµβανόµενης επιφάνειας κατά 10% [18]. 1.3. Τεχνολογία Προγραµµατισµού Τόσο η λογική όσο και οι πόροι διασύνδεσης από τα οποία αποτελείται το FPGA πρέπει να προγραµµατιστούν ώστε να υλοποιούν την απαιτούµενη συνάρτηση. Τα περιεχόµενα του λογικού µπλοκ µπορεί να προγραµµατιστούν για την πραγµατοποίηση της λογικής συνάρτησης αυτού, ενώ οι διακόπτες διασύνδεσης προγραµµατίζονται για τον έλεγχο των συνδέσεων µεταξύ των λογικών µπλοκ. Υπάρχει ένα πλήθος διαφορετικών µεθόδων για την αποθήκευση της πληροφορίας προγραµµατισµού, οι οποίες εκτείνονται από την ευµετάβλητη µέθοδο της SRAM έως την µηαναστρέψιµη τεχνολογία αντι-ασφάλειας (antifuse). Το µεγαλύτερο τµήµα της επιφάνειας ενός 31

FPGA καταλαµβάνεται κυρίως από την περιοχή των επαναδιαµορφώσιµων συστατικών. Εποµένως, η επιλογή της µεθόδου προγραµµατισµού επηρεάζει σηµαντικά την επιφάνεια του FPGA. Ένας επιπλέον παράγοντας, ο οποίος πρέπει να λαµβάνεται υπόψη είναι το πόσες φορές απαιτείται η επαναδιαµόρφωση του FPGA. Έτσι για τα FPGA στα οποία η τεχνολογία προγραµµατισµού τους βασίζεται στην αντι-ασφάλεια µπορούν να προγραµµατιστούν µόνο µία φορά, ενώ αντίθετα όσα χρησιµοποιούν SRAM δεν εµφανίζουν κάποιο παρόµοιο περιορισµό. 1.3.1. SRAM Στη συγκεκριµένη µέθοδο προγραµµατισµού η διαµόρφωση αποθηκεύεται σε κυψελίδες µνήµης SRAM. Στην περίπτωση που το δίκτυο διασύνδεσης υλοποιείται µε τη χρήση των τρανζίστορ διέλευσης (pass-transistors), τότε η κυψέλες της SRAM ελέγχουν εάν το τρανζίστορ άγει ή όχι. Επιπλέον, όταν τα λογικά µπλοκ αποτελούνται από έναν πίνακα αναζήτησης τότε η λογική αποθηκεύεται στις SRAM κυψελίδες. Η συγκεκριµένη µέθοδος προγραµµατισµού παρουσιάζει το µειονέκτηµα της προσωρινής αποθήκευσης της πληροφορίας. Αποτέλεσµα είναι πως η διαµόρφωση πρέπει να φορτώνεται στο FPGA κάθε φορά που το τελευταίο επανατροφοδοτείται. Όσα συστήµατα βασίζονται στη τεχνολογία αυτή συχνά χρησιµοποιούν µια µόνιµη εξωτερική συσκευή αποθήκευσης των δεδοµένων. Η χρήση της µεθόδου SRAM απαιτεί τουλάχιστον 5 τρανζίστορ ανά κυψελίδα. Λόγω του σχετικά µεγάλου µεγέθους των κυψελίδων µνήµης, µεγάλο µέρος της επιφάνειας του FPGA καταλαµβάνεται για την αποθήκευση της διαµόρφωσης. Το βασικό πλεονέκτηµα που έχει η χρήση της µεθόδου προγραµµατισµού που στηρίζεται στη τεχνολογία της SRAM είναι η δυνατότητα επαναχρησιµοποίησης της συσκευής για την υλοποίηση διαφορετικών εφαρµογών, απλά φορτώνοντας κάθε φορά την κατάλληλη διαµόρφωση. Το χαρακτηριστικό αυτό έκανε τη συγκεκριµένη τεχνολογία αποθήκευσης πληροφορίας στα FPGA αρκετά δηµοφιλή για την υλοποίηση επαναδιαµορφώσιµων συστηµάτων, τα οποία στοχεύουν στην επίτευξη κερδών στην απόδοση προσαρµόζοντας την υλοποίηση των συναρτήσεων στις ανάγκες τις συγκεκριµένης εφαρµογής. Το Σχήµα 8 δείχνει διακόπτες τριών τύπων οι οποίοι βασίζονται στην τεχνολογία SRAM, και στους οποίους οι πύλες διέλευσης υλοποιούνται µε N-MOS τρανζίστορ διέλευσης αντί των συµπληρωµατικών πυλών µετάδοσης, µιας και κάτι τέτοιο οδηγεί σε καλύτερα αποτελέσµατα στη ταχύτητα λόγω της µεγαλύτερης ευκινησίας που εµφανίζουν τα N- MOS τρανζίστορ. 32

Σχήµα 8: ιάφοροι τύπου από προγραµµατιζόµενους διακόπτες οι οποίοι χρησιµοποιούνται στα FPGA και βασίζονται στην SRAM τεχνική 1.3.2. Αντι-ασφάλεια (Antifuse) Στη µέθοδο προγραµµατισµού που στηρίζεται στη τεχνολογία SRAM, η πληροφορία αποθηκεύεται ελέγχοντας την κατάσταση των κυψελίδων µνήµης. Αντίθετα η τεχνολογία της αντι-ασφάλειας (antifuse) [19] χρησιµοποιεί προγραµµατιζόµενες συνδέσεις, των οποίων η αντίσταση µεταβάλλεται µε την εφαρµογή υψηλής τάσης. Στη µη-προγραµµατισµένη κατάσταση η αντίσταση των συνδέσεων είναι της τάξης των µερικών GΩ, εποµένως µπορεί να θεωρηθεί ως ανοιχτοκύκλωµα. Με την εφαρµογή µιας σχετικά µεγάλης τιµής τάσης, συµβαίνει ένα φυσικό φαινόµενο που ονοµάζεται τήξη. Το αποτέλεσµα αυτού είναι η δηµιουργία µιας αντίστασης της τάξης των µερικών Ohm (Ω) κατά µήκος της συσκευής, υλοποιώντας µε τον τρόπο αυτό µια σύνδεση. Το πλεονέκτηµα της συγκεκριµένης µεθόδου είναι πως το µέγεθος του προγραµµατιζόµενου στοιχείου είναι της τάξης του µεγέθους ενός περάσµατος (Via), µε αποτέλεσµα να πετυχαίνεται σηµαντική µείωση στην επιφάνεια συγκρινόµενη µε τα FPGA που στηρίζονται σε SRAM. Αντίστοιχα, η αντίσταση µεταξύ των στοιχείων είναι της τάξης των µερικών Ohm (Ω) και είναι πολύ µικρότερη από την αντίσταση των τρανζίστορ µετάβασης τα οποία χρησιµοποιούνται ως διακόπτες διασύνδεσης στη µέθοδο SRAM. Η συγκεκριµένη τεχνική προγραµµατισµού δεν έχει προσωρινή µορφή, και εποµένως δεν απαιτεί η ύπαρξη εξωτερικής συσκευής για την αποθήκευση της πληροφορίας διαµόρφωσης κατά το διάστηµα διακοπής της τροφοδοσίας. Το µειονέκτηµα της τεχνολογίας αυτής, σε αντίθεση µε ότι συµβαίνει στην τεχνολογία SRAM, είναι πως πιθανά λάθη που συµβαίνουν κατά το στάδιο του σχεδιασµού δεν µπορούν να διορθωθούν αφού η διαδικασία διαµόρφωσης είναι µη αναστρέψιµη. 33

1.3.3. EPROM, EEPROM, and FLASH Η κατηγορία των τεχνολογιών προγραµµατισµού που εµφανίζουν µόνιµο χαρακτήρα χρησιµοποιεί τις ίδιες τεχνικές µε εκείνες των EPROM, EEPROM και Flash µνηµών. Η συγκεκριµένη µέθοδος βασίζεται σε ένα ειδικό τρανζίστορ µε δύο πύλες, εκ των οποίων η µία είναι πλωτή πύλη ενώ η άλλη πύλη επιλογής. Όταν κατά µήκος του τρανζίστορ διέλθει κάποιο ισχυρό ρεύµα, το φορτίο παγιδεύεται στην πλωτή πύλη αυξάνοντας τη τάση κατωφλίου του τρανζίστορ. Στη κανονική λειτουργία τα προγραµµατισµένα τρανζίστορ µπορούν να θεωρηθούν ως ανοιχτοκυκλώµατα, ενώ τα υπόλοιπα να ελεγχθούν χρησιµοποιώντας τις πύλες επιλογής. Η φόρτιση στην πλωτή πύλη θα παραµείνει ακόµη και κατά τη διακοπή της τροφοδοσίας. Η πλωτή φόρτιση µπορεί να αποµακρυνθεί εκθέτοντας την πύλη σε υπεριώδες φως για την περίπτωση των EPROM, και σε ηλεκτρική δέσµη στις περιπτώσεις των EEPROM και Flash. Οι συγκεκριµένες τεχνικές καλύπτουν το κενό που υπάρχει ανάµεσα στις τεχνολογίες προγραµµατισµού SRAM και αντι-ασφάλειας (antifuse), παρέχοντας την ευστάθεια που εµφανίζει η αντι-ασφάλεια µε τον επαναπρογραµµατισµό που παρουσιάζει η SRAM. Η αντίσταση των διακοπτών διασύνδεσης είναι µεγαλύτερη από εκείνη της αντι-ασφάλειας, ενώ ο προγραµµατισµός είναι περισσότερο πολύπλοκος και χρονοβόρος σε σύγκριση µε αυτόν που απαιτείται για την τεχνολογία SRAM. 1.4. Κατανάλωση Ισχύος Η χρήση των FPGA στις σύγχρονες εφαρµογές καθιστά επιτακτική την ανάγκη για περιορισµό στις απαιτήσεις κατανάλωσης ισχύος, κάτι που δεν έχει λυθεί ακόµη στις ήδη υπάρχουσες εµπορικές αρχιτεκτονικές. Πέρα της κατανάλωσης ισχύος, ένας επιπλέον σηµαντικός παράγοντας είναι η πυκνότητα ισχύος (power density) των ολοκληρωµένων κυκλωµάτων. Με την µείωση του µεγέθους που παρατηρείται στις διατάξεις των FPGA, το πλήθος των τρανζίστορ ανά µονάδα επιφάνειας αυξάνει σηµαντικά. Αυτό οδηγεί σε αντίστοιχη αύξηση της πυκνότητας ισχύος, καθώς και της ολικής κατανάλωσης ισχύος ανά ολοκληρωµένο κύκλωµα. Πρόσφατες ακαδηµαϊκές προσπάθειες στοχεύουν στη µείωση της καταναλισκόµενη ισχύος σε ερευνητικό επίπεδο. Η τάση αυτή θα συνεχιστεί και θα έχει επιπτώσεις τόσο στο κόστος όσο και στη τεχνολογία που χρησιµοποιείται για τη συσκευασία των συγκεκριµένων συσκευών. 34