Στοιχεία Ψηφιακού Κυκλώματος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο Τρία: Ψηφιακά Ηλεκτρονικά

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

Εισαγωγή στην πληροφορική

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

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

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

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

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

Σχεδιασμός Ψηφιακών Συστημάτων

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

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

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Ακολουθιακή Λογική. Επιμέλεια Διαφανειών: Δ.

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

Σχεδίαση CMOS Ψηφιακών Ολοκληρωμένων Κυκλωμάτων

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

Πανεπιστηµιακές Παραδόσεις στο µάθηµα ΣΧΕ ΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E - CAD)

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

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

2. ΛΟΓΙΚΕΣ ΠΥΛΕΣ. e-book ΛΟΓΙΚΗ ΣΧΕ ΙΑΣΗ ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ- ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 1

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Άλγεβρα Boole και Λογικές Πύλες 2. Επιμέλεια Διαφανειών: Δ.

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

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

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

Ελίνα Μακρή

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops

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

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

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

Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ ΠΑΤΡΑ

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

Ενότητα ΑΡΧΕΣ ΑΚΟΛΟΥΘΙΑΚΗΣ ΛΟΓΙΚΗΣ LATCHES & FLIP-FLOPS

ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ.3 ΑΣΥΓΧΡΟΝΟΣ ΔYΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.5 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.7 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ ΜΕ LATCH.

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

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

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

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

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

Συνδυαστικά Κυκλώματα

ΑΣΚΗΣΗ 9. Tα Flip-Flop

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

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

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

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

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

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

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

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

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

Ενότητα 3 ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ

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

ΑΣΚΗΣΗ 9 ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ (COUNTERS)

Ψηφιακή Σχεδίαση Εργαστηριο 1. Τμήμα: Μηχανικών Πληροφορικής κ Τηλεπικοινωνιών Διδάσκων: Δρ. Σωτήριος Κοντογιαννης Μάθημα 2 ου εξαμήνου

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

ΗΜΥ 210: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2008

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Οικογένειες Ολοκληρωμένων Κυκλωμάτων Ψηφιακής Λογικής

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

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

4.2 Αναπαράσταση δυαδικών τιμών στα ψηφιακά κυκλώματα

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

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

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

Υλοποίηση λογικών πυλών µε τρανζίστορ MOS. Εισαγωγή στην Ηλεκτρονική

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Επίπεδο Ψηφιακής Λογικής (The Digital Logic Level)

Ακολουθιακό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται από τις τιμές εισόδου ΚΑΙ από την προηγούμενη κατάσταση του κυκλώματος

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

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

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

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

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f.

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

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης Θέμα 1ο (3 μονάδες)

Βασικές CMOS Λογικές οικογένειες (CMOS και Domino)

HY330 Ψηφιακά Κυκλώματα - Εισαγωγή στα Συστήματα VLSI. 1 ΗΥ330 - Διάλεξη 7η - Ακολουθιακά Κυκλώματα

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

Ακολουθιακό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται από τις τιμές εισόδου ΚΑΙ από την προηγούμενη κατάσταση του κυκλώματος

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

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

Transcript:

E-CAD

Στοιχεία Ψηφιακού Κυκλώματος Συνδυαστικά Στοιχεία ΑΝD OR NOT XOR NAND NOR XNOR Aκολουθιακά στοιχεία (στοιχεία μνήμης) Latches Flip flops Tύπου D : εστιάζουμε σε αυτά γιατί είναι τα οικονομικότερα. Αλλάζουν κατάσταση (ισοδύναμα τιμή στην έξοδό τους) μόνο όταν ενεργοποιηθούν Ενεργοποιούνται σε διακριτές χρονικές περιόδους μέσω της εφαρμογής ενός σήματος χρονισμού (ρολόι).

Latch vs Flip - flop Latch : Ενεργό με στάθμη δυναμικού Flip Flop : Ενεργό μόνο κατά τη μετάβαση (ακμοπυροδότητο) Q latch Q flip-flop D clk

Γιατί χρειάζονται τα flip-flops? Είσοδοι Συνδυαστικά Κυκλώματα Στοιχεία Μνήμης (Ακολουθιακά) Εξοδοι O χρονισμός αυτού του μονοπατιού θα ήταν προβληματικός χωρίς flip-flops ΣΥΜΠΕΡΑΣΜΑ : η έξοδος ενός latch δε θα πρέπει ποτέ αυτούσια ή μέσω ενός συνδυαστικού κυκλώματος να συνδέεται σαν είσοδος στο ίδιο ή άλλα latches που έχουν το ίδιο ρολόι.

Πρόβλημα μεταστάθειας Χρόνος Προετοιμασίας (t setup ) : είναι η χρονική διαφορά μεταξύ της αρχής δειγματοληψίας (συνήθως οριζόμενη στο 50% της αλλαγής του ρολογιού) της εισόδου δεδομένων (Data) και της αργότερης χρονικής στιγμής που αυτή πρέπει να πάρει σταθερή τιμή ώστε να μη προκληθεί απροσδιοριστία. Χρόνος Αποκατάστασης (t hold ) : είναι η χρονική διαφορά μεταξύ της αρχής δειγματοληψίας της εισόδου δεδομένων (Data) και της χρονικής στιγμής που αυτή μπορεί να πάρει διαφορετική τιμή από αυτήν της δειγματοληψίας χωρίς να προκαλέσει απροσδιοριστία.

Μέγιστη συχνότητα λειτουργίας ακολουθιακού κυκλώματος FF1 FF2 Υποθέσεις 1 μοναδικό ρολόι Όλα τα FFs λειτουργούν με την ίδια ακμή clk Χειρότερη καθυστέρηση = Aθροισμα των Propagation FF1 Xειρότερο μονοπάτι του συνδυαστικού κυκλώματος Setup time FF2 Συχνότητα λειτουργίας = 1 / Χειρότερη καθυστέρηση

Diode logic Οικογένειες ολοκληρωμένων κυκλωμάτων Γρήγορη εξασθένηση των σημάτων λόγω της τάσης πόλωσης των διόδων Αδυναμία δημιουργίας συμπληρωματικών συναρτήσεων

Resistor Transistor logic Οικογένειες ολοκληρωμένων κυκλωμάτων Tρανζίστορ για το συνδυασμό πολλών εισόδων που παράλληλα ενισχύουν και αντιστρέφουν το σήμα. Το τρανζίστορ εξόδου αντιστρέφει και πάλι το σήμα. Η κατανάλωση ισχύος αυτών των πυλών μαζί με τη χαμηλή ταχύτητά τους είναι τα σοβαρότερα προβλήματά τους Diode Transistor logic

Transistor Transistor logic (TTL) Οικογένειες ολοκληρωμένων κυκλωμάτων Aντικατάσταση των διόδων της DTL με τρανζίστορ πολλαπλού εκπομπού Μικρή οδηγητική ικανότητα, σημαντική κατανάλωση ισχύος και μικρές για την εποχή μας ταχύτητες.

Υποοικογένειες ΤΤL Standard Xαμηλής κατανάλωσης (Low Power Schottky - LS) Γρήγορη (Schottky S) Eνδιάμεσης ταχύτητας και χαμηλής κατανάλωσης (Advanced Low Power Schottky ALS) Πολύ γρήγορη (Advanced Schottky AS) Σειρά 7400 Κωδικοί ολοκληρωμένων 74 ΧΧΧ ΥΥΥ Στάθμες δυναμικού : έως 0.8V = λογικό 0, >2.7V = λογικό 1

Οικογένειες ολοκληρωμένων κυκλωμάτων ΕCL (CML) : Λογική συζευγμένου εκπομπού (emitter coupled logic) / λογική ελέγχου ρεύματος (current mode logic) Aπαγορεύει τα τρανζίστορ να εισέρχονται βαθιά στον κόρο Πολύ υψηλές ταχύτητες λειτουργίας Πολύ μεγάλα ρεύματα => πολύ υψηλή κατανάλωση ισχύος ΝΜΟS / PMOS Xρησιμοποιούν τρανζίστορ πεδίου ΜΟSFET (Μetal Oxide Semiconductor Field Effect transistor) Μεγάλης κλίμακας ολοκλήρωση Διαρκής κατανάλωση πάνω στους αντιστάτες Ν ΜΟSFET : άγει όταν η πύλη είναι στο 1. P MOSFET : άγει όταν η πύλη είναι στο 0.

Οικογένειες ολοκληρωμένων κυκλωμάτων CMOS : Complementary Metal Oxide Semiconductor Tρανζίστορ προσαύξησης n-type και p-type Kατανάλωση ισχύος μόνο κατά τις μεταβάσεις Ιδανικά για εφαρμογές χαμηλής κατανάλωσης ισχύος.

Υποοικογένειες CMOS H αντίστοιχη με την 7400 σειρά CMOS είναι η 74C00 Υπάρχουν αντίστοιχες υποοικογένειες 74ACT αντίστοιχη της 74ALS Δυναμικό εξόδου των CMOS : > 4.5 V για λογικό 1, < 0.5 V για λογικό 0 Mπορεί να οδηγήσει ΤΤL (1) Δυναμικό εισόδου των CMOS : < 2.7 V για λογικό 0, >2.7V για λογικό 1. Μπορεί να οδηγηθεί από ΤΤL (2) (1), (2) => Tα CMOS της σειράς 74C00 είναι άμεσοι αντικαταστάτες των ολοκληρωμένων ΤΤL της σειράς 7400, προσφέροντας παράλληλα μικρότερη κατανάλωση. CMOS => δυνατότητα πολύ μεγάλης κλίμακας ολοκλήρωσης SSI, MSI Bιβλιοθήκες πυλών, ακολουθιακών στοιχείων και έτοιμων σχεδιασμών για LSI, VLSI, ULSI

Παρεχόμενη πληροφορία χρόνου Το πιο σημαντικό κριτήριο επιλογής τεχνολογίας είναι ο χρόνος Ο κατασκευαστής πρέπει να παρέχει αναλυτικές μετρήσεις του χρόνου, αφού αυτός δεν είναι σταθερός, αλλά εξαρτάται : Θερμοκρασία Τάση τροφοδοσίας Χωρητικότητα οδήγησης Συνήθως παρέχεται μια 3άδα τιμών : Καθυστέρηση [Καλύτερος χρόνος,, Τυπικός Χρόνος,, Χειρότερος χρόνος] Η καθυστέρηση συνεπώς είναι παράγων απροσδιοριστίας Data I Data Q I clk clk

Παρεχόμενη πληροφορία χρόνου σε VLSI H πληροφορία για τη καθυστέρηση είναι φοβερά ανεπαρκής σε VLSI. Oι είσοδοι κάθε πύλης αυτής της τεχνολογίας δεν είναι ισοδύναμες από πλευράς καθυστέρησης H καθυστέρηση μεταβάλλεται σημαντικά ανάλογα με τον αριθμό των οδηγούμενων πυλών, Oι βιβλιοθήκες αυτής της τεχνολογίας συνήθως περιγράφουν την καθυστέρηση της εξόδου ανεξάρτητα για κάθε είσοδο. Περιλαμβάνουν τις διαφορετικές καθυστερήσεις ανάλογα με το οδηγούμενο φορτίο Δυνατότητα για πύλες με διαφορετικές ικανότητες οδήγησης. Αυτοματοποιημένος τρόπος σχεδιασμού => Δώσε στα εργαλεία τη δυνατότητα να εξετάζουν όλες αυτές τις πιθανότητες.

Τεχνοτροπίες σχεδιασμού σε CMOS VLSI Ο σχεδιαστής πρέπει να επιλέξει κάποια από αυτές τις τεχνοτροπίες όταν ο στοχευόμενος σχεδιασμός δεν είναι διαθέσιμος σαν ένα εμπορικό ολοκληρωμένο, ή όταν τα διαθέσιμα δεν καλύπτουν κάποιες ή όλες από τις ανάγκες του σχεδιαστή για ταχύτητα, εμβαδόν και κατανάλωση ισχύος. Πλήρως εξειδικευμένος σχεδιασμός (Full custom design). ο σχεδιαστής θα πρέπει να σχεδιάσει εξ αρχής, ακόμη και τα βασικά δομικά στοιχεία. + : μέγιστη ευελιξία - : επίπονος χρονικά, > πιθανότητα για σχεδιαστικά λάθη είναι πολύ μεγάλη, > κόστος κατασκευής πολύ υψηλό. Στόχος : μικροί σχεδιασμοί με πολύ αυξημένες απαιτήσεις σε ταχύτητα, εμβαδόν και κατανάλωση ισχύος. Μερικά εξειδικευμένος σχεδιασμός (Semi-custom design). Μερικά σχεδιαστικά κομμάτια παρέχονται έτοιμα Ο σχεδιαστής έχει τη δυνατότητα αν δε καλύπτεται να σχεδιάσει τα δικά του και μετά να φτιάξει το σχεδιασμό του σα μίγμα έτοιμων και νέων υποσχεδιασμών. + : ευελιξία, < χρόνος από τη προηγούμενη περίπτωση, < πιθανότητα σχεδιαστικών λαθών

Τεχνοτροπίες σχεδιασμού σε CMOS VLSI - 2 Σχεδιασμός με έτοιμα σχεδιαστικά κομμάτια (Standard-cell design). Ο σχεδιαστής εφοδιάζεται με μια σχεδιαστική βιβλιοθήκη και εκφράζει το σχεδιασμό του σαν την διασύνδεση στοιχείων αυτής της βιβλιοθήκης. Η βιβλιοθήκη αυτή παρέχεται από τον τελικό κατασκευαστή του ολοκληρωμένου και μπορεί να περιέχει από πολύ λίγα έως πάρα πολλά και πολύ σύνθετα σχεδιαστικά κομμάτια. Θα μπορούσε να περιέχει μόνο τη πύλη NAND δύο εισόδων μιας και κάθε λογική συνάρτηση μπορεί να εκφραστεί βάσει αυτής. Οι βιβλιοθήκες που παρέχονται σήμερα περιέχουν όλες τις λογικές πύλες (και μάλιστα σε διάφορες εκδόσεις ταχύτητας, εμβαδού και οδηγητικής ικανότητας), στοιχεία μνήμης, μικρά έως μεσαία συνδυαστικά κυκλώματα (αθροιστές, πολλαπλασιαστές, κλπ), μικρά έως μεσαία ακολουθιακά κυκλώματα (καταχωρητές, ολισθητές, μετρητές κλπ). + : < χρόνος ολοκλήρωσης του σχεδιασμού. - : Μη δυνατότητα καθορισμού των ηλεκτρικών χαρακτηριστικών των στοιχειωδών σχεδιαστικών κομματιών, με αποτέλεσμα τόσο οι μέγιστες ταχύτητες, όσο και το ελάχιστο εμβαδόν και η ελάχιστη κατανάλωση ισχύος που μπορεί να επιτευχθεί να μη μπορούν να καθοριστούν άμεσα από αυτόν. Ο σχεδιασμός με έτοιμα σχεδιαστικά κομμάτια είναι η κυρίαρχη τεχνοτροπία σχεδιασμού.

Μεθοδολογίες υλοποίησης CMOS VLSI κυκλωμάτων Η μεθοδολογία που θα ακολουθηθεί καθορίζει σε πολύ μεγάλο βαθμό το κόστος του ολοκληρωμένου. Υλοποίηση σαν σχεδιασμός από έτοιμα σχεδιαστικά κομμάτια (Standard-cell implementation). Συνήθως χρησιμοποιεί την πλέον πρόσφατη τεχνολογία Απαιτεί την χρησιμοποίηση ενός πολύ μεγάλου αριθμού μασκών οι οποίες προκύπτουν από φωτολιθογραφικές μεθόδους. Με αυτό το τρόπο μπορούμε να εκμεταλλευτούμε πλήρως τις δυνατότητες της κάθε τεχνολογίας, να επιτύχουμε τη μέγιστη ταχύτητα που μας προσφέρει, αλλά ταυτόχρονα θα πρέπει να είμαστε προετοιμασμένοι να πληρώσουμε υψηλό τίμημα. Υπολογίζεται ότι το πρώτο ολοκληρωμένο σε αυτό το τρόπο υλοποίησης μπορεί να κοστίσει $200.000 και κάθε επόμενο σημαντικά λιγότερο. Αυτή η μεθοδολογία υλοποίησης είναι ελκυστική μόνο όταν ο αριθμός των ολοκληρωμένων που θα κατασκευαστεί είναι τουλάχιστον 20.000. Χρόνος παράδοσης : 1,5 έως 2 μήνες.

Μεθοδολογίες υλοποίησης CMOS VLSI κυκλωμάτων Απεικόνιση σε πίνακα πυλών (Gate Array, Sea of Gates, etc.). Αντί να φτιάχνονται όλες οι μάσκες από την αρχή για το ολοκληρωμένο που σχεδιάσαμε, υπάρχουν ολοκληρωμένα στα οποία ήδη έχει υλοποιηθεί ένας πίνακας από τρανζίστορ. Αυτά τα ολοκληρωμένα έχουν κατασκευαστεί σε εξαιρετικά μεγάλες ποσότητες και συνεπώς το κόστος τους είναι πολύ χαμηλό. Ο σχεδιασμός μας εκφράζεται σαν τη διασύνδεση αυτών των υπαρχόντων τρανζίστορ, ενώ κάποια τρανζίστορ μπορεί να μείνουν και αχρησιμοποίητα. Ενα ποσοστό χρήσης των υπαρχόντων τρανζίστορ της τάξης του 70-80% είναι εξαιρετικό αν και απίθανο να επιτευχθεί. Απαιτούνται να κατασκευαστούν μάσκες μόνο για τη διασύνδεση, γεγονός που περιορίζει σημαντικά το κόστος αλλά και το χρόνο κατασκευής του ολοκληρωμένου (1 έως 2 εβδομάδες). Η απόδοση του τελικού προϊόντος μπορεί να είναι αρκετά καλή, αλλά προφανώς χειρότερη από αυτήν του προηγούμενου τρόπου υλοποίησης. Αυτός ο τρόπος κατασκευής είναι ελκυστικός όταν ο αριθμός των ολοκληρωμένων που θα κατασκευαστεί κυμαίνεται μεταξύ 1.000 έως 25.000.

Μεθοδολογίες υλοποίησης CMOS VLSI κυκλωμάτων Απεικόνιση σε προγραμματιζόμενο πίνακα πυλών (LPGA, FPGA, etc.). Βασίζεται σε ολοκληρωμένα που πέρα από τρανζίστορ, περιέχουν και προ-υλοποιημένο πίνακα πιθανών διασυνδέσεων μεταξύ τους. Ο σχεδιασμός μας εκφράζεται με τη χρήση κάποιων από αυτά τα τρανζίστορ και κάποιων από τις πιθανές διασυνδέσεις ή με άλλα λόγια με την απεικόνιση του στοχευόμενου σχεδιασμού πάνω στους υλοποιημένους πίνακες. Η απεικόνιση αυτή στην περίπτωση των LPGA (Laser Programmable Gate Arrays) γίνεται με τη χρήση laser, γεγονός που μεταφράζεται σε χρόνο υλοποίησης λιγότερο της μίας εβδομάδας. Στην περίπτωση των FPGA (Field Programmable Gate Arrays) η στοχευόμενη απεικόνιση μπορεί να διαβαστεί από μια εξωτερική μνήμη και συνεπώς ο χρόνος υλοποίησης στην ουσία καταλήγει στον προγραμματισμό αυτής της μνήμης, δηλαδή είναι της τάξης των μερικών λεπτών και μπορεί να γίνει από τον ίδιο το σχεδιαστή.

Printed Circuit Boards (PCBs) Γιατί? Ανεξάρτητα αν κάποιο μέρος ή και όλος ο σχεδιασμός μας υλοποιηθεί σε ένα και μόνο ολοκληρωμένο κύκλωμα, αυτό το ολοκληρωμένο δε μπορεί να θεωρηθεί σα τελικό προϊόν. Θα χρειαστεί να σχεδιαστεί μια πλακέτα στην οποία θα τοποθετηθεί αυτό το ολοκληρωμένο μόνο του ή και με άλλα ολοκληρωμένα ώστε να αποτελέσει το τελικό σύστημα. Ο σχεδιασμός μιας πλακέτας ήταν και θα είναι πάντα επίκαιρος. Ο σχεδιασμός μιας πλακέτας είναι και λίγο τέχνη! Οι καλλιτέχνες απολαμβάνουν εξαιρετικά μεγάλους μισθούς

Aπό τι είναι φτιαγμένο ένα PCB Ένα ή περισσότερα φύλλα. Κάθε φύλλο είναι επιστρωμένο και από τις 2 πλευρές του με χαλκό. Κάθε επιφάνεια επίστρωσης είναι ένα επίπεδο (layer) Στην περίπτωση 2 ή περισσοτέρων φύλλων αυτά προσκολλώνται μεταξύ τους με την ενδιάμεση προσθήκη κάποιου μονωτικού υλικού. Αρα υπάρχουν πλακέτες των 2, 3, 4, 5, 6, 7, 8, 9, 10, επιπέδων. Στη πράξη 8 επίπεδα είναι υπεραρκετά. Το πάχος των φύλλων καθορίζει το τελικό πάχος της πλακέτας Λεπτότερα φύλλα είναι διαθέσιμα σε μεγαλύτερες τιμές Αγώγιμα επίπεδα (χαλκός) Μονωτής

PCB και packages Ολοκληρωμένα Διάκριτα (αντιστάσεις, πυκνωτές, διακόπτες) Ο σχεδιαστής πρέπει να ορίσει σαφώς τη θέση στην οποία θα τοποθετηθεί κάθε στοιχείο. Όμως κάθε στοιχείο υπάρχει διαθέσιμο σε μια πλειάδα περιβλημάτων (packages). Κάθε περίβλημα έχει διαφορετικές ανάγκες για την ορθή του τοποθέτηση.

Απαιτήσεις through -hole O σχεδιαστής πρέπει να παραδώσει στον κατασκευαστή της πλακέτας αρχείο με τις θέσεις των οπών που θα πρέπει να διανοιχτούν πάνω στην πλακέτα καθώς και το διαμέτρημα αυτών. Τα στοιχεία αυτά υπάρχουν καταχωρημένα σε διάφορες βάσεις δεδομένων που οι κατασκευαστές στοιχείων παρέχουν στους σχεδιαστές. Αν το περίβλημα του στοιχείου που θα χρησιμοποιηθεί δεν υπάρχει στη χρησιμοποιούμενη βάση δεδομένων, τότε ο σχεδιαστής θα πρέπει μόνος του να περιγράψει το αποτύπωμα (footprint) του στοιχείου, χρησιμοποιώντας κατάλληλους editors. Οσο περισσότερα διαφορετικά διαμετρήματα χρησιμοποιήσει ο σχεδιαστής τόσα διαφορετικά τρυπάνια θα πρέπει να χρησιμοποιήσει ο κατασκευαστής με αποτέλεσμα να αυξάνεται η δυσκολία και ο χρόνος κατασκευής και συνεπώς και το κόστος της πλακέτας. Κάθε τέτοια οπή υπόκειται στη διαδικασία της επιμετάλλωσης (metallization), έτσι ώστε να προσφέρει ηλεκτρική αγωγή με όλα τα στρώματα χαλκού τα οποία διαπερνάει και φυσικά με τον ακροδέκτη του στοιχείου που θα τοποθετηθεί σ αυτήν. Η μη ηλεκτρική επαφή του συγκεκριμένου επιπέδου με το συγκεκριμένο pin ολοκληρωμένου διασφαλίζεται Με isolation rings για επίπεδα στα οποία ο πλεονάζων χαλκός δεν απομακρύνεται Με την απομάκρυνση του χαλκού.

ΤΗ : Συνδυασμοί περιβλημάτων - ακροδεκτών Δεν προσφέρεται κάθε συνδυασμός περιβλήματος ακροδεκτών Ο αριθμός των ακροδεκτών σε through- hole packages είναι περιορισμένος. Περισσότεροι ακροδέκτες? => Surface mount devices

Surface mount devices H τοποθέτησή τους γίνεται απλά με τη κόλλησή τους σε κατάλληλα ίχνη (tracks). To σύνολο των tracks είναι το αποτύπωμα (footprint) του ολοκληρωμένου. Υπάρχουν βάσεις δεδομένων που περιέχουν αποτυπώματα για διάφορα περιβλήματα SMD, ενώ στην περίπτωση που το αποτύπωμα δεν υπάρχει θα πρέπει να σχεδιαστεί. Ο κατασκευαστής του ολοκληρωμένου σε αυτή τη περίπτωση θα πρέπει να παρέχει σαφέστατα διαγράμματα με το μέγεθος των επαφών των ακροδεκτών, των αποστάσεων μεταξύ τους, την κατανομή τους κλπ.

Surface mount devices - Κατηγοριοποίηση Ικανότητα απαγωγής θερμότητας Κεραμικό περίβλημα : Καλή απαγωγή θερμότητας, μεγάλο κόστος Πλαστικό περίβλημα : Μέτρια απαγωγή θερμότητας, χαμηλό κόστος Μεταλλικό περίβλημα : Προσκολλώνται εύκολα σε ψύκτρες για την καλύτερη δυνατή απαγωγή θερμότητας Κατανομή και σχήμα ακροδεκτών Ακροδέκτες σε 2 μόνο πλευρές Ακροδέκτες και στις 4 πλευρές Ακροδέκτες με τη μορφή πίνακα σε όλο το κάτω μέρος του ολοκληρωμένου. J- Lead Leadless

Surface mount devices Κατηγοριοποίηση -2 Ανάλογα με τον αριθμό των ακροδεκτών και τη κατανομή τους, είναι πιθανό η πυκνότητά τους να μην επιτρέπει τη συγκόλληση αυτών των στοιχείων με χειρωνακτικό τρόπο. Υπάρχουν ειδικοί σταθμοί συγκόλλησης για SMD στοιχεία. Συνήθως όμως συγκολλούνται από τον ίδιο το κατασκευαστή της πλακέτας Στην περίπτωση που το περίβλημα έχει ακροδέκτες σε μορφή πίνακα στο κάτω μέρος του η συγκόλληση από τον κατασκευαστή είναι η μόνη δυνατότητα Ο κατασκευαστής έχει και την ευθύνη ελέγχου της ορθής συγκόλλησης με το αντίστοιχο φυσικά αυξημένο κόστος. Το πάχος του στοιχείου. Υπάρχουν εφαρμογές στις οποίες το πάχος είναι καθοριστικός παράγοντας (κάρτες PCMCIA). Υπάρχουν για τους λόγους αυτούς μικρά, πολύ μικρά και μικροσκοπικά περιβλήματα (SOP, SSOP και ΤSSOP). Το πάχος ενός ΤSSOP περιβλήματος είναι τόσο μικρό που άνετα χωράει κάτω από ένα J-Lead ή PLCC στοιχείο.

SMD : Συνδυασμοί περιβλημάτων - ακροδεκτών

SMD : Συνδυασμοί περιβλημάτων - ακροδεκτών

Διασύνδεση των στοιχείων Πέρα από τη θέση και τη προσαρμογή των ολοκληρωμένων και των διακριτών στοιχείων του κυκλώματος, ο σχεδιαστής θα πρέπει να περιγράψει στον κατασκευαστή της πλακέτας και το τρόπο διασύνδεσής τους. Αρχείο γραμμών διασύνδεσης, που για κάθε μία θα περιγράφει την αρχή, το τέλος της και το πάχος της. Εναλλακτικά τοπογραφικό σχέδιο της επιθυμητής διασύνδεσης. Ο αριθμός των εναλλακτικών παχών γραμμών που χρησιμοποιούνται καθώς και το ελάχιστο πάχος είναι παράγοντες που επιβαρύνουν σημαντικά το κόστος

Διασύνδεση σε πολλά επίπεδα - vias Τα στοιχεία συνήθως τοποθετούνται στη μία πλευρά της πλακέτας (πολλές φορές ονομαζόμενη top ή component side), αν και υπάρχουν πλακέτες με στοιχεία και στην αντίθετη πλευρά. Η διασύνδεση των στοιχείων ωστόσο, δεν μπορεί πάντοτε να ολοκληρωθεί στη μία πλευρά (στην περίπτωση πλακετών με δύο επίπεδα το δεύτερο επίπεδο αναφέρεται και σα routing side). Mια γραμμή διασύνδεσης που ξεκινά σε ένα επίπεδο χαλκού είναι απαραίτητο να συνεχιστεί σε κάποιο άλλο. Αυτό γίνεται εφικτό με τη χρησιμοποίηση των vias. Mια via είναι μια επιμεταλλωμένη οπή πολύ μικρότερου διαμετρήματος από ότι μια οπή για through hole devices που σκοπό έχει τη διασύνδεση δύο κομματιών μιας γραμμής διασύνδεσης που βρίσκονται σε διαφορετικά αγώγιμα επίπεδα. Η via δημιουργεί ένα αγώγιμο μονοπάτι μεταξύ των δύο αγώγιμων επιπέδων διαπερνώντας το μονωτή. Στις περιπτώσεις πλακετών με περισσότερα επίπεδα υπάρχει περίπτωση το ένα ή και τα δύο αγώγιμα επίπεδα που ενώνονται με τη via να μην είναι ορατά (να είναι δηλαδή κάποιο από τα εσωτερικά επίπεδα της πλακέτας). Τυφλές vias Θαμμένες vias

Eπίπεδα τροφοδοσίας και γης Στις πλακέτες που υπάρχουν πολλά αγώγιμα επίπεδα, είναι πολλές φορές επικερδές να αφιερώσουμε ένα ολόκληρο τέτοιο επίπεδο στην τροφοδοσία και άλλο ένα αποκλειστικά στη γείωση. Είναι γνωστό ότι για να μπορεί ο σχεδιασμός μας να ανταποκριθεί στην υψηλή πυκνότητα ρεύματος που απαιτείται για υψηλές ταχύτητες λειτουργίας, οι γραμμές τροφοδοσίας και γείωσης θα πρέπει να χαραχτούν με το μέγιστο δυνατό πάχος, έτσι ώστε αφενός να παρουσιάζουν τη μικρότερη αντίσταση και αφετέρου να έχουν αρκετούς φορείς. Οι παχιές γραμμές ωστόσο αυξάνουν το εμβαδόν του σχεδιασμού μας. Με την αφιέρωση ολόκληρου επιπέδου για τροφοδοσία και γείωση, τα SMD μπορούν να συνδεθούν με αυτά μέσω τυφλών vias χωρίς να χρειάζεται η χάραξη καμίας γραμμής διασύνδεσης. Αυτό προφανώς οδηγεί σε πλακέτες μικρότερου εμβαδού. Επίσης θα πρέπει να διευκρινιστεί ότι γύρω από τoυς ακροδέκτες των through hole devices σε αυτή τη περίπτωση χρειάζεται κόψιμο της αγωγιμότητας μέσω isolation rings.

Απεικόνιση του σχεδίου στο υλικό Χημικές μέθοδοι : Χρησιμοποιούμε αυτό το σχέδιο σα μάσκα και υποβάλλουμε το στρώμα χαλκού σε κάποια φωτοχημική διαδικασία. Στο τέλος αυτής της διαδικασίας τα κομμάτια του χαλκού που δεν προστατεύτηκαν από τη μάσκα έχουν αποκτήσει διαφορετικές χημικές ιδιότητες από τα υπόλοιπα. Χρησιμοποιώντας αυτές τις αποκτηθείσες ιδιότητες μπορούμε να τα απομακρύνουμε μέσω περαιτέρω χημικών διαδικασιών και έτσι να απομείνει μόνο ο χαλκός που η μάσκα μας όριζε. Μηχανολογικές μέθοδοι και ηλεκτρόλυση : Χρησιμοποιούμε αυτό το σχέδιο για να καθοδηγήσουμε ένα βραχίονα ρομπότ που χαράζει το περίγραμμα γύρω από τις επιθυμητές γραμμές διασύνδεσης, απομονώνοντάς τις από τον υπόλοιπο χαλκό. Μετά με ηλεκτρόλυση μπορούμε να απομακρύνουμε όλο τον υπόλοιπο χαλκό που δε χρειάζεται.

Μετά τη μεταφορά του σχεδίου Τα διαφορετικά φύλλα συγκολλώνται με τη προσθήκη μονωτικού ενδιάμεσα Διαδικασία για τη διάνοιξη των οπών και των vias. Επιμετάλλωση των οπών και των vias. Tα ορατά αγώγιμα επίπεδα καλύπτονται από ένα στρώμα υλικού ανθεκτικού στο φως (photoresist, είναι το υλικό που δίνει το χαρακτηριστικό πράσινο χρώμα στις περισσότερες πλακέτες) με σκοπό την αποφυγή της οξείδωσης του χαλκού με το πέρασμα του χρόνου.

Tι πρέπει να παραδώσει ο σχεδιαστής Αρχεία διασύνδεσης για κάθε αγώγιμο επίπεδο που χρησιμοποιείται για διασύνδεση (routing layer). Tα αποτυπώματα των SMD που χρησιμοποιεί για το component layer. Τις οπές που θα πρέπει να ανοιχτούν για τα through hole στοιχεία και το διαμέτρημά τους. Τις vias και τον τύπο τους.

Τη προηγούμενη φορά Είδαμε πως κατασκευάζεται μια πλακέτα Είδαμε τι πρέπει να παραδώσει ο σχεδιαστής για τη κατασκευή της Αρχεία διασύνδεσης για κάθε αγώγιμο επίπεδο που χρησιμοποιείται για διασύνδεση (routing layer). Tα αποτυπώματα των SMD που χρησιμοποιεί για το component layer. Τις οπές που θα πρέπει να ανοιχτούν για τα through hole στοιχεία και το διαμέτρημά τους. Τις vias και τον τύπο τους. Θα μιλήσουμε για προγραμματιζόμενα ολοκληρωμένα (programmable logic devices PLDs)

PLDs = Programmable Logic Devices Πρώτα PCBs περιείχαν SSI + διάκριτα Μεγαλύτερη πολυπλοκότητα => περισσότερα layers => > κόστος Μεγαλύτερη πολυπλοκότητα => μεγαλύτερο εμβαδό πλακέτας => μη ικανοποίηση standards Aντιγραφή = piece of cake! Aξιοπιστία => κοντά στο 0. Ανάγκη για ολοκληρωμένα που θα αντικαθιστούσαν ομάδες από SSI και θα παρείχαν κάποιο είδος προστασίας από αντιγραφή => welcome PLDs Σήμερα υπάρχουν εκατομμύρια διαφορετικά PLDs και πάμπολλες φιλοσοφίες σχεδιασμού τους. Τα πάντα ξεκίνησαν και (με μια μικρή διακοπή) συνεχίζονται βάσει της ίδιας πάντα ιδέας, την "ΥΛΟΠΟΙΗΣΗ ΣΥΝΔΥΑΣΤΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ ΜΕ ΜΝΗΜΗ".

Υλοποίηση συναρτήσεων με μνήμη f 1 (x 1, x 2, x 3,..., x m ), f 2 (x 1, x 2, x 3,..., x m ),, f n (x 1, x 2, x 3,..., x m ) Η υπόθεση ότι κάθε συνάρτηση είναι των ίδιων μεταβλητών είναι απόλυτα λογική καθώς οποιαδήποτε λιγότερων μπορεί να μετατραπεί σε συνάρτηση m μεταβλητών, όπου οι επιπλέον είναι αδιάφοροι. f(a,b,c) = ab + c f (a,b,c,d) = (ab+c)1 = (ab+c) (d +!d) = abd + cd + ab!d + c!d f n (0, 0,...,0), f n-1 (0, 0,...,0),..., f 1 (0, 0,...,0) f n (0, 0,...,1), f n-1 (0, 0,...,1),..., f 1 (0, 0,...,1) x m, x m-1,...,x 1 Address Bus... f n (1, 1,...,0), f n-1 (1, 1,...,0),..., f 1 (1, 1,...,0) f n (1, 1,...,1), f n-1 (1, 1,...,1),..., f 1 (1, 1,...,1) Data Bus f n (x m, x m-1,...,x 1 ), f n-1 (x m, x m-1,...,x 1 ),..., f 1 (x m, x m-1,...,x 1 )

Παράδειγμα υλοποίησης συναρτήσεων με μνήμη f 1 (a) = a, f 2 (b, c) = bc, f 3 (a, b) = a + b Aριθμός μεταβλητών m = 3 f' 1 (a, b, c) = abc + ab!c + a!bc + a!b!c, f' 2 (a, b, c) = abc +!abc f' 3 (a, b, c) = abc + ab!c + a!bc + a!b!c +!abc +!ab!c a b c f 1 f 2 f 3 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 a,b,c Address Bus f 1 (0, 0, 0), f 2 (0, 0, 0), f 3 (0, 0, 0) = 000 f 1 (0, 0, 1), f 2 (0, 0, 1), f 3 (0, 0, 1) = 000 f 1 (0, 1, 0), f 2 (0, 1, 0), f 3 (0, 1, 0) = 001 f 1 (0, 1, 1), f 2 (0, 1, 1), f 3 (0, 1, 1) = 011 f 1 (1, 0, 0), f 2 (1, 0, 0), f 3 (1, 0, 0) = 101 0 1 1 0 1 1 1 0 0 1 0 1 f 1 (1, 0, 1), f 2 (1, 0, 1), f 3 (1, 0, 1) = 101 f 1 (1, 1, 0), f 2 (1, 1, 0), f 3 (1, 1, 0) = 101 f 1 (1, 1, 1), f 2 (1, 1, 1), f 3 (1, 1, 1) = 111 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 Data Bus f 1 (a, b, c), f 2 (a, b, c), f 3 (a, b, c)

Look-up Table (LUT) H υλοποίηση συναρτήσεων με μνήμη πολύ συχνά ονομάζεται σαν υλοποίηση με πίνακα ανεύρεσης Αυτό στη βιβλιογραφία είναι ιδιαίτερα συχνό όταν έχω μόνο μία συνάρτηση προς υλοποίηση, όταν δηλαδή η μνήμη που θα χρειαστώ είναι 2 m x1 H υλοποίηση με LUT έχει ένα "περίεργο" αποτέλεσμα. Κάθε συνάρτηση των m μεταβλητών απαιτεί ακριβώς τον ίδιο χρόνο για την υλοποίησή της ανεξάρτητα από τη πολυπλοκότητά της. Για παράδειγμα η ΝAND τεσσάρων εισόδων θα έχει ακριβώς την ίδια καθυστέρηση με τη συνάρτηση άρτιας ισοτίμίας των τεσσάρων μεταβλητών (συνήθως υλοποιούμενη σα δένδρο από 3 XOR των 2 εισόδων.

Read Only Memories (ROMs)

Read Only Memories (ROMs) - Mειονεκτήματα H απαιτούμενη μνήμη μεγαλώνει εκθετικά με τον αριθμό των μεταβλητών. Αντίστοιχα μεγαλώνει και ο χρόνος απόκρισης. Υποστηρίζονται μόνο συνδυαστικά κυκλώματα (μη ξεχνάτε και τα ακολουθιακά στοιχεία είναι στοιχεία μνήμης). Προγραμματισμός μόνο 1 φορά στο εργοστάσιο. Αυτό αφενώς καθιστά αλλαγές πολύ δαπανηρές, αφετέρου ο χρόνος κατασκευής είναι εξαιρετικά μεγάλος. Σπάνια (αν καθόλου) χρησιμοποιούνται ROM στις μέρες μας.

Μήπως φταίει η φιλοσοφία μας? Νέα φιλοσοφία : Κάθε συνάρτηση μπορεί να εκφραστεί μοναδικά σα SOP. Aρα : Φτιάξε PLDs που να παρέχουν πολλά (ίσως και όλα) από τα πιθανά Products (ελαχιστόροι). Φτιάξε PLDs που να παρέχουν πολλούς (ίσως και όλους) τους πιθανούς συνδυασμούς σε αθροίσματα (Sums) των Products Δώσε την ευκαιρία στον σχεδιαστή να χρησιμοποιεί όσους από τους πόρους του διαθέτεις μέσω του καψίματος (προγραμματισμού) ασφαλειών.

PROMs Ποιες συναρτήσεις υλοποιεί το παραπλεύρως σχήμα? Ο1 = Α(~Β) (~Α)Β = Α XOR B; O2 = AB O3 = 0 O4 = 1 + : Προγραμματισμός από το σχεδιαστή! - : Προγραμματισμός μόνο 1 φορά, όλα τα κακά των ROM. ΕPROMs : Προγραμματισμός πολλές φορές με ενδιάμεσο σβήσιμο σε UV φούρνο (παράθυρο vs ΟΤPROMs) Floating gate concept. More at : http://xtronics.com/memory/how_eprom-works.htm

EEPROMs = E 2 PROMs and Flash (nonvolatile) Electrically erasable. To σβήσιμο αντί ωρών διαρκεί ms με την εφαρμογή ειδικών τάσεων, συνήθως 12 ή 21 Volt και το σβήσιμο γίνεται one byte at a time. Αρα οι E 2 PROMs μπορούν να χρησιμοποιηθούν και σα RAM αν θέλουμε nonvolatile μνήμη και ο χρόνος δεν είναι κρίσιμος παράγοντας στην εφαρμογή μας. Paged E 2 PROMs : Oι διευθύνσεις χωρίζονται σε banks. Ένα bank μπορεί να σβηστεί όλο μαζί και ανεξάρτητα από τα υπόλοιπα. Flash E 2 PROMs : Το ολοκληρωμένο μπορεί να σβηστεί μονομιάς. Alert : Kανείς δεν εξηγεί ακριβώς που τελειώνουν τα όρια της Flash και που αρχίζουν αυτά των E 2 PROMs. Η τεχνολογία που χρησιμοποιεί ο κάθε κατασκευαστής είναι patented και τα μυστικά διαφυλάσσονται σα κόρη οφθαλμού.

Part Νumbering 1. 27(C)XXX are EPROMs or OTPROMSs. 2. 57(C)XXX are EPROMs or OTPROMSs that allow the lower 8 address lines to be multiplexed with the Data lines. (Some MCU's multiplex the lower address and data lines together). These parts still program like 27(C)XXX EPROMs on the programmer because the software algorithm takes this into account. 3. 28(C)XXX are EEPROMs with the C standing for CMOS. 4. 28FXXX are Flash EEPROMs with the F standing for Flash. Do not confuse these with EEPROMs as they are not.

Αλυτα (μέχρι ώρας) μειονεκτήματα Εκθετικός πίνακας σε σχέση με τις εισόδους Μεγάλος χρόνος σβησίματος Λύση : Χρησιμοποίηση SRAM Nέο πρόβλημα : Η SRAM είναι volatile. Αδυναμία υλοποίησης ακολουθιακών κυκλωμάτων Υπάρχει λύση στο πρώτο πρόβλημα? Μελέτες έδειξαν ότι σπάνια χρειαζόμαστε όλους τους ελαχιστόρους! Ναι αλλά πως επιλέγω πόσους θα υλοποιήσω (το ποιους δεν έχει σημασία αφού μπορώ να το λύσω με αντιμετάθεση των μεταβλητών)? Απάντηση : Βάλε όσους σου επιτρέπει η τεχνολογία και δώσε στο χρήστη τη δυνατότητα να χρησιμοποιεί όσους πραγματικά χρειάζεται. Πάλι πρόβλημα : Διαφορετικές εκφράσεις των ίδιων συναρτήσεων μπορεί να απαιτούν διαφορετικό αριθμό ελαχιστόρων. Πως ο χρήστης θα βρει τη καταλληλότερη? Ωρα να αναλάβουν και οι κατασκευαστές την ευθύνη τους!

Ολοκληρωμένα λογικής προγραμματιζόμενου πίνακα (PAL)

PALs + : O αριθμός των εισόδων στις OR είναι περιορισμένος. Αρα οι χρόνοι απόκρισης σημαντικά μικρότεροι των λύσεων ΧΧΧROM. + : tri-state, έξοδος σαν επιπλέον είσοδος

Επαυξημένες δυνατότητες σε PALs

PLΑs Το ποσοστό χρησιμοποίησης των πόρων σε ένα PAL είναι πολύ μικρό. Για παράδειγμα για μια συνάρτηση ενός ελαχιστόρου, αν η πύλη ΟR χρησιμοποιεί άλλους 6 όρους, οι όροι αυτοί θα πρέπει να προγραμματιστούν στο 0! Η ευελιξία των συνδέσεων του OR επιπέδου ήταν το κίνητρο για τα PLAs. Eνας κοινά χρησιμοποιούμενος ελαχιστόρος φτιάχνεται μόνο 1 φορά.

PLΑs Σοβαρό πρόβλημα : Για τρεις μεταβλητές εισόδου έχουμε 14 γινόμενα! Πραγματικότητα : Ο αριθμός των γινομένων που προσφέρονται είναι μικρότερος του 2 m => Δεν μπορούμε πάντα να παράγουμε όλες τις επιθυμητές συναρτήσεις ή δεν μπορούμε στο ίδιο ολοκληρωμένο να παράγουμε ταυτόχρονα όλες τις συναρτήσεις που επιθυμούμε!

Κάτι όμως έχουμε καταφέρει!

Mετά τα PALs/PLAs Δραστική μείωση των ολοκληρωμένων που χρειαζόμαστε δε μπορεί να επιτευχθεί. Γιατί δε φτιάχνουμε μεγάλα PALs / PLAs? Mεγαλώνοντας μια PAL/PLA, μεγαλώνει ο αριθμός των εισόδων στις πύλες και συνεπώς πληρώνεις το τίμημα του χρόνου. Μια πρώτη προσέγγιση είναι τα ολοκληρωμένα Gate Array Logic (GALs).

GALs Mπορούν να αντικαταστήσουν έναν αριθμό από PALs. Χρησιμοποιούν ένα επαναπρογραμματιζόμενο επίπεδο AND, ένα σταθερό επίπεδο OR αλλά εισάγουν την έννοια των μεγακυττάρων εξόδου (Οutput Logic Macro Cells OLMCs).

ΟLΜCs Mέσω των σημάτων S1 και S0, ο σχεδιαστής μπορεί να καθορίσει την πολικότητα των εξόδων, τη συνδυαστική ή ακολουθιακή φύση του ακροδέκτη Το καταχωρημένο σήμα μπορεί να αποτελέσει όρο του AND array => δυνατότητα πραγματoποίησης σύγχρονων ακολουθιακών κυκλωμάτων.

Field Programmable Logic Sequencers Yπάρχουν 2 arrays δημιουργίας ελαχιστόρων. Το πρώτο είναι το γνωστό μας, στο οποίο έχουν εισαχθεί και οι έξοδες των ακολουθιακών στοιχείων. Το δεύτερο (control) ελέγχει τα set, reset των ακολουθιακών στοιχείων. Ιδανικά ολοκληρωμένα για την υποδοχή ακολουθητών προγράμματος

Eπανατοποθέτηση του προβλήματος Εστω ότι έχω μειώσει σημαντικά τον αριθμό των ολοκληρωμένων που χρειάζομαι για να εμφωλεύσω ένα σχεδιασμό, ή Εστω ότι μπορώ να έχω (με τη πρόοδο της τεχνολογίας αυτός είναι ο δρόμος που ακολουθήθηκε) πολύ μεγάλο αριθμό από ολοένα και εξυπνότερα μεγακύτταρα. Πως επικοινωνούν όλα αυτά μεταξύ τους? (Η off-chip επικοινωνία είναι χρονοβόρα, εμβαδοβόρα και χαμηλής αξιοπιστίας)? Δυστυχώς ακόμη κι εντός ενός ολοκληρωμένου, η πλήρης διασύνδεση είναι αδύνατη! Χρειάζομαι έξυπνες (και ιεραρχικά δομημένες) αρχιτεκτονικές διασύνδεσης αυτών των υποσχεδιασμών

Λύση 1 : Complex PLDs - CPLDs Κεντροποιημένο σύστημα διασύνδεσης. Υποσχεδιασμούς για την είσοδο έξοδο. Μεγακύτταρα Σύμπλεγμα πιθανών διασυνδέσεων

CPLDs Πιο κοντινή ματιά Κάθε μεγακύτταρο παίρνει τις εισόδους του από άλλα ή από τις μονάδες εισόδου, Κάθε μεγακύτταρο έχει ένα επίπεδο AND, ένα ΟR και μία πύλη XOR που καθορίζει τη πολικότητα της εξόδου. Η έξοδος μπορεί να οδηγηθεί σε καταχωρητή και ακολούθως να αποτελέσει είσοδο στο ίδιο ή άλλο μεγακύτταρο ή να περάσει στην έξοδο μέσω ενός απομονωτή τριών καταστάσεων.

FPGAs Oτι πιο σύγχρονο Αποκεντρωμένο, ιεραρχικό και αρκετά πιο πολύπλοκο σύστημα διασύνδεσης. Πολύ πιο μικρά μεγακύτταρα. Στόχος η πλήρης αξιοποίησή τους. Ονοματολογία ανάλογα με κατασκευαστή. Αltera : Logic Cells. Xilinx : Complex Logic Blocks. Εκατομμύρια μεγακύτταρα πλέον σήμερα σε ένα ολοκληρωμένο. Γενική αρχιτεκτονική : CLBs, ΙΟΒs, Interconnect

Tην προηγούμενη φορά Ψάξαμε για ολοκληρωμένα "προγραμματιζόμενα". Σκοπός να μειώσουμε τον αριθμό ολοκληρωμένων στη πλακέτα, να αυξήσουμε την αξιοπιστία της διασύνδεσης και να προστατευτούμε από αντιγραφή. Δρόμος της μνήμης. Προβλήματα : Εκθετικός πίνακας σε σχέση με μεταβλητές. Σβήσιμο και επανεγγραφή δεδομένων. Volatility Με μνήμη δε μπορούμε να φτιάξουμε ακολουθιακά στοιχεία. Δρόμος των SOP. Προβλήματα : Δεν μπορούμε να έχουμε όλους τους ελαχιστόρους. Λύνεται με τη παρέμβαση των κατασκευαστών. Μη επεκτάσιμες αρχιτεκτονικές.

Eπανατοποθέτηση του προβλήματος Εστω ότι έχω μειώσει σημαντικά τον αριθμό των ολοκληρωμένων που χρειάζομαι για να εμφωλεύσω ένα σχεδιασμό, ή Εστω ότι μπορώ να έχω (με τη πρόοδο της τεχνολογίας αυτός είναι ο δρόμος που ακολουθήθηκε) πολύ μεγάλο αριθμό από ολοένα και εξυπνότερα μεγακύτταρα. Πως επικοινωνούν όλα αυτά μεταξύ τους? (Η off-chip επικοινωνία είναι χρονοβόρα, εμβαδοβόρα και χαμηλής αξιοπιστίας)? Δυστυχώς ακόμη κι εντός ενός ολοκληρωμένου, η πλήρης διασύνδεση είναι αδύνατη! Χρειάζομαι έξυπνες (και ιεραρχικά δομημένες) αρχιτεκτονικές διασύνδεσης αυτών των υποσχεδιασμών

Λύση 1 : Complex PLDs - CPLDs Κεντροποιημένο σύστημα διασύνδεσης. Υποσχεδιασμούς για την είσοδο έξοδο. Μεγακύτταρα Σύμπλεγμα πιθανών διασυνδέσεων (Κεντροποιημένο σύστημα)

CPLDs Πιο κοντινή ματιά Κάθε μεγακύτταρο παίρνει τις εισόδους του από άλλα ή από τις μονάδες εισόδου, Κάθε μεγακύτταρο έχει ένα επίπεδο AND, ένα ΟR και μία πύλη XOR που καθορίζει τη πολικότητα της εξόδου. Η έξοδος μπορεί να οδηγηθεί σε καταχωρητή και ακολούθως να αποτελέσει είσοδο στο ίδιο ή άλλο μεγακύτταρο ή να περάσει στην έξοδο μέσω ενός απομονωτή τριών καταστάσεων.

FPGAs Oτι πιο σύγχρονο Αποκεντρωμένο, ιεραρχικό και αρκετά πιο πολύπλοκο σύστημα διασύνδεσης. Πολύ πιο μικρά μεγακύτταρα. Στόχος η πλήρης αξιοποίησή τους. Ονοματολογία ανάλογα με κατασκευαστή. Αltera : Logic Cells. Xilinx : Complex Logic Blocks. Εκατομμύρια μεγακύτταρα πλέον σήμερα σε ένα ολοκληρωμένο. Γενική αρχιτεκτονική : CLBs, ΙΟΒs, Interconnect

4000E / EX της Xilinx (donator)

4000E / EX της Xilinx (donator) Δύο LUT των τεσσάρων μεταβλητών. F και G αντίστοιχα. Ενα LUT των τριών μεταβλητών εισόδου. Η. Στην περίπτωση που F, G και H χρησιμοποιούνται για την υλοποίηση συνδυαστικών συναρτήσεων, τα δεδομένα τους γράφονται σε αυτά κατά την εκκίνηση λειτουργίας του FPGA, βάσει μιας διαδικασίας που ονομάζεται διάρθρωσή (configuration) του. Δύο καταχωρητές (D flip-flops), τα οποία μπορούν να λειτουργήσουν είτε με τη θετική είτε με την αρνητική ακμή του σήματος ρολογιού (Κ).

4000E / EX family CLB Ενα κύκλωμα ελέγχου του καθαρισμού ή της θέσης των καταχωρητών που κι αυτό καθορίζεται κατά τη διάρθρωση του FPGA. Μια πλειάδα πολυπλεκτών για τον ορισμό της επιθυμητής διασύνδεσης μεταξύ αυτών των υποσχεδιασμών και της λογικής ακμοπυροδότησης των καταχωρητών. Τα σήματα ελέγχου αυτών των πολυπλεκτών προέρχονται από μία μνήμη που εγγράφεται κατά τη φάση διάρθρωσης.

Eνα CLB μπορεί να "χωρέσει" Οποιεσδήποτε δύο συναρτήσεις έως και τεσσάρων ανεξάρτητων μεταξύ τους μεταβλητών μαζί με οποιαδήποτε συνάρτηση τριών ανεξάρτητων μεταβλητών. (Προφανώς επειδή από το CLB υπάρχουν μόνο δύο συνδυαστικές έξοδοι μία εκ των τριών συναρτήσεων θα πρέπει να οδηγηθεί σε κάποιον από τους καταχωρητές) Οποιαδήποτε συνάρτηση πέντε μεταβλητών. Οποιαδήποτε συνάρτηση τεσσάρων μεταβλητών παράλληλα με μερικές συναρτήσεις των έξι μεταβλητών. Μερικές συναρτήσεις έως και εννέα μεταβλητών. Η υλοποίηση ακόμα και συναρτήσεων πολλών μεταβλητών, οδηγεί στη μείωση του αριθμού των CLBs που χρειάζονται για την υλοποίηση ενός σχεδιασμού αλλά και σε αυξημένη ταχύτητα μιας και αποφεύγεται διάδοση των σημάτων μεταξύ CLBs. Θυμηθείτε : αφού οι λογικές συναρτήσεις εντός του CLB υλοποιούνται με μνήμη, ο χρόνος υπολογισμού για μια συνάρτηση δύο ή τεσσάρων μεταβλητών είναι ο ίδιος Μόνο αυτά? Όχι!!!

4000E / EX της Xilinx (donator)

Eλεγχος των ακολουθιακών στοιχείων Τα ακολουθιακά στοιχεία δέχονται το ίδιο ρολόι και το ίδιο σήμα επίτρεψης ρολογιού (EC). Μπορούν να λειτουργήσουν σα flip flops ή σα latches. Η πολικότητα ενεργοποίησης είναι προγραμματιζόμενη ανεξάρτητα για κάθε καταχωρητή. στο 1 ή το 0 του ρολογιού όταν λειτουργούν σα latches και στην αρνητική ή τη θετική ακμή όταν λειτουργούν ως flip flops. Οι υποσχεδιασμοί S/R control, ελέγχουν την ασύγχρονη θέση ή καθαρισμό των καταχωρητών. Μέσω του σήματος SR / H 0 χρησιμοποιούνται και για να καθορίσουν την έξοδο των καταχωρητών στην κατάσταση αρχικοποίησης (η κατάσταση αυτή υποδηλώνεται με ένα παλμό σε ένα σχεδιασμό που ονομάζεται γενικευμένος σχεδιασμός θέσης / καθαρισμού Global Set / Reset GSR).

Xρήση CLB σαν ενσωματωμένη μνήμη Σε κάθε σχεδιασμό απαιτείται η ύπαρξη μνήμης. Οι ενσωματωμένες μνήμες (embedded memories) είναι σαφώς προτιμητέες από εξωτερικά ολοκληρωμένα μνήμης. Τα LUT είναι μνήμες! Αρα γιατί να μη μπορούν να χρησιμοποιηθούν σαν ενσωματωμένες μνήμες? Μπορούν και μάλιστα με πολλούς εναλλακτικούς τρόπους. Μπορούμε να φτιάξουμε μνήμη μίας θύρας (one port memory μονάδα μνήμης που προσφέρει μόνο ανάγνωση ή μόνο εγγραφή ανά πάσα στιγμή) που να λειτουργεί είτε με παλμό είτε με ακμή του ρολογιού, ή Μνήμη δύο θυρών (dual port memory μονάδα μνήμης στην οποία μπορούμε παράλληλα να διαβάζουμε από δύο ξεχωριστές διευθύνσεις).

Mνήμη 16x1 (x2) Edge Triggered

Mνήμη 32x1 Edge Triggered

"Κρυφά" κυκλώματα Φυσική οργάνωση Aπό τα πλέον συνήθη κυκλώματα είναι αριθμητικά κυκλώματα : αυξητές, συγκριτές, προσθετές και αφαιρέτες. Επίτευξη μεγάλων ταχυτήτων => επιπλέον λογική για γρήγορη διάδοση του κρατουμένου (γνωστή ως fast carry logic). Τα F και G LUT μπορούν να διαρθρωθούν σαν αθροιστές των δύο δυαδικών ψηφίων το καθένα με ειδική πρόνοια για τη διάδοση του κρατουμένου εξόδου σε επόμενο γειτονικό CLB. "Περίεργο" αποτέλεσμα : Ανόητο να προσπαθήσουμε να εμφωλεύσουμε σε ένα FPGA άλλη αρχιτεκτονική για αθροιστές / αφαιρέτες παρά αυτής με διάδοση κρατουμένου (ripple carry). Ενας carry look ahead αθροιστής των 16 δυαδικών ψηφίων θα είναι αργότερος από έναν αντίστοιχο ripple carry αν και οι δύο υλοποιηθούν σε FPGA και ο δεύτερος κάνει χρήση αυτών των ειδικών δυνατοτήτων των CLBs. Κάθε CLB υλοποιείται σαν ένα ορθογώνιο ή ένα τετράγωνο. Οι είσοδοι / έξοδοι του CLB είναι φυσικά διεσπαρμένες και στις τέσσερις πλευρές του CLB. Πιθανό να χρησιμοποιήσουμε ένα CLB και για λόγους διαδρόμισης, δηλαδή για να περάσουμε απλά την είσοδο στην έξοδο που βρίσκεται σε κάποια άλλη πλευρά.

Eξέλιξη της χωρητικότητας των FPGAs :1999 Σήμερα : Μπορείτε χονδρικά να πολλαπλασιάζετε τα παραπάνω νούμερα (πλην φυσικά των ακροδεκτών) x 25!!!

Συνδέονται με έναν ακροδέκτη του ολοκληρωμένου. Ο ακροδέκτης μπορεί να προγραμματιστεί να είναι είσοδος / έξοδος ή και είσοδος έξοδος. TTL / CMOS compatibility Eίσοδος έξοδος => ελέγχω πότε είναι έξοδος, αλλά είναι πάντα είσοδος. Ελέγχω την έξοδο => πύλες τριών καταστάσεων. Παθητικά στοιχεία ανύψωσης πτώσης δυναμικού => ικανότητα καλωδιωμένης λογικής. Οι ακροδέκτες του ολοκληρωμένου δεν είναι όλοι διαθέσιμοι κατά τη φάση διάρθρωσής του. IOBs

Διασυνδέσεις Υπάρχουν προ-υλοποιημένες γραμμές διασύνδεσης. Αυτές καταλήγουν σε προγραμματιζόμενα στοιχεία που μπορεί να διασυνδέσουν κομμάτια υλοποιημένων γραμμών. Ονομάζονται Programmable Switch Matrices (PSM). TTL / CMOS compatibility Kατηγορίες γραμμών : πάρα πολλές : Στον οριζόντιο και κάθετο άξονα των CLBs Γύρω από τα ΙΟΒs Συνολικές γραμμές, που οδηγούν όλα τα ακολουθιακά στοιχεία του ολοκληρωμένου. Ανάλογα με το μήκος των κομματιών τους : Απλές Διπλές Τετραπλές Οκταπλές Διακριτή μια ιεραρχία, σαφώς οριζόμενη και εύκολα επεκάσιμη

Ιεραρχία στην 4000 Ε / ΕΧ Ο αριθμός δείχνει το πόσες γραμμές είναι διαθέσιμες. Το απλό διπλό - δείχνει πόσα CLBs θα "περάσει" το τμήμα της γραμμής μέχρι να φτάσει σε ένα PSM, οπότε θα μπορεί να διασυνδεθεί με ένα άλλο

Λεπτομερής εικόνα

PSM (Αρχιτεκτονική και Προγραμματισμός του)

Ιεραρχία Διασύνδεσης

FPGAs Ηθικά διδάγματα Η εμφώλευση ενός σχεδιασμού σε αυτά έγκειται στην αποθήκευση σε μία μνήμη (στο εξής θα την αποκαλούμε μνήμη διάρθρωσης configuration memory), των τιμών που θέλουμε να περιέχουν τα LUT, των τιμών για τα σήματα ελέγχου των πολυπλεκτών στα CLBs και τα IOBs καθώς και των τιμών ελέγχου των pass τρανζίστορ στα PSMs. Ο σχεδιαστής το μόνο που χρειάζεται να παράγει σε αυτή τη περίπτωση είναι το αρχείο για τον προγραμματισμό αυτής της μνήμης (configuration / programming file).

FPGAs Να θυμάστε Η εμφώλευση ενός σχεδιασμού σε αυτά έγκειται στην αποθήκευση, των τιμών που θέλουμε να περιέχουν τα LUT, των τιμών για τα σήματα ελέγχου των πολυπλεκτών στα CLBs και τα IOBs καθώς και των τιμών ελέγχου των pass τρανζίστορ στα PSMs. Που αποθηκεύεται αυτή η πληροφορία? Σε μία μνήμη (στο εξής θα την αποκαλούμε μνήμη διάρθρωσης configuration memory). Αν είναι read only, μπορεί να περιέχει έναν ή περισσότερους μόνιμους σχεδιασμούς! Αν είναι read/write => αναδιαρθρούμενο Η/W!!! Off-line vs on-line! Να την στέλνουμε στο FPGA από ένα υπολογιστικό σύστημα. Ο σχεδιαστής το μόνο που χρειάζεται να παράγει σε αυτή τη περίπτωση είναι το αρχείο για τον προγραμματισμό του FPGA (configuration / programming file).

FPGAs - Διάρθρωση Τα σύγχρονα FPGAs παρέχουν πολλούς τρόπους διάρθρωσης (configuration modes). On-line reconfiguration! Σειρά ΧC 4000 : Σειριακή Παράλληλη Μέσω της αλυσίδας ελέγχου * 2, αφού το FPGA μπορεί να είναι κύριος / σκλάβος σε μια σειρά FPGAs (ή FPGAs CPLDs!) που θα διαρθρωθούν όλα μαζί και έχουν διασυνδεθεί κατάλληλα! * 2 για το αν χρειάζεται και εξωτερικός έλεγχος.

4000 : Μοdes διάρθρωσης Καθοριζόμενος από τα σήματα Μ2, Μ1, Μ0 Κύριος => δημιουργία CCLK ή / και διευθύνσεων για τη προσπέλαση της μνήμης των δεδομένων διάρθρωσης. Σειριακές ΕΕPROM.

4000 : Pins διάρθρωσης (πέρα των Μ2, Μ1, Μ0) Program : Σήμα αρνητικής λογικής με το οποίο ξεκινά η διαδικασία διάρθρωσης. Din : To σήμα σειριακών δεδομένων εισόδου. Dout : Το σήμα σειριακών δεδομένων εξόδου. Χρησιμοποιείται όταν έχουμε πολλά FPGAs και θέλουμε να χρησιμοποιήσουμε μόνο ένα ολοκληρωμένο μνήμης για την αποθήκευση των δεδομένων διάρθρωσής τους, οπότε και τα συνδέουμε με μια μορφή αλυσίδας (Daisy Chain). H γραμμή Dout χρησιμεύει για το πέρασμα δεδομένων στο επόμενο FPGA της αλυσίδας. Ιnit : Σήμα εισόδου / εξόδου ανοικτής καταβόθρας (open drain). Σκοπός του να δείχνει τη σταθεροποίηση της τροφοδοσίας και την ύπαρξη λάθους στη διαδικασία διάρθρωσης. Done. Σήμα εισόδου / εξόδου ανοικτής καταβόθρας. Δείχνει την ολοκλήρωση της διαδικασίας διάρθρωσης.

Flowchart Διάρθρωσης

Σειριακή φόρτωση

Παράλληλη & σειριακή φόρτωση

FPGAs => SOCs, IP + Programmable Logic Device XC 3S50 XC 3S200 XC 3S400 XC 3S1000 XC 3S1500 XC 3S2000 XC 3S4000 XC 3S5000 System Gates 50K 200K 400K 1000K 1500K 2000K 4000K 5000K Logic Cells 1,728 4,320 8,064 17,280 29,952 46,080 62,208 74,880 18x18 Multipliers 4 12 16 24 32 40 96 104 Block RAM Bits 72K 216K 288K 432K 576K 720K 1,728K 1,872K Distributed RAM Bits 12K 30K 56K 120K 208K 320K 432K 520K DCMs 2 4 4 4 4 4 4 4 I/O Standards 23 23 23 23 23 23 23 23 Max Differential I/O Pairs Max Single Ended I/O 56 76 116 175 221 270 312 344 124 173 264 391 487 565 712 784

FPGAs => Mέλλον Ενσωμάτωση στο ίδιο ολοκληρωμένο μαζί με τη προγραμματιζόμενη λογική, ενός τουλάχιστον επεξεργαστή και στατικής μνήμης. Σκοπός αυτής της κίνησης, είναι η μείωση του χρόνου επικοινωνίας μεταξύ των πλέον συνηθισμένων κομματιών που απαντάμε σε ένα σχεδιασμό. Ενσωμάτωση σχεδιαστικών πυρήνων (intellectual properties cores) που θα επιτρέψουν τη πραγματοποίηση συναρτήσεων που είναι δύσκολο ή εξαιρετικά δαπανηρό (σε χρόνο) να επιτευχθούν με τη χρήση προγραμματιζόμενων blocks. Μια ιδιαίτερη κατηγορία θα πρέπει να θεωρούνται cores που επιτρέπουν την πολύ γρήγορη είσοδο / έξοδο δεδομένων προς και από το ολοκληρωμένο, π.χ. optical transceiver cores. Ενσωμάτωση αναλογικών προγραμματιζόμενων στοιχείων, όπως τελεστικοί ενισχυτές, μεταβλητές αντιστάσεις ή πυκνωτές. Συνήθως σε ένα σχεδιασμό συνυπάρχουν ψηφιακά και αναλογικά στοιχεία, οπότε η παροχή τέτοιων προγραμματιζόμενων στοιχείων επιτρέπει την πραγματοποίηση του σχεδιασμού σε ένα ολοκληρωμένο.

Family Device Package I/O LCs BRAM DCM Mult emac MGT PowerPC Virtex-4 LX200 FF1513 960 200,448 6,048 12 96 0 0 0 Virtex-4 LX160 FF1513 960 152,064 5,184 12 96 0 0 0 Virtex-4 LX160 FF1148 768 152,064 5,184 12 96 0 0 0 Virtex-4 FX140 FF1760 896 142,128 9,936 20 192 4 24 2 Virtex-4 FX140 FF1517 768 142,128 9,936 20 192 4 24 2 Virtex-4 LX100 FF1513 960 110,592 4,320 12 96 0 0 0 Virtex-4 LX100 FF1148 768 110,592 4,320 12 96 0 0 0 Virtex-4 FX100 FF1517 768 94,896 6,768 12 160 4 20 2 Virtex-4 FX100 FF1152 576 94,896 6,768 12 160 4 20 2 Virtex-4 LX80 FF1148 768 80,640 3,600 12 80 0 0 0 Spartan-3 5000 FG900 633 74,880 1,872 4 104 0 0 0 Spartan-3 4000 FG900 633 62,208 1,728 4 96 0 0 0 Spartan-3 4000L FG900 633 62,208 1,728 4 96 0 0 0 Virtex-4 LX60 FF1148 640 59,904 2,880 8 64 0 0 0 Virtex-4 LX60 FF668 448 59,904 2,880 8 64 0 0 0 Virtex-4 FX60 FF1152 576 58,880 4,176 12 128 2 16 2 Virtex-4 FX60 FF672 352 58,880 4,176 12 128 2 16 2 Virtex-4 SX55 FF1148 640 55,296 5,760 8 512 0 0 0 Spartan-3 2000 FG900 565 46,080 720 4 40 0 0 0 Spartan-3 2000 FG676 487 46,080 720 4 40 0 0 0

Σχεδιαστική Ροή (Τι διαδικασίες πρέπει να ακολουθήσει ο σχεδιαστής) Γιατί να βάλουμε διαδικασίες? Η διαρκώς αυξανόμενη πολυπλοκότητα έχει σαν συνέπειες : Να αυξάνεται σημαντικά ο χρόνος που απαιτείται για τον σχεδιασμό του συστήματος. Να γίνεται δυσκολότερος ο έλεγχος του σχεδιασμού, τόσο από λογικής δηλαδή αν πράγματι ο σχεδιασμός υλοποιεί όλες τις απαιτούμενες συναρτήσεις ακόμη και σε ακραίες καταστάσεις) όσο και από χρονικής πλευράς (δηλαδή αν ο σχεδιασμός ακόμη και κάτω από τις χειρότερες καταστάσεις ανταποκρίνεται μέσα στα πλαίσια της μέγιστης ανεκτής καθυστέρησης διάδοσης). Να γίνεται πιο πολύπλοκη η επικοινωνία μεταξύ των διαφορετικών ανθρώπων που ασχολούνται με τον σχεδιασμό υποσυστημάτων που τελικά συνδεόμενα θα αποτελέσουν το συνολικό σύστημα.

Σημερινή κατάσταση Ο μέσος χρόνος ανταγωνιστικής παρουσίας (πρακτικά και ο μέσος χρόνος ζωής) ενός συστήματος συρρικνώνεται διαρκώς. Σχεδιασμοί οι οποίοι δεν έχουν ελεγχθεί πλήρως για την ορθή λογική και χρονική λειτουργία τους, δεν έχουν κανένα περιθώριο βιωσιμότητας. Τα σημερινά συστήματα αποτελούνται πλέον από τόσο πολλά αλλά και τόσο ειδικευμένα υποσυστήματα που τουλάχιστον για το κάθε ένα από αυτά απαιτείται και η ενασχόληση ενός εξειδικευμένου σχεδιαστή. Ολοι αυτοί θα πρέπει να μπορούν να συνεργάζονται αρμονικά έχοντας σαν βάση κάποιο κοινό υπόβαθρο.

Χρήση εργαλείων σχεδιασμού Να έχουμε ανά πάσα στιγμή μια τυπική αναπαράσταση (formal representation) του σχεδιασμού μας, κάτι που μειώνει την πολυπλοκότητα ενός ιδεατού σχεδιασμού. Να μπορούμε να περιγράφουμε τον σχεδιασμό μας σε διάφορα επίπεδα λεπτομέρειας ή αφαίρεσης (abstraction levels), με σκοπό τον εντοπισμό λογικών λαθών όσο πιο νωρίς μέσα στον σχεδιαστικό κύκλο (design cycle). Να μπορούμε να καθορίσουμε με ακρίβεια τις λειτουργίες που θα πρέπει να επιτελεί κάθε υποσύστημα του συνολικού σχεδιασμού αρκετά νωρίς μέσα στο σχεδιαστικό κύκλο, έτσι ώστε οι διάφοροι σχεδιαστές που εργάζονται σε διαφορετικά υποσυστήματα να είναι ανεξάρτητοι ο ένας από την πρόοδο και τις ιδιαιτερότητες του σχεδιασμού του άλλου. Να σχεδιάζουμε χωρίς να ενδιαφερόμαστε για την τεχνολογία υλοποίησης παρά μόνο στα τελικά στάδια πρωτοτυποποίησης του σχεδιασμού μας. Να μπορούμε να δοκιμάζουμε διάφορες τεχνολογίες υλοποίησης του σχεδιασμού μας, με σκοπό να καταλήξουμε σε αυτήν που θα ικανοποιεί τις λογικές και χρονικές απαιτήσεις που τέθηκαν με το μικρότερο δυνατό κόστος, την ελάχιστη κατανάλωση ισχύος και την μεγαλύτερη αξιοπιστία (reliability). Να μπορούμε να παράγουμε με αυτόματο τρόπο σημαντικό μέρος από την τεκμηρίωση του σχεδιασμού μας. Να καταλήγουμε σε σχεδιασμούς άμεσα επαναχρησιμοποιούμενους.

Front vs Back End Front end. Κατά την φάση αυτή εκτελούνται η εισαγωγή του σχεδιασμού στον υπολογιστή σε διάφορα επίπεδα αφαίρεσης και ο έλεγχος λογικής και χρονικής λειτουργίας του συστήματος. Η φάση αυτή είναι συνήθως ανεξάρτητη από την τελική υλοποίηση του κυκλώματος αν και για την χρονική επαλήθευση του σχεδιασμού χρησιμοποιούνται χρονικά μοντέλα για το υλικό κάποιας συγκεκριμένης τεχνολογίας. Back end. Η φάση αυτή περιέχει τις διαδικασίες αντιστοίχησης του σχεδιασμού σε κάποια συγκεκριμένη τεχνολογία, την φυσική υλοποίησή του, την εξαγωγή πραγματικών χρονικών παραμέτρων και την χρονική επαλήθευση του υλοποιημένου σχεδιασμού.

Tρόποι περιγραφής σχεδιασμού Γραφικά. Με λογικές συναρτήσεις ή με τους αντίστοιχους πίνακες αληθείας του σχεδιασμού. Με εξειδικευμένες γλώσσες περιγραφής υλικού (Hardware Description Languages όπως για παράδειγμα οι καθιερωμένες Verilog και VHDL) ή κλασσικές γλώσσες με κατάλληλες δομές για την περιγραφή της παραλληλίας του υλικού (π.χ. Handel C). Με μηχανές πεπερασμένων καταστάσεων (Finite State Machines FSM). Με γεννήτορες προκαθορισμένων σχεδιασμών (Block generators). Με οποιονδήποτε συνδυασμό των παραπάνω τεχνικών.

Φιλοσοφίες σχεδιασμού Η φιλοσοφία από το γενικότερο προς το ειδικότερο (Top down) και Η φιλοσοφία από το ειδικότερο προς το γενικότερο (Bottom up). Δημιουργείται μια ιεραρχία επιπέδων σχεδιασμού, όπου το πιο πάνω επίπεδο γίνεται πολύ πιο συγκεκριμένο βάσει του αμέσως επομένου επιπέδου της ιεραρχίας. Εισάγεται και η έννοια της επαναχρησιμοποίησης ενός υποσυστήματος (reusable design block). Η διαδικασία αλλαγών και δοκιμών γίνεται σημαντικά ευκολότερη.

Ιεραρχίες σχεδιασμού και αντιστοιχίσεις Σε σχέση με το σύστημα αρχείων : \ design \ schematic \ design \ 8-bit full-adder \ schematic \ design \ 8-bit full-adder \ 4-bit full-adder \ schematic \ design \ 8-bit full-adder \ 4-bit full-adder \ 2-bit full-adder \ schematic \ design\8-bit full-adder\4-bit full-adder\2-bit full-adder\ 1-bit full-adder \ schematic

Εξομοίωση Εξομοιωτής : s/w Eίσοδοι : netlist + είσοδες (stimuli) Για χρονική εξομοίωση + χρονική πληροφορία (από κατασκευαστή ή από σχεδιαστή). Εξοδοι : κυματομορφές / pass or fail or Tιμές σημάτων : U (uknown). Το σήμα βρίσκεται σε κατάσταση απροσδιοριστίας. Z (high Z). To σήμα παρουσιάζει υψηλή εμπέδηση. R1 (resistive 1). Το σήμα βρίσκεται στο λογικό 1, συνδεδεμένο στη τροφοδοσία μέσω κάποιας αντίστασης. Προφανώς αυτό το σήμα έχει μικρότερη οδηγητική ικανότητα από ένα σήμα που βρίσκεται στο 1. Η βραχυκύκλωση ενός τέτοιου σήματος με το 0, θα δώσει 0 στην έξοδο και όχι κατάσταση απροσδιοριστίας. R0 (resistive 0). Το σήμα βρίσκεται στο λογικό 0, συνδεδεμένο στη γείωση μέσω κάποιας αντίστασης. Προφανώς αυτό το σήμα έχει μικρότερη οδηγητική ικανότητα από ένα σήμα που βρίσκεται στο 0. Η βραυχκύκλωση ενός τέτοιου σήματος με το 1, θα δώσει 1 στην έξοδο και όχι κατάσταση απροσδιοριστίας Ιnter-tool communication, cross-probing => εύκολο debugging!

Διαδικασίες για Back end (διαφοροποιούνται ανάλογα με τη τεχνολογία υλοποίησης) Διαδικασία της σύνθεσης (synthesis) : κύκλωμα γενικευμένης τεχνολογίας (generic technology) ή σε κύκλωμα της συγκεκριμένης τεχνολογίας. Ο συνθέτης δεν είναι ικανός να παρέχει ένα μόνο κύκλωμα στη στοχευόμενη τεχνολογία. Είναι ικανός να παράγει διάφορα κυκλώματα τα οποία προφανώς υλοποιούν τις στοχευόμενες συναρτήσεις, αλλά το καθένα έχει διαφορετικά χαρακτηριστικά ταχύτητας λειτουργίας, εμβαδού υλοποίησης ή κατανάλωσης ισχύος. Ο σχεδιαστής είναι εκείνος που θα κατευθύνει τη διαδικασία της σύνθεσης και θα θέσει στον συνθέτη τους απαραίτητους στόχους περιορισμούς (constraints) τους οποίους θα προσπαθήσει ο συνθέτης να εκπληρώσει. Τις περισσότερες φορές ο συνθέτης όχι μόνο θα εκπληρώσει τους περιορισμούς του σχεδιαστή αλλά θα τους υπερκεράσει, αφήνοντας έτσι ένα περιθώριο λάθους στις εκτιμήσεις του που είναι απαραίτητο μιας και ο σχεδιασμός δεν έχει πάρει ακόμη τη τελική φυσική του μορφή. Διαδικασία γέννησης Προκαθορισμένων Συναρτήσεων (Macro Block Generation) Διαδικασία εξομάλυνσης του σχεδιασμού (Flattening) : netlist χωρίς καθόλου ιεραρχικές αναφορές. Διαδικασία αντιστοίχησης του κυκλώματος στην συγκεκριμένη τεχνολογία (Mapping) Διαδικασία συσκευασίας (packaging) PCB only

Placement (Διαφορετικοί στόχοι για PCB και διαφορετικοί για FPGA) Στόχοι : Ο συνολικός σχεδιασμός μας να καταλαμβάνει το δυνατόν μικρότερο φυσικό χώρο. Να μπορεί να γίνει απρόσκοπτα η διασύνδεση μεταξύ των στοιχειωδών κομματιών αν και όπου απαιτείται αυτή σύμφωνα με τα δεδομένα του netlist. Να εξασφαλίσουμε ότι διασυνδεδεόμενα κομμάτια του σχεδιασμού μας θα βρίσκονται σε μικρή απόσταση το ένα από το άλλο και συνεπώς οι γραμμές διασύνδεσής τους θα έχουν μικρή αντίσταση και θα εισάγουν μικρή καθυστέρηση και τον ελάχιστο δυνατό θόρυβο. Να διατάξουμε τα υποσυστήματα του σχεδιασμού μας έτσι ώστε να διευκολύνουμε την διασύνδεσή του με άλλα συστήματα. ΝP complete πρόβλημα => Use heuristics. Παρέμβαση από το σχεδιαστή πολλές φορές αναπόφευκτη.

Εξοδος Tοποθέτησης

Routing (Διαφορετικοί στόχοι για PCB και διαφορετικοί για FPGA) Στόχοι : Ολοκλήρωση του όσο δυνατόν μεγαλύτερου ποσοστού διαδρόμισης. Ποιότητα διαδρόμισης : Συνολικό μήκος διαδρόμισης Μέγιστο μήκος γραμμής Ελάχιστη απόσταση μεταξύ γραμμών ΝP complete πρόβλημα => Use heuristics. Several passes. Manual routing Beautification

Εξοδος Διαδρόμισης

Χρονική Επαλήθευση και αρχεία κατασκευής LVS (Layout vs Schematic) Εξαγωγή φυσικών μεγεθών (extraction) Aντίσταση Χωρητικότητα Θερμική πυκνότητα Eνημέρωση της βάσης δεδομένων του σχεδιασμού (back annotation) Standard Delay File (SDF) Χρήση του εξομοιωτή με την επαυξημένη πληροφορία από το φυσικό κόσμο μαζί με τα μοντέλα χρονικής εξομοίωσης.

Συνοπτικό Flowchart Αναπαράσταση σε κάποια Γλώσσα Προγραμματισμού Περιγραφή σαν Μηχανή Πεπερασμένων Καταστάσεων Γραφική Αναπαράσταση Εισαγωγή του Σχεδιασμού Περιγραφή σαν Προκαθορισμένος Σχεδιασμός Netlist Stimulus File Λογική Εξομοίωση Σύνθεση Χρονικά Μοντέλα Χρονική Εξομοίωση ή Επαλήθευση Εξομάλυνση Macro Block Generation Αντιστοίχηση στην συγκεκριμένη τεχνολογία Netlist συγκεκριμένης τεχνολογίας Διάταξη στο χώρο & Διασύνδεση Εξαγωγή φυσικών μεγεθών Αρχεία Κατασκευής Επαυξημένα Χρονικά Μοντέλα

Translate Map Place & Route Timing (Sim) Configure Flow Engine