ΗΜΥ-210: Λογικός Σχεδιασμός Εαρινό Εξάμηνο 2005 ΗΜΥ 210: Λογικός Σχεδιασμός, Εαρινό Εξάμηνο 2005 Νοε-18 ΗΜΥ-210: Λογικός Σχεδιασμός Εαρινό Εξάμηνο 2005 Κεφάλαιο 3 -i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
ΗΜΥ 210: Λογικός Σχεδιασμός, Εαρινό Εξάμηνο 2005 Περίληψη ΗΜΥ 210: Λογικός Σχεδιασμός, Εαρινό Εξάμηνο 2005 Νοε-18 Αρχές σχεδιασμού Ιεραρχία σχεδιασμού Σχεδιασμός από πάνω προς τα κάτω (Top-Down) Σχεδιασμός με την χρήση υπολογιστή (Computer Aided Design - CAD) Γλώσσες προγραμματισμού/περιγραφής υλικού (Ηardware Description Languages – HDLs) Λογική σύνθεση Ανάλυση συνδυαστικών κυκλωμάτων Παραγωγή λογικών συναρτήσεων & πινάκων αληθείας Λογική προσομοίωση Διαδικασία σχεδιασμού Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Συνδυαστικά Κυκλώματα Ένα συνδυαστικό κύκλωμα αποτελείτε από λογικές πύλες των οποίων οι έξοδοι, ανά πάσα στιγμή, καθορίζονται από κάποιο λογικό συνδυασμό των τιμών στις εισόδους του κυκλώματος. Για n μεταβλητές εισόδου, υπάρχουν 2n πιθανοί (δυαδικοί) συνδυασμοί τιμών εισόδου. Για κάθε τέτοιο συνδυασμό, υπάρχει μια πιθανή δυαδική τιμή στην κάθε έξοδο. Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Συνδυαστικά Κυκλώματα (συν.) Ένα συνδυαστικό κύκλωμα μπορεί να περιγραφεί από: Ένα πίνακα αληθείας που περιέχει τις τιμές στις εξόδους του κυκλώματος για κάθε πιθανό συνδυασμό στις εισόδους του κυκλώματος, ή m δυαδικές συναρτήσεις, 1 για κάθε μεταβλητή εξόδου. Συνδυαστικό Κύκλωμα n-είσοδοι m-έξοδοι • • • • • • Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Ακολουθιακά Κυκλώματα Τα συνδυαστικά κυκλώματα είναι χωρίς-μνήμη. Οι τιμές στις εξόδους τους εξαρτώνται ΜΟΝΟ από τις τρέχουσες τιμές στις εισόδους. Τα ακολουθιακά κυκλώματα αποτελούνται από συνδυαστική λογική και από στοιχεία μνήμης (χρησιμοποιούνται για αποθήκευση κάποιων καταστάσεων του κυκλώματος). Οι τιμές στις εξόδους εξαρτώνται από τις τρέχουσες τιμές στις εισόδους και τις τιμές προηγούμενων εισόδων (που έχουν αποθηκευτεί στα στοιχεία μνήμης). Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Συνδυαστικά vs. Ακολουθιακά Κυκλώματα Συνδυαστικό κύκλωμα n-είσοδοι m-έξοδοι (Εξαρτάται μόνο από τις τιμές στις εισόδους) Συνδυαστικό κύκλωμα m-έξοδοι n-είσοδοι Ακολουθιακό Κύκλωμα Στοιχεία Μνήμης Επόμενη κατάσταση Τρέχουσα κατάσταση Ακολουθιακό κύκλωμα Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων Αρχές Σχεδιασμού Ο σύγχρονος ψηφιακός σχεδιασμός ασχολείται με διάφορες μεθόδους και εργαλεία που χρησιμοποιούνται στον σχεδιασμό και στην επαλήθευση σύνθετων κυκλωμάτων και συστημάτων. Σημαντικές Αρχές Σχεδιασμού Ιεράρχηση σχεδιασμού Σχεδιασμός από πάνω προς τα κάτω (Top-Down) Σχεδιασμός με την βοήθεια του υπολογιστή (CAD) Γλώσσες προγραμματισμού / περιγραφής υλικού (VHDL, Verilog) Λογική Σύνθεση Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων Ιεράρχηση Σχεδιασμού Η τεχνική “Διαίρει και Βασίλευε” χρησιμοποιείται για την επιτυχή αντιμετώπιση των απαιτήσεων σχεδιασμού πολύπλοκων κυκλώματα και συστήματα (πολλές φορές της τάξη των εκατομμυρίων πυλών). Το κύκλωμα σπάζει σε κομμάτια (blocks), επαναληπτικά, μέχρι να φτάσουμε στα πρωταρχικά (primitive) στοιχεία. Πρόκληση: Επιβεβαίωση ότι το κομματιασμένο κύκλωμα πράγματι λειτουργεί όπως θα έπρεπε. Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Ιεράρχηση Σχεδιασμού Παράδειγμα: Περιττή συνάρτηση 9-εισόδων Ιεράρχηση Σχεδιασμού Παράδειγμα: Περιττή συνάρτηση 9-εισόδων Ανώτατο Επίπεδο: 9 εισόδοι, 1 έξοδος 2ο Επίπεδο: Τρία 3-bit blocks περιττών συναρτήσεων σε δύο επίπεδα 3ο Επίπεδο: Δύο 2-bit συναρτήσεις exclusive-OR 4ο Επίπεδο (τελευταίο): Τέσσερις πύλες NAND 2-εισόδων Πρωταρχικό στοιχείο: NAND Ο σχεδιασμός απαιτεί 4 X 2 X 4 = 32 πύλες NAND 2-εισόδοων Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Η ιεράρχηση της περιττής συνάρτησης 9-εισόδων (εναλλακτική όψη) Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Γιατί η ιεράρχηση είναι χρήσιμη; Μειώνει την πολυπλοκότητα του σχεδιασμού και της αντιπροσώπευσης του συνολικού σχεδίου (schematic) του κυκλώματος. Είναι πιθανή η επαναχρησιμοποίηση (reuse) των διάφορων κομματιών. Πανομοιότυπα κομμάτια μπορούν να χρησιμοποιηθούν σε διάφορα σημεία του σχεδιασμού ή και ακόμη σε διαφορετικούς σχεδιασμούς (βιβλιοθήκες συμβόλων). Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Σχεδιασμός από πάνω προς τα κάτω Χάρτης Gajski και Kuhn’s Y Αρχιτεκτονική δομής συμπεριφοράς Αλγοριθμικό Επεξεργαστής πάνω-κάτω Λειτουργικό συστήματα Μονάδες Υλικού αλγόριθμοι Λογική ALUs, Καταχωρητές καταχώρηση μεταφοράς Κύκλωμα πύλες, FFs λογική συναρτήσεις μεταφοράς τρανζίστορ Rectangles Cell, Module Plans Floor Plans κάτω-πάνω Clusters Physical Partitions φυσικό/γεωμετρικό Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Σχεδιασμός με τη βοήθεια Η/Υ (Computer-Aided Design - CAD) Επιτρέπει την αυτοματοποίηση του σχεδιασμού πολύπλοκων κυκλωμάτων και συστημάτων. Παραδείγματα εργαλείων CAD: Γραφικοί επεξεργαστές (Graphic/Schematic Editors) Προσομοιωτές λογικής (Logic simulators) Προσομοιωτές χρονισμού (Timing simulators) Συνθέτες λογικής (Logic synthesizers): βελτιστοποίηση χώρου, καθυστέρησης, ισχύος, κτλ. Γλώσσες Προγραμματισμού Υλικού (Hardware Description Languages - HDLs) VHDL, Verilog, ABEL Και πολλά άλλα … Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Γλώσσες Προγραμματισμού Υλικού (Hardware Description Languages - HDLs) Οι γλώσσες HDL επιτρέπουν και παράλληλη εκτέλεση, ενώ οι γλώσσες προγραμματισμού υψηλού επιπέδου (π.χ. C, C++) επιτρέπουν μόνο σειριακή εκτέλεση. Χρήση: Μια εναλλακτική αναπαράσταση από αυτή των γραφικών/σχηματικών επεξεργαστών (περιγραφή δομής). Χρησιμοποιείται για την αναπαράσταση δυαδικών εξισώσεων, πινάκων αληθείας, k-χάρτες, κτλ. (περιγραφή συμπεριφοράς). Διευκολύνει την λογική σύνθεση. Μπορεί να χρησιμοποιηθεί σε πολλά εργαλεία CAD (σε αντίθεση με τα σχηματικά εργαλεία που είναι για συγκεκριμένους κατασκευαστές). Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων VHDL Το VHDL είναι ακρωνύμιο για το VHSIC (Very High Speed Integrated Circuit) Hardware Description Language. IEEE πρότυπο προδιαγραφών (IEEE 1076-1993) για περιγραφή ψηφιακού υλικού. Χρησιμοποιείται από την παγκόσμια βιομηχανία. Η VHDL επιτρέπει την μοντελοποίηση υλικού από το επίπεδο πυλών μέχρι και το επίπεδο συστήματος. Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Λογική Σύνθεση (Logic Synthesis) Λογικόs Συνθέτης: Μετατρέπει μια RTL (Register-Transfer Logic) περιγραφή κυκλώματος σε μια βελτιστοποιημένη περιγραφή πυλών netlist (περιγραφή κυκλώματος σε επίπεδο-πύλης). Τα Netlist μπορούν να μετατραπούν σε μία IC διάταξη (χρησιμοποιώντας ειδικά εργαλεία σχεδιασμού), χρήσιμο σε IC κατασκευαστές. Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Εργαλεία Λογικής Σύνθεσης (Περιγραφή υψηλού επιπέδου) Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Ανάλυση Συνδυαστικών Κυκλωμάτων Ανάλυση = ο καθορισμός και η επαλήθευση των λογικών συναρτήσεων που υλοποιεί το κύκλωμα. Η ανάλυση ξεκινά δεδομένου ενός διαγράμματος λογικού κυκλώματος ή περιγραφή συμπεριφοράς, και τελειώνει με: Ένα σύνολο από λογικές συναρτήσεις ή Ένα πίνακα αληθείας. Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Παραγωγή συναρτήσεων - Παράδειγμα 1 2 3 2 4 1 Ξεκινούμε από τις εισόδους και προχωρούμε προς τις εξόδους (συστηματικά, από επίπεδο-σε-επίπεδο) Ονομάζουμε τις ενδιάμεσες συναρτήσεις Ελέγχουμε ξανά τις αντιστροφές Απλοποιούμε (χρησιμοποιώντας τον κανόνα DeMorgan) όταν είναι πιθανόν Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Παραγωγή Πίνακα Αληθείας Καθορίζουμε τον # των γραμμών (2n, όπου το n είναι ο αριθμός των εισόδων) και τοποθετούμε τους δυαδικούς αριθμούς 0..2n-1 στον πίνακα. Σπάζουμε το κύκλωμα σε κυκλώματα μιας εξόδου και τα ονομάζουμε. Βρίσκουμε τον πίνακα αληθείας για κομμάτια που καθοδηγούνται ΜΟΝΟ από εισόδους (ή μικρά/απλά κομμάτια). Βρίσκουμε τον πίνακα αληθείας για κομμάτια που καθοδηγούνται από εισόδους ή κομμάτια που ο πίνακας αληθείας τους έχει ήδη υπολογιστεί. ΕΠΑΝΑΛΑΜΒΑΝΟΥΜΕ μέχρι να υπολογιστούν οι πίνακες αληθείας για όλες τις εξόδους. Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Παράδειγμα – Παραγωγή του Πίνακα Αληθείας Δυαδικός Αθροιστής X Y Z 1 C C’ 1 T1 T2 T3 1 S 1 Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων Λογική Προσομοίωση Χρησιμοποιείται για την ακριβής προσομοίωση και επαλήθευση ενός κυκλώματος. Δεν παράγει συναρτήσεις. Το κύκλωμα πρέπει να περιγραφτεί με τέτοιο τρόπο έτσι ώστε ο προσομοιωτής να μπορεί να το “διαβάσει” : Netlist: περιγραφή κυκλωμάτων σε επίπεδο πυλών (σε μορφή κειμένου) HDL περιγραφή Σχηματικό (Schematic): παράγεται από ένα σχηματικό εργαλείο (πχ. Graphic Editor τoυ Max +Plus II) Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Λογική Προσομοίωση (συν.) Για να γίνει μια προσομοίωση πρέπει ο χρήστης να δώσει τιμές στις εισόδους του κυκλώματος: Μέσω του πληκτρολογίου (Interactively) Μέσω ενός αρχείου (οι τιμές βρίσκονται στο αρχείο) Για πλήρη επαλήθευση της λειτουργικότητας ενός κυκλώματος χρειάζεται να προσομοιώσουμε όλους τους πιθανούς συνδυασμούς στις εισόδους. Αυτό απαιτεί πολύ χρόνο για κυκλώματα πέρα των ~20 εισόδων! Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Πλήρη Προσομοίωση Παράδειγμα - Δυαδικός Αθροιστής Πλήρη Προσομοίωση Παράδειγμα - Δυαδικός Αθροιστής Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Διαδικασία Σχεδιασμού Συνδυαστικών Κυκλωμάτων Διαδικασία Σχεδιασμού Συνδυαστικών Κυκλωμάτων Σχεδιασμός : η ανάπτυξη ενός κυκλώματος δεδομένης μιας περιγραφής της λειτουργίας του. Ξεκινά με δεδομένες προδιαγραφές και παράγει ένα επαληθευμένο, βέλτιστο λογικό σχεδιασμό συγκεκριμένης τεχνολογίας (συμπεριλαμβάνει το στάδιο της ανάλυσης). Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Στάδια Διαδικασίας Σχεδιασμού Προδιαγραφή (Specification) Δίνετε ή ορίζετε Διατύπωση (Formulation) Παραγωγή πίνακα αληθείας ή αρχικών δυαδικών συναρτήσεων που ορίζουν την απαιτούμενη σχέση λειτουργίας εισόδων-εξόδων. Βελτιστοποίηση (Optimization) Δυεπίπεδη και πολλών-επιπέδων Σχεδιασμός λογικού διαγράμματος ή netlist του κυκλώματος χρησιμοποιώντας πρωταρχικές (primitive) πύλες. Αντιστοίχηση Τεχνολογίας (Technology Mapping) Επιλογή τεχνολογίας υλοποίησης και αντικατάσταση πρωταρχικών πυλών 5. Επαλήθευση (Verification) Επαλήθευση ορθότητας λειτουργίας και χρονισμού με βάση τις αρχικές προδιαγραφές Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Διαδικασία Σχεδιασμού Καθορίστε τον απαιτούμενο αριθμό εισόδων και εξόδων. Βρέστε τον πίνακα αληθείας που ορίζει τη σχέση λειτουργίας μεταξύ εισόδων-εξόδων. Καθορίστε και ελαχιστοποιήστε τις δυαδικές συναρτήσεις που υλοποιούνται στις εξόδους (K-χάρτες, αλγεβρικοί χειρισμοί, εργαλεία CAD, …). Θεωρήστε πιθανούς περιορισμούς σχεδιασμού (χώρος, καθυστέρηση, ισχύ, διαθέσιμες βιβλιοθήκες, κ.α.) Σχεδιάστε το λογικό διάγραμμα. Επαληθεύστε την ορθότητα του σχεδιασμού. Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων
Σχεδιασμός -- Παράδειγμα Σχεδιάστε ένα συνδυαστικό κύκλωμα με 4 εισόδους, το οποίο παράγει 1 όταν ο αριθμός των 1 στις εισόδους είναι ίσος με τον αριθμό των 0. Χρησιμοποιήστε ΜΟΝΟ πύλες NOR 2-εισόδων. … Νοε-18 Κεφάλαιο 3-i: Σχεδιασμός Συνδυαστικών Κυκλωμάτων