ΒΑΣΙΚΕΣ ΤΕΧΝΟΛΟΓΙΕΣ ΥΛΟΠΟΙΗΣΗΣ Ακαδημαϊκό Έτος 2017-2018 Δρ. Τμήματα των διαφανειών προέρχονται από τo βιβλίο Ψηφιακή Σχεδίαση - Ενσωματωμένα Συστήματα με VHDL, Εκδόσεις Νέων Τεχνολογιών, Copyright 2010 και την Xilinx
Τα ψηφιακά συστήματα βρίσκονται παντού! Καταναλωτικά Υποδομές Αυτοκίνητα Αεροδιαστημική Ιατρική 2
Περιεχόμενα Εισαγωγή Μεθοδολογία σχεδίασης Γλώσσες Περιγραφής Υλικού Μοντέλα VHDL Τεχνολογίες υλοποίησης ψηφιακών συστημάτων 3
Κόστος σχεδίασης και υλοποίησης σε FPGAs + Κόστος λογισμικού: 0$!!!!! (free WebPACK Edition) Κόστος κάρτας: 79$!!!!! (στο εργαστήριο θα χρησιμοποιήσουμε πιο σύνθετα boards..) 4
Η εξέλιξη της σχεδίασης στο χρόνο Παλαιότερα: Χρήση bread-boards Καλωδίωση κυκλωμάτων SSI-MSI (DIP) με το χέρι Περιορισμός σε λογικές πύλες ( 100) Χωρίς χρήση εργαλείων λογισμικού Χρήση παλμογράφου για verification και debug Σήμερα: Χρήση development boards με FPGAs Μεγάλη πυκνότητα ολοκλήρωσης ( 100Κ Logic Cells) Σχεδίαση με γλώσσα περιγραφής υλικού Χρήση εργαλείων λογισμικού για λογική σύνθεση (logic synthesis) και υλοποίηση (implementation) για συγκεκριμένο FPGA Verification με εργαλεία προσομοίωσης Debug με χρήση ειδικών κυκλωμάτων στο υλικό (on-chip debug) 5
Ψηφιακή Σχεδίαση Ψηφιακή (Digital): κυκλώματα που χρησιμοποιούν δύο επίπεδα τάσης για αναπαράσταση της πληροφορίας Λογική (Logic): χρήση τιμών αληθείας και κανόνων λογικής για την ανάλυση των κυκλωμάτων Σχεδίαση (Design): ανταποκρίνονται σε λειτουργικές απαιτήσεις ενώ ταυτόχρονα ικανοποιούν περιορισμούς Περιορισμοί: απόδοση, μέγεθος (κόστος), ισχύς, κλπ. 6
Ενσωματωμένα Συστήματα Τα περισσότερα ψηφιακά συστήματα στον πραγματικό κόσμο περιλαμβάνουν ενσωματωμένους υπολογιστές (embedded computers) Πυρήνες επεξεργαστών, μνήμη, είσοδο/έξοδο Μπορούν να υλοποιηθούν διαφορετικές λειτουργικές απαιτήσεις από το ενσωματωμένο λογισμικό από κυκλώματα ειδικού σκοπού Συμβιβασμός μεταξύ κόστους, απόδοσης, ισχύος, κλπ. 7
Βασικοί συμβιβασμοί στη σχεδίαση Απόδοση (ταχύτητα) Κόστος (πολυπλοκότητα) Κατανάλωση ισχύος (ενέργεια) Μπορούμε να βελτιώσουμε το ένα εις βάρους ενός άλλου ή και των δύο άλλων Αυτοί οι συμβιβασμοί υπάρχουν σε κάθε επίπεδο στη σχεδίαση του συστήματος Προδιαγραφές σχεδίασης Λειτουργική περιγραφή Απόδοση, κόστος, κατανάλωση ισχύος Ως σχεδιαστές, πρέπει να κάνετε τους κατάλληλους συμβιβασμούς για να υλοποιήσετε την λειτουργία ικανοποιώντας τους περιορισμούς 8
Μεθοδολογία Σχεδίασης Τα απλά συστήματα μπορούν να σχεδιαστούν από ένα άτομο χρησιμοποιώντας ειδικές μεθόδους Τα πραγματικά συστήματα σχεδιάζονται από ομάδες Απαιτούν μια συστηματική μεθοδολογία σχεδίασης Καθορίζει Τις εργασίες που αναλαμβάνουμε Την πληροφορία που απαιτείται και παράγεται Τις σχέσεις μεταξύ των εργασιών εξαρτήσεις, καθορισμός των ακολουθιών Τα εργαλεία EDA που χρησιμοποιούνται 9
Μια Απλή Μεθοδολογία Σχεδίασης Απαιτήσεις και Περιορισμοί Σχεδίαση Σύνθεση Φυσική Υλοποίηση Κατασκευή Λειτουργική Επαλήθευση Επαλήθευση μετά τη σύνθεση Φυσική Επαλήθευση Δοκιμή OK; Ναι OK; Ναι OK; Ναι Όχι Όχι Όχι 10
Ιεραρχική Σχεδίαση Τα κυκλώματα είναι αρκετά πολύπλοκα για να σχεδιάσουμε όλες τις λεπτομέρειες με τη μία Σχεδιάζουμε υποσυστήματα για απλές λειτουργίες Συνθέτουμε το σύστημα από τα υποσυστήματα Αντιμετωπίζουμε τα υποκυκλώματα ως «μαύρα κουτιά» Επαληθεύουμε ανεξάρτητα, και έπειτα επαληθεύουμε τη σύνθεση Σχεδίαση top-down (από πάνω προς τα κάτω) ή bottom-up (από κάτω προς τα πάνω) 11
Ιεραρχική Σχεδίαση Αρχιτεκτονική Σχεδίαση Σχεδίαση Λειτουργική Επαλήθευση Όχι OK; Ναι Όχι Σχεδίαση Μονάδων Επαλήθευση Μονάδων Ναι OK; Επαλήθευση Ολοκλήρωσης Όχι OK; Ναι 12
Μεθοδολογία Συσχεδίασης Απαιτήσεις και Περιορισμοί Διαμέριση Απαιτήσεις και Περιορισμοί Υλικού Απαιτήσεις και Περιορισμού Λογισμικού Σχεδίαση και Επαλήθευση Υλικού Σχεδίαση και Επαλήθευση Λογισμικού Όχι OK; Ναι Ναι OK; Όχι Κατασκευή και Δοκιμή 13
Γλώσσες Περιγραφής Υλικού Hardware Description Language (HDL) Μια γλώσσα για την μοντελοποίηση της συμπεριφοράς και της δομής των ψηφιακών συστημάτων Electronic Design Automation (EDA) using HDL Σχεδίαση ηλεκτρονικών κυκλωμάτων με χρήση εργαλείων CAD (computer-aided design) Εισαγωγή σχεδίασης (design entry) Χρήση κώδικα αντί για σχηματικά διαγράμματα Επαλήθευση(verification) Προσομοίωση (simulation) του κώδικα Σύνθεση (synthesis) Αυτόματη παραγωγή των κυκλωμάτων Φυσική υλοποίηση (implementation) Υλοποίηση του κυκλώματος στην τεχνολογία επιλογής 14
Σύνθεση (synthesis) Συνήθως σχεδιάζουμε χρησιμοποιώντας HDL επιπέδου μεταφοράς καταχωρητή (RTL) υψηλότερο επίπεδο αφαίρεσης από τις πύλες Το εργαλείο σύνθεσης μεταφράζει το μοντέλο σε ένα κύκλωμα από πύλες που εκτελεί την ίδια λειτουργία Προσδιορίζουμε στο εργαλείο την τεχνολογία υλοποίησης που στοχεύουμε περιορισμούς στο χρονισμό, στην επιφάνεια, κλπ. Επαλήθευση μετά τη σύνθεση το κύκλωμα που προέκυψε από τη σύνθεση ικανοποιεί τους περιορισμούς 15
Φυσική Υλοποίηση (Implementation) Τεχνολογίες υλοποίησης Application-specific ICs (ASICs): Ολοκληρωμένα κυκλώματα εξειδικευμένα για εφαρμογές Field-programmable gate arrays (FPGAs): Επιτόπου προγραμματιζόμενοι πίνακες πυλών Χωροθέτηση (floor-planning): διευθετεί τα υποσυστήματα Τοποθέτηση (placement): διευθετεί τις πύλες μέσα στα υποσυστήματα Δρομολόγηση (routing): ενώνει τις πύλες με αγωγούς Φυσική επαλήθευση (physical verification) Το φυσικό κύκλωμα συνεχίζει να ικανοποιεί τους περιορισμούς Χρησιμοποιεί καλύτερες εκτιμήσεις των καθυστερήσεων 16
Πλεονεκτήματα των HDLs Υπερτερούν από τα σχηματικά διαγράμματα H μοντελοποίηση του συστήματος μπορεί να γίνει σε όλα τα επίπεδα (από τα υψηλότερα ως τα χαμηλότερα) Η περιγραφή σε HDL είναι συνήθως (?) πιο κατανοητή από ένα σχηματικό διάγραμμα Η περιγραφή σε HDL είναι ανεξάρτητη από τις βιβλιοθήκες σχεδίασης (design libraries) και τα εργαλεία CAD Υπερτερούν από τις γλώσσες προγραμματισμού Παρέχουν δομές που περιγράφουν καλύτερα το υλικό Παράλληλη εκτέλεση εντολών αντί για ακολουθιακή Παρέχουν δυνατότητα για περιγραφή χρονισμών 17
HDL: μοντελοποίηση & προσομοίωση Αρχικά οι HDLs σχεδιάστηκαν για τη μοντελοποίηση και τη προσομοίωση των συστημάτων υλικού στα υψηλότερα επίπεδα αφαίρεσης Χαρακτηριστικά μοντελοποίησης των HDLs: παράλληλη εκτέλεση ιεραρχική σχεδίαση περιγραφή χρονισμών περιγραφή ακολουθίας γεγονότων περιγραφή σύγχρονης/ασύγχρονης συμπεριφοράς 18
HDL: μοντελοποίηση & σύνθεση Αργότερα αναπτύχθηκαν εργαλεία για σύνθεση Ένα υποσύνολο των HDL είναι συνθέσιμο Synthesizable VHDL VHDL for simulation 19
VHDL VHSIC Hardware Description Language (Γλώσσα Περιγραφής Υλικού) VHSIC: Very High-Speed Integrated Circuits Ιστορική αναδρομή: Ξεκίνησε το 1981 από το Υπουργείο Άμυνας των ΗΠΑ ως γλώσσα περιγραφής ολοκληρωμένων κυκλωμάτων Οι εταιρείες ΙΒΜ, Texas Instruments, Intermetrics ανάπτυξαν και κυκλοφόρησαν την 1η έκδοση το 1985 Πρότυπο από τον οργανισμό ΙΕΕΕ ΙΕΕΕ Standard 1076-1987 (VHDL-87) IEEE Standard 1076-1993 (VHDL-93) IEEE Standard 1076-2000 and 1076 2002 (VHDL-2000, VHDL-2002) IEEE Standard 1076-2008 (VHDL-2008) Πιο διαδεδομένη στην Ευρώπη Στην Αμερική η Verilog είναι πιο διαδεδομένη Χρησιμοποιείται για την σχεδίαση συστημάτων για το διάστημα Από την NASA και την ESA 20
Τι θα πρέπει να αποφύγετε γράφοντας VHDL «Μου δουλεύει στην RTL προσομοίωση, αλλά δεν δουλεύει το post P&R Επειδή οι HDLs έχουν τις ρίζες τους σε γλώσσες προγραμματισμού (η VHDL στην Ada και η Verilog στην C) είναι εύκολες στην εκμάθηση.. αλλά δύσκολες στη σωστή χρήση τους! Οι αρχάριοι τείνουν να γράφουν κώδικα VHDL που μοιάζει με τα προγράμματα υπολογιστών πολλές μεταβλητές και πολλούς βρόχους Για αυτό: Μη γράφετε VHDL όπως θα γράφατε ένα πρόγραμμα Θυμηθείτε τις δυνατότητες που σας δίνει η VHDL (π.χ. παράλληλη εκτέλεση, περιγραφή χρονισμών, περιγραφή ακολουθίας γεγονότων) Γράφετε VHDL για σύνθεση στο υλικό Να έχετε στο μυαλό σας τι κύκλωμα αντιστοιχεί στον κώδικα VHDL που γράφετε 21
Βασικές έννοιες μοντελοποίησης σε VHDL Δήλωση οντότητας (entity declaration) Περιγράφει την εξωτερική διασύνδεση του κυκλώματος Αρχιτεκτονική (architecture) Αρχιτεκτονική δομής (structural) Το κύκλωμα μοντελοποιείται σαν συλλογή από συνδεδεμένα στοιχεία Αρχιτεκτονική συμπεριφοράς (behavioral) Περιγράφεται η λειτουργία του κυκλώματος Ας δούμε τις παραπάνω βασικές έννοιες μέσω ενός παραδείγματος 22
Παράδειγμα: Συνδυαστικό κύκλωμα Δύο δοχεία επεξεργασίας υγρών: Διακόπτης επιλογής δοχείου Σωστή θερμοκρασία (μεταξύ 25 C και 30 C) Αισθητήρες θερμοκρασίας Αισθητήρες χαμηλής στάθμης Κύκλωμα ελέγχου που ενεργοποιεί ένα κουδούνι (συναγερμού) Όταν η θερμοκρασία είναι πολύ υψηλή ή πολύ χαμηλή Όταν η στάθμη του υγρού είναι πολύ χαμηλή 23
Παράδειγμα: Συνδυαστικό κύκλωμα >30 C above_30_0 temp_bad_0 >25 C χαμηλή στάθμη >30 C above_25_0 low_level_0 above_30_1 or_0a inv_0 below_25_0 temp_bad_1 or_0b wake_up_0 select_mux 0 1 buzzer κουδούνι >25 C χαμηλή στάθμη above_25_1 low_level_1 inv_1 below_25_1 or_1a or_1b wake_up_1 select_vat_1 +V 24
Δήλωση Οντότητας (entity declaration) Περιγράφει τις εισόδους και τις εξόδους του κυκλώματος >30 C above_30_0 temp_bad_0 >25 C χαμηλή στάθμη >30 C above_25_0 low_level_0 above_30_1 or_0a inv_0 below_25_0 temp_bad_1 or_0b wake_up_0 select_mux 0 1 buzzer κουδούνι >25 C χαμηλή στάθμη above_25_1 low_level_1 inv_1 below_25_1 or_1a or_1b wake_up_1 select_vat_1 +V 25
Δήλωση Οντότητας (entity declaration) Χρήση πρότυπης βιβλιοθήκης Entity name Port list library ieee; use ieee.std_logic_1164.all; entity vat_buzzer is Port type port ( above_25_0, above_30_0, low_level_0 : in std_logic; above_25_1, above_30_1, low_level_1 : in std_logic; select_vat_1 : in std_logic; buzzer : out std_logic ); end entity vat_buzzer; Port mode Port name 26
Αρχιτεκτονικές Δομής Architecture name Entity name library dld; use dld.gates.all; architecture struct of vat_buzzer is signal below_25_0, temp_bad_0, wake_up_0 : std_logic; signal below_25_1, temp_bad_1, wake_up_1 : std_logic; begin -- components for vat 0 inv_0 : inv (above_25_0, below_25_0); or_0a : or2 (above_30_0, below_25_0, temp_bad_0); or_0b : or2 (temp_bad_0, low_level_0, wake_up_0); -- components for vat 1 inv_1 : inv (above_25_1, below_25_1); or_1a : or2 (above_30_1, below_25_1, temp_bad_1); or_1b : or2 (temp_bad_1, low_level_1, wake_up_1); select_mux : mux2 (wake_up_0, wake_up_1, select_vat_1, buzzer); end architecture struct; Architecture body 27
Αρχιτεκτονικές Συμπεριφοράς architecture behavior of vat_buzzer is begin buzzer <= low_level_1 or (above_30_1 or not above_25_1) when select_vat_1 = '1' else low_level_0 or (above_30_0 or not above_25_0); end architecture behavior; 28
Σχεδίαση με χρήση Αφαίρεσης Τα κυκλώματα περιέχουν εκατομμύρια τρανζίστορ Πώς μπορούμε να χειριστούμε αυτήν την πολυπλοκότητα; Αφαίρεση (Abstraction) Εστιάζουμε σε σημαντικές πτυχές του συστήματος, αγνοώντας κάποιες άλλες Μην παραβιάζετε υποθέσεις που σας επιτρέπουν να αγνοήσετε κάποια πτυχή! Παραδείγματα: Τα τρανζίστορ είναι ανοικτά ή κλειστά Η τάση είναι χαμηλή ή υψηλή 29
Πραγματικά Κυκλώματα Υποθέσεις πίσω από την ψηφιακή αφαίρεση Ιδανικά κυκλώματα, μόνο δύο επίπεδα τάσης, στιγμιαίες μεταβάσεις, καμία καθυστέρηση Απλοποιεί σημαντικά τη λειτουργική σχεδίαση Περιορισμοί προκύπτουν από τα πραγματικά συστατικά στοιχεία και από τη φυσική Το να ικανοποιηθούν οι περιορισμοί μας εξασφαλίζει ότι τα κυκλώματα είναι «αρκετά ιδανικά» για να υποστηρίξουν τις αφαιρέσεις 30
Ολοκληρωμένα κυκλώματα (IC) Κυκλώματα που κατασκευάζονται στην επιφάνεια ενός πλακιδίου πυριτίου Ελάχιστο χαρακτηριστικό μέγεθος που μειώνεται σε κάθε τεχνολογική γενιά Τώρα 14nm, σύντομα 10nm CMOS: συμπληρωματικά (complementary) MOSFET κυκλώματα Νόμος του Moore: αύξηση του αριθμού των τρανζίστορ +V είσοδος έξοδος 31
Επίπεδα Λογικής Πραγματικές τάσεις για «χαμηλό» και «υψηλό» επίπεδο Παράδειγμα: κατώφλι για τις εισόδους 1.4V 32
Επίπεδα Λογικής Επίπεδα λογικής TTL με περιθώρια θορύβου V OL : χαμηλή τάση εξόδου V OH : υψηλή τάση εξόδου V IL : χαμηλή τάση εισόδου V IH : υψηλή τάση εισόδου 33
Στατικό Φορτίο & Ικανότητα Οδήγησης Το ρεύμα που ρέει προς και από μια έξοδο Υψηλό: SW1 κλειστός, SW0 ανοικτός Πτώση τάσης κατά μήκος της R1 Πάρα πολύ ρεύμα: V O < V OH Χαμηλό: SW0 κλειστός, SW1 ανοικτός Πτώση τάσης κατά μήκος της R0 Πάρα πολύ ρεύμα: V O > V OL Ικανότητα οδήγησης: αριθμός των εισόδων που συνδέονται σε μια έξοδο Καθορίζει το στατικό φορτίο 34
Χωρητικό Φορτίο & Καθυστέρηση Διάδοσης Είσοδοι και αγωγοί συμπεριφέρονται ως πυκνωτές tr: χρόνος ανόδου tf: χρόνος καθόδου tpd: καθυστέρηση διάδοσης καθυστέρηση από τη μετάβαση της εισόδου στη μετάβαση της εξόδου 35
Άλλοι Περιορισμοί Καθυστέρηση αγωγού: πόσο καθυστερεί να διασχίσει η μετάβαση τον αγωγό διασύνδεσης Χρονισμός flip-flop καθυστέρηση από την ακμή του clk στην έξοδο Q η είσοδος D σταθερή πριν και μετά την ακμή του clk Ισχύς ρέει ρεύμα μέσω της αντίστασης => εκλύει θερμότητα η θερμότητα πρέπει να απαχθεί, αλλιώς το ΟΚ θα «ψηθεί»! 36
Πυκνότητα ολοκλήρωσης Νόμος του Moore Ο Gordon Moore προέβλεψε (1965, 1975) την συρρίκνωση του μεγέθους των transistors Διπλασιασμός της πυκνότητας ολοκλήρωσης (# transistors) Κάθε 12 μήνες (1965) Κάθε 24 μήνες (1975) Διπλασιασμός της απόδοσης κάθε 18 μήνες (D. House) Gordon Moore Συνιδρυτής της Intel Επίτιμος Πρόεδρος 37
Νόμος του Moore στους μικροεπεξεργαστές No exponential is forever, but we can delay forever G. Moore, ISSCC 2003 38
Η κλιμάκωση των transistors στο Νόμο του Moore 39
Επιφάνεια και Συσκευασία Τα κυκλώματα υλοποιούνται σε τσιπ πυριτίου Μεγαλύτερη επιφάνεια => υψηλότερο κόστος Τα τσιπ σε συσκευασίες με αγωγούς διασύνδεσης Περισσότεροι αγωγοί => υψηλότερο κόστος Η συσκευασία απάγει τη θερμότητα Οι συσκευασίες διασυνδέονται σε μια πλακέτα τυπωμένου κυκλώματος (PCB) Μέγεθος, σχήμα, ψύξη, κτλ., περιορίζονται από το τελικό προϊόν 40
Ολοκληρωμένα Κυκλώματα (ICs) Τα πρώτα ψηφιακά κυκλώματα Ρελέ, λυχνίες κενού, διακριτά τρανζίστορ Ολοκληρωμένα κυκλώματα (Integrated Circuits ICs), ή τσιπ Κατασκευή πολλών τρανζίστορ και συνδέσεων στην επιφάνεια ενός πλακιδίου πυριτίου (wafer) Εφευρέθηκε το 1958 από τον Jack Kilby στην Texas Instruments (TI) Ραγδαία εξέλιξη από τότε, που συνεχίζεται 41
Διαδικασία βιομηχανικής κατασκευής IC Ράβδος πυριτίου Κενά πλακίδια Συσκευή τεμαχισμού 20 έως 40 βήματα επεξεργασίας Συγκόλληση του τσιπ στη συσκευασία Δοκιμασμένοι κύβοι Κοπτικό κύβων Δοκιμασμένο πλακίδιο Δοκιμή πλακιδίων Διαμορφωμένα πλακίδια Συσκευασμένοι κύβοι Δοκιμασμένα συσκευασμένα τσιπ Δοκιμή κομματιού Αποστολή στους πελάτες 42
Κατασκευή IC : Πλακίδια Ξεκινάει με μια κυλινδρική ράβδο καθαρού πυριτίου Πριονίζεται σε πλακίδια (wafer) και λειαίνεται Τα πρώτα πλακίδια: 50mm Σήμερα: 300mm 43
Κατασκευή IC : Επεξεργασία Βήματα χημικής επεξεργασίας που βασίζονται στη φωτολιθογραφία Εμφύτευση ιόντων Εγχάραξη του υμενίου που έχουμε εναποθέσει στην επιφάνεια SiO2, πολυσιλικόνη, μέταλλο (α) πολυμερές υμένιο πλακίδιο (β) μάσκα (γ) (δ) (ε) 44
Κατασκευή IC : Δοκιμή & Συσκευασία Κάποια IC αποτυγχάνουν λόγω ατελειών Δοκιμή (test) => ποια δεν δουλεύουν Απορρίπτονται όταν το wafer γίνει τσιπ Γίνεται απόσβεση του κόστους αυτών που απορρίφθηκαν σε αυτά που δουλεύουν Η εσοδεία (yield) εξαρτάται (κατά ένα μέρος) από την επιφάνεια του IC Περιορίζουμε την επιφάνεια για να μειώσουμε το τελικό κόστος του IC Τα τσιπ που δουλεύουν συσκευάζονται και δοκιμάζονται περαιτέρω 45
SSI και MSI Το 1964, η TI εισήγαγε την οικογένεια 5400/7400 των IC TTL Ακολούθησαν άλλοι κατασκευαστές, κάνοντας την 7400 ένα «de facto standard» Μικρή κλίμακα ολοκλήρωσης (Small-scale integrated - SSI) 7400: 4 NAND πύλες Μεσαία κλίμακα ολοκλήρωσης (Medium-scale integrated - MSI) 7490: μετρητής των 4-bit 46
Άλλες Λογικές Οικογένειες Παραλλαγές στα ηλεκτρικά χαρακτηριστικά 74L : χαμηλής (Low) ισχύος 74S : δίοδοι Schottky => γρήγορη μεταγωγή 74LS : συμβιβασμός μεταξύ ταχύτητας και ισχύος 74ALS : προηγμένης χαμηλής ισχύος Schottky 74F : γρήγορη (fast) Οικογένειες CMOS 4000 οικογένεια: πολύ χαμηλής ισχύος, 3 15V 74HC, 74AHC : συμβατή με TTL 47
Υψηλή Κλίμακα Ολοκλήρωσης Δεκαετία 70: Large-Scale Integration LSI (χιλιάδες τρανζίστορ) Εφικτή η κατασκευή μικρών μικροεπεξεργαστών Προσαρμοσμένα LSI για εφαρμογές υψηλού όγκου Χρήση SSI/MSI κυρίως για glue logic Επόμενες προσθήκες στα 74xx αφορούσαν σε glue logic και λογική διασύνδεσης Π.χ., tristate drivers πολλαπλών bit, καταχωρητές Άλλες λειτουργίες υποσκελίστηκαν από τα PLD 48
Παράδειγμα MSI : Μετρητής/Οθόνη 74LS390: διπλός δεκαδικός μετρητής 74LS08 glue CP0 CP1 MR Q0 Q1 Q2 Q3 CP0 CP1 MR Q0 Q1 Q2 Q3 CP0 CP1 MR Q0 Q1 Q2 Q3 CP0 CP1 MR Q0 Q1 Q2 Q3 CP0 CP1 MR Q0 Q1 Q2 Q3 74LS47: αποκωδικοποιητής 7-τμημάτων A B C D LT RBI a b c d e f g RBO 49
Παράδειγμα MSI : Μετρητής / Display 50 MR Q0 Q1 Q2 Q3 CP0 CP1 MR Q0 Q1 Q2 Q3 CP0 CP1 A B C D LT RBI a b c d RBO e f g A B C D LT RBI a b c d RBO e f g MR Q0 Q1 Q2 Q3 CP0 CP1 A B C D LT RBI a b c d RBO e f g MR Q0 Q1 Q2 Q3 CP0 CP1 A B C D LT RBI a b c d RBO e f g CP MR +V +V +V +V +V +V +V +V
VLSI και ASIC Δεκαετία 80: Πολύ μεγάλη κλίμακα ολοκλήρωσης (Very Large Scale Integration) Έπειτα ULSI (Ultra Large Scale), έπειτα τι; Σήμερα το VLSI απλά σημαίνει σχεδίαση IC Ολοκληρωμένα κυκλώματα εξειδικευμένα για εφαρμογές (Application-Specific IC - ASIC) Εφικτά λόγω εργαλείων CAD και εργοστασίων κατασκευής Συχνά, σχεδιάζονται για μια γκάμα σχετικών προϊόντων σε ένα τμήμα της αγοράς Πρότυπα προϊόντα εξειδικευμένα για εφαρμογές (Application-Specific Standard Products - ASSPs) Π.χ., IC για κινητά τηλέφωνα Intel 80386 Apple A9 processor 51
Τα οικονομικά των ASIC Ένα ASIC έχει χαμηλότερο κόστος από ένα FPGA Αλλά περισσότερη προσπάθεια για σχεδίαση/επαλήθευση Υψηλότερο μη επαναλαμβανόμενο κόστος τεχνικής μελέτης (Non-Recurring Engineering - NRE cost) Απόσβεση σε όλη την παραγωγή Τα ASIC έχουν νόημα για μεγάλες ποσότητες Πλήρως προσαρμοσμένα (full custom) Σχεδιάζουμε κάθε τρανζίστορ και αγωγό Υψηλό NRE, αλλά καλύτερη απόδοση, μικρότερη επιφάνεια Πρότυπα κελιά (standard cells) Χρησιμοποιούμε βασικά στοιχεία από τη βιβλιοθήκη του εργοστασίου κατασκευής 52
Programmable Logic Devices (PLDs) Οι προγραμματιζόμενες διατάξεις λογικής (PLD) μπορούν να προγραμματιστούν μετά την κατασκευή για να εκτελέσουν διάφορες λειτουργίες Αντίθετα με τα SSI/MSI IC και τα ASICs Υψηλότερο κόστος μονάδας από τα ASICs Αλλά χαμηλότερο NRE Ιδανικά για μικρούς και μεσαίους όγκους παραγωγής 53
Programmable Array Logic (PAL) Προγραμματιζόμενη λογική πίνακα (PAL) Monolithic Memories Inc (MMI) το 1978 Τα πρώτα ευρέως χρησιμοποιούμενα PLD Προγραμματίζονται καίγοντας συνδέσμους ασφαλείας στο κύκλωμα με ειδικό προγραμματιστή (Device Programmer) PAL16L8 16 εισόδους, 8 εξόδους active low PAL16R8 16 εισόδους, 8 εξόδους μέσω καταχωρητή 54
PAL16L8 I8 I10 I1 I2 + I3 I10 55
Κύκλωμα Εξόδου του PAL16R8 Το μονοπάτι ανάδρασης είναι χρήσιμο για την υλοποίηση FSM 56
Σχεδίαση με PAL Χρήσιμα ακόμα και για απλά κυκλώματα H απλή συσκευασία μειώνει το κόστος Περιγραφή συνάρτησης με λογικές εξισώσεις Σε HDL, ή σε μια απλή γλώσσα (πχ ABEL) Σύνθεση του αρχείου του χάρτη των ασφαλειών που χρησιμοποιείται από το device programmer Εάν η σχεδίαση δεν χωράει την διαιρούμε σε πολλαπλά PAL ή χρησιμοποιούμε ένα πιο σύνθετο PLD Περιγραφή μετρητή 4-bit με ABEL 57
Generic Array Logic (GALs) Γενική λογική πίνακα (GAL) Προγραμματιζόμενα μακροκελιά λογικής εξόδου (Programmable Output Logic Macrocells - OLMCs) Χρήση τεχνολογίας EEPROM Π.χ., GAL22V10 58
Complex PLDs (CPLDs) Στοίβαξη πολλαπλών PAL σε ένα IC Προγραμματιζόμενο δίκτυο διασύνδεσης Τεχνολογία RAM για αποθήκευση της διαμόρφωσης (configuration) Ενσωματωμένο PAL 59
Field Programmable Gate Arrays (FPGAs) Επιτόπου Προγραμματιζόμενοι Πίνακες Πυλών Μικρότερα λογικά μπλοκ, ενσωματωμένη SRAM Ισοδύναμα με χιλιάδες ή εκατομμύρια πύλες IO IO IO IO IO IO IO IO LB LB LB LB LB LB LB LB RAM LB LB LB LB IO IO IO IO LB LB LB LB LB LB LB LB RAM LB LB LB LB IO IO IO IO LB LB LB LB LB LB LB LB RAM LB LB LB LB IO IO Προγραμματιζόμενη διασύνδεση IO IO IO IO IO IO 60
Ένα «ιδανικό» FPGA logic block Look Up Table 4 εισόδων Υλοποιεί συναρτήσεις συνδυαστικής λογικής Ο χρονισμός είναι ανεξάρτητος της συνάρτησης Flip-flop Μπορεί να αποθηκεύει την έξοδο του LUT 61
Υλοποίηση ενός LUT 4 εισόδων Ένα LUT 4 εισόδων υλοποιείται ως μια μνήμη 2 n x 1 Οι είσοδοι επιλέγουν μια από τις 2 n θέσεις μνήμης Οι θέσεις μνήμης (latches) έχουν φορτωθεί με τις τιμές του configuration bitstream Οι είσοδοι ελέγχου του πολυπλέκτη αποτελούν τις εισόδους του CBL Ένα LUT n εισόδων μπορεί να υλοποιήσει οποιαδήποτε συνάρτηση n εισόδων! 62
Υλοποίηση λογικής συνάρτησης με LUT Ένα LUT n εισόδων αποτελεί μια άμεση υλοποίηση ενός πίνακα αληθείας Κάθε θέση μνήμης αποθηκεύει την τιμή του πίνακα αληθείας για τον συνδυασμό εισόδων 1 ο latch 2 ο latch Παράδειγμα: LUT 2 εισόδων Υλοποιεί οποιαδήποτε συνάρτηση 2 εισόδων 63
Παράδειγμα logic block της Xilinx Λογικά μπλοκ των FPGA της Xilinx Πίνακες αναζήτησης (Lookup Tables - LUTs) Flip-flop Αρκετά σύνθετο να προγραμματίσουμε με το χέρι τα λογικά μπλοκ Αφήνουμε τα εργαλεία σύνθεσης να αντιστοιχήσουν τον κώδικα HDL σε λογικά μπλοκ και να προγραμματίσουν τη διασύνδεση G4 G3 G2 G1 F5IN BY SR F4 F3 F2 F1 LUT I4 O I3 I2 I1 LUT I4 O I3 I2 I1 Λογική Κρατουμένου και Ελέγχου Λογική Κρατουμένου και Ελέγχου S D CE clk R S D CE clk R Q Q COUT YB Y YQ XB X XQ BX CIN CE CLK 64
Παράδειγμα LUT 6-εισόδων με Διπλή Έξοδο Τα LUTs μπορούν να είναι δύο LUTs 5-εισόδων με κοινή είσοδο Οποιαδήποτε λογική συνάρτηση των 6 μεταβλητών ή δύο συναρτήσεις των 5 μεταβλητών 65
Μπλοκ Εισόδου/Εξόδου (I/O) Συνήθως, υποστηρίζουν συνδυαστική είσοδο/έξοδο ή μέσω καταχωρητή, και τριών καταστάσεων Προγραμματιζόμενα επίπεδα λογικής, ρυθμός μεταβολής, κατώφλι εισόδου, D CE clk D CE Q Q 0 1 0 1 +V clk D Q CE clk 66
Πλατφόρμες FPGA Περιλαμβάνουν ενσωματωμένους πυρήνες για ειδικές εφαρμογές Πυρήνες επεξεργαστών Αριθμητικούς πυρήνες επεξεργασίας σήματος Πυρήνες διασύνδεσης δικτύου Το ενσωματωμένο λογισμικό μπορεί να εκτελεστεί από την SRAM στο FPGA Λύση μονού τσιπ, μειώνει το κόστος Αποφεύγει το υψηλό NRE του ASIC Xilinx Zynq UltraScale+ MPSoC 67
Συσκευασίες IC Τα IC ενθυλακώνονται σε προστατευτική συσκευασία Εξωτερικοί ακροδέκτες για να συνδεθούν με την πλακέτα κυκλώματος Καλώδια συγκόλλησης ή συνδέσεις flip-chip 68
Printed Circuit Boards (PCBs) Πλακέτες τυπωμένου κυκλώματος Στρώματα μεταλλικής καλωδίωσης μεταξύ στρωμάτων μονωτικού υλικού (fiberglass) Κατασκευάζεται με χρήση φωτολιθογραφίας και εγχάραξης Οι αγωγοί διασυνδέουν IC και άλλα στοιχεία Εξωτερικές συνδέσεις σε άλλα στοιχεία του συστήματος 69
Through-Hole PCB Πλακέτα διαμέσου οπής Οι ακροδέκτες της συσκευασίας του IC περνούν μέσα σε οπές που έχουν γίνει με τρυπάνι Κόλληση με τους αγωγούς του PCB που ενώνονται με την οπή χρησιμοποιώντας κασσίτερο 70
Surface Mount PCB Πλακέτα τοποθέτησης επιφανείας Κόλληση των ακροδεκτών της συσκευασίας του IC με τους αγωγούς στην επιφάνεια του PCB χρησιμοποιώντας κασσίτερο Τα χαρακτηριστικά των συσκευασιών και του PCB είναι γενικά μικρότερα σε σχέση με την πλακέτα διαμέσου οπής 71
Μονάδες Πολλαπλών Τσιπ Multi-Chip Modules (MCMs) Πολλά IC σε ένα κεραμικό υπόστρωμα Μπορούν επίσης να περιλαμβάνουν παθητικά και διακριτά στοιχεία πάνω στο υμένιο Εξωτερικές συνδέσεις για τοποθέτηση στο PCB Ιδανικά για εφαρμογές υψηλής πυκνότητας Π.χ., κινητά τηλέφωνα 72
Περίληψη Εισαγωγή Μεθοδολογία σχεδίασης Γλώσσες Περιγραφής Υλικού Μοντέλα VHDL: δομής, συμπεριφοράς Τεχνολογίες υλοποίησης ψηφιακών συστημάτων Εκθετική πρόοδος στην κατασκευή των IC Λογικές οικογένειες SSI και MSI TTL ASICs PALs, CPLDs, FPGAs, πλατφόρμες FPGA 73