ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Σχεδίαση Ψηφιακών Συστημάτων Ενότητα 1: Εισαγωγή - Ιστορία Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοπός Ενότητας Ιστορική αναδρομή στην εξέλιξη των ψηφιακών υπολογιστικών συστημάτων Εισαγωγή στις βασικές έννοιες της VHDL 4
Περιεχόμενα Ενότητας Περιγραφή Ψηφιακών Συστημάτων Βασική μεθοδολογία σχεδιασμού Βασικές έννοιες της VHDL 5
Ο μηχανισμός των Αντικυθύρων -1 6
Ο μηχανισμός των Αντικυθύρων -2 http://www.antikythera-mechanism.gr/ 7
Ο μηχανισμός των Αντικυθύρων -3 8
Η πρώτη αριθμομηχανή The Babbage Difference Engine (1832) 25,000 parts cost: 17,470 ~22 ατμομηχανές τραίνου http://en.wikipedia.org/wiki/difference_engine 9
Προιστορία και Ιστορία της Ηλεκτρονικής... 1910: Εφεύρεση του πρώτου ηλεκτρονικού ενεργού στοιχείου (Ηλεκτρονική λυχνία κενού) 1920-1940: Ανάπτυξη της βασικής θεωρίας κυκλωµάτων Ανόρθωση Εξοµάλυνση Ενίσχυση ιαµόρφωση Ευστάθεια 1946: Κατασκευή του πρώτου ηλεκτρονικού στοιχείου στερεάς κατάστασης (δίοδος) και αµέσως µετά του διπολικού transistor από τον Schokley 1957: Κατασκευή του πρώτου Metal Oxide Semiconductor transistor στη Γαλλία βασισµένο σε ιδέα του Lindfield από το 1927 1985-σήµερα: Ανάπτυξη των ψηφιακών O.K. Επανάκαµψη του αναλογικού σχεδιασµού Ο.Κ. αναλογικών-ψηφιακών σηµάτων Ολοκληρωµένα συστήµατα σε ένα chip (System on Chip, SoC) 10
ENIAC Ο πρώτος Η/Υ (1946) 18000 λυχνίες 1500 διακόπτες 200 KW 160 m2 Υπολογισμός τροχιάς βλήματος σε 30 αντί 20 ώρες Σχεδίαση ατομικής βόμβας ENIAC (Electronic Numerical Integrator And Computer) http://ftp.arl.mil/ftp/historic-computers/ 11
ENIAC Ο πρώτος Η/Υ (1946) 10-bit accumulator!! Προγραμματίζοντας τον ENIAC 12
Μερικοί από τους πρώτους Η/Υ ENIAC EDVAC 1946 1948 ORDVAC BRLESC I&II 1952 1962 13
Σμίκρυνση των κυκλωμάτων... 14
Το πρώτο motherboard 15
Το πρώτο Τρανζίστορ Bipolar point-contact Bell Labs 1947 16
Τα πρώτα Ολοκληρωμένα Κύκλωματα Planar transistor 1958 TI 1961 First flip-flop, Fairchild & 1959 Fairchild 4 Trans, 5 Res, 0.06 in http://smithsonianchips.si.edu/augarten/index.htm 17
Τα πρώτα Ολοκληρωμένα Κύκλωματα MOS IC (RCA, 1962) Op amp (Fairchild, 1965) http://smithsonianchips.si.edu/augarten/index.htm 18
The MOS Transistor Μήκος καναλιού (L) Χαρακτηριστικό Τεχνολογίας Gate Oxide Field Oxide GATE N+ N+ P-type Source/Drain Regions Field Oxide 19
Intel 4004 Micro-Processor 20
Intel Pentium (II) microprocessor 21
Intel Pentium (IV) microprocessor 22
System on Chip (SoC) 23
O νόμος του Moore -1 24
25
O νόμος του Moore -2 26
Φόρος τιμής... 27
Περιγραφή Ψηφιακών Συστημάτων Η VHDL χρησιμοποιείται για την περιγραφή (modeling) ενός συστήματος Ανάπτυξη μοντέλων για Προσδιορισμό προδιαγραφών/απαιτήσεων Τεκμηρίωση (Documentation) Έλεγχο με εξομοίωση (Τesting) Επαλήθευση (Formal Verification) Σύνθεση Στόχος Αξιόπιστος σχεδιασμός με ελαχιστοποίηση κόστους και χρόνου ανάπτυξης Αποφυγή σχεδιαστικών λαθών 28
Οταν αποτυγχάνει η σύνθεση (!!) Αλλαγή αλγορίθμου βελτιστοποίησης Επανεγγραφή του κώδικα VHDL Αλλαγή των ορίων λειτουργίας του κυκλώματοςq θερμοκρασία, τάση τροφοδοσίας, συχνότητα ρολογιού Αλλαγή τεχνολογίας (FPGA, ASIC) Αλλαγή εργαλείου σύνθεσης Βελτιστοποίηση της λογικής με το χέρι... Αλλαγή των παραμέτρων-στόχων της βελτιστοποίησης 29
VHDL Components Διαχωρισμός της διασύνδεσης (interface) από την υλοποίηση Χρήση βιβλιοθηκών βασικών στοιχείων (components) για την υλοποίηση συστημάτων 30
Βασικές έννοιες της VHDL Interfaces (Διασύνδεση) Behavior (Συμπεριφορά) Structure (Δομή) Analysis (Ανάλυση) Simulation (Εξομοίωση) Synthesis (Σύνθεση) Test Benches (Έλεγχος) 31
Περιγραφή διασυνδέσεων (Interfaces) Entity (Οντότητα) Περιγράφει τις εισόδους/εξόδους ενός στοιχείου (input/output ports) entity name port names port mode (direction) entity reg4 is port ( d0, d1, d2, d3, en, clk : in std_logic; q0, q1, q2, q3 : out std_logic ); end entity reg4; reserved words port type punctuation 32
Περιγραφή Συμπεριφοράς (Behavioral Description) Αρχιτεκτονική (Architecture body) Περιγράφει την υλοποίηση μιας οντότητας (entity) Μπορεί να υπάρχουν περισσότερες από μια για κάθε οντότητα Behavioral architecture (Συμπεριφορά) περιγράφει τον αλγόριθμο που υλοποιεί το στοιχείο Π.χ. Πολ/σμος, κωδικοποιητής εικόνας JPEG περιέχει Διαδικασίες (process statements), οι οποίες περιέχουν sequential statements, including signal assignment statements and wait statements 33
Παράδειγμα architecture behav of reg4 is begin storage : process is variable stored_d0, stored_d1, stored_d2, stored_d3 : std_logic; begin if en = '1' and clk = '1' then stored_d0 := d0; stored_d1 := d1; stored_d2 := d2; stored_d3 := d3; end if; q0 <= stored_d0 after 5 ns; q1 <= stored_d1 after 5 ns; q2 <= stored_d2 after 5 ns; q3 <= stored_d3 after 5 ns; wait on d0, d1, d2, d3, en, clk; end process storage; end architecture behav; 34
Delta delay 35
Περιγραφή Δομής (Structural Description) Structural architecture Περιγράφεται ένα σύστημα ως σύνδεση υποσυστημάτων Περιέχει Ορισμούς σημάτων (signal declarations), για τις εσωτερικές διασυνδέσεις Τα ports συμπεριφέρονται ως σήματα component instances Χρήση υπαρχουσών οντοτήτων (entity/architecture pairs) Απεικόνιση εισόδων/εξόδων (port maps) Σύνδεση σημάτων με τις εισόδους/εξόδους της οντότητας wait statements 36
Παράδειγμα Δομής -1 d0 bit0 d_latch d q clk q0 d1 bit1 d_latch d q clk q1 d2 bit2 d_latch d q clk q2 d3 bit3 d_latch d q q3 gate clk en clk and2 a y b int_clk 37
Παράδειγμα Δομής -2 Αρχικά ορίζονται οι οντότητες (entities) και οι αρχιτεκτονικές για το D-latch και την πύλη and entity d_latch is port ( d, clk : in std_logic; q : out std_logic ); end entity d_latch; architecture basic of d_latch is begin latch_behavior : process is begin if clk = 1 then q <= d after 2 ns; end if; wait on clk, d; end process latch_behavior; end architecture basic; entity and2 is port ( a, b : in std_logic; y : out std_logic); end entity and2; architecture basic of and2 is begin and2_behavior : process is begin y <= a and b after 2 ns; wait on a, b; end process and2_behavior; end architecture basic; 38
Παράδειγμα Δομής -3 Χρήση των βασικών στοιχείων (components) για υλοποίηση ενός καταχωρητή architecture struct of reg4 is signal int_clk : std_logic; component d_latch is port ( d, clk : in std_logic; q:out std_logic); end component; component and2 is port (a, b : in std_logic; y : out std_logic ); end component; begin bit0 : d_latch port map ( d0, int_clk, q0 ); bit1 : d_latch port map ( d1, int_clk, q1 ); bit2 : d_latch port map ( d2, int_clk, q2 ); bit3 : d_latch port map ( d3, int_clk, q3 ); gate : and2 port map ( en, clk, int_clk ); end architecture struct; 39
Μικτή περιγραφή συμπεριφοράςδομής Σε μία αρχιτεκτονική μπορεί να αναμειγνύονται περιγραφές συμπεριφοράς και δομής: Διαδικασίες και χρήση βασικών στοιχείων (process statements and component instances) Ονομάζονται concurrent statements Οι διαδικασίες μπορούν να διαβάζουν και να αποδίδουν τιμή σε σήματα 40
Πολλαπλασιαστής multiplier shift_reg control_ section multiplicand shift_ adder Το τμήμα επεξεργασίας δεδομένων (data path) περιγράφεται δομικά (structural) Η μονάδα ελέγχου (control unit) περιγράφεται σε επίπεδο συμπεριφοράς (behavioral level) reg product 41
Έλεγχος συστημάτων -1 42
Έλεγχος συστημάτων -2 Έλεγχος της σχεδίασης με εξομοίωση Το μοντέλο ελέγχου (test bench) περιλαμβάνει: Μία αρχιτεκτονική που περιέχει τη μονάδα που θα ελεγχθεί (design under test, DUT) Γεννήτρια παλμών που εφαρμόζει τις κατάλληλες ακολουθίες εισόδου στο DUT Καταγραφέα των σημάτων εξόδου Στο περιβάλλον του εξομοιωτή Σε διαδικασία (process) που επαληθεύει την ορθή λειτουργία 43
Συγκριτικός έλεγχος Έλεγχος ορθής υλοποίησης ενός συστήματος σε διαφορετικά επίπεδα Επίπεδο δομής --> Επίπεδο συμπεριφοράς Το μοντέλο ελέγχου περιλαμβάνει δύο περιγραφές του ίδιου συστήματος Συμπεριφορά και δομή σε χαμηλότερο επίπεδο (register level, gate level) Εξομοίωση και των δύο με τις ίδιες εισόδους Σύγκριση των αποτελεσμάτων Πρέπει να λαμβάνονται υπόψη οι καθυστερήσεις 44
Τέλος Ενότητας