ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

3. Απλοποίηση Συναρτήσεων Boole

3 η Θεµατική Ενότητα : Απλοποίηση Συναρτήσεων Boole. Επιµέλεια διαφανειών: Χρ. Καβουσιανός

Ελίνα Μακρή

Γ2.1 Στοιχεία Αρχιτεκτονικής. Γ Λυκείου Κατεύθυνσης

ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ ΣΧΕ ΙΑΣΗ

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

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων

Δυαδικές συναρτήσεις Άλγεβρα Boole Λογικά διαγράμματα

Κεφάλαιο 4. Λογική Σχεδίαση

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

ΜΕΡΟΣ 1 ο : Δυαδικές συναρτήσεις Άλγεβρα Boole Λογικά διαγράμματα

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΑΣΠΑΙΤΕ Εργαστήριο Ψηφιακών Συστημάτων & Μικροϋπολογιστών Εργαστηριακές Ασκήσεις για το μάθημα «Λογική Σχεδίαση» ΑΣΚΗΣΗ 3 ΠΙΝΑΚΕΣ KARNAUGH

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

Συναρτήσεων Boole. Η Μέθοδος του Χάρτη

2. Άλγεβρα Boole και Λογικές Πύλες

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

Ψηφιακά Συστήματα. 5. Απλοποίηση με χάρτες Karnaugh

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Συνδυαστική Λογική / Κυκλώματα

Επανάληψη Βασικών Στοιχείων Ψηφιακής Λογικής

Περίληψη ΗΜΥ-210: Λογικός Σχεδιασµός. Λογικές Πύλες. BUFFER, NAND και NOR. ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο 2005

Ψηφιακά Συστήματα. 4. Άλγεβρα Boole & Τεχνικές Σχεδίασης Λογικών Κυκλωμάτων

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

ΑΣΚΗΣΗ 3 ΣΥΝΔΥΑΣΤΙΚΑ ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ: ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

Οικουμενικές Πύλες (ΝΑΝD NOR), Πύλη αποκλειστικού Η (XOR) και Χρήση KarnaughMaps

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

Κεφάλαιο 5. Λογικά κυκλώματα

Απλοποίηση λογικών συναρτήσεων. URL:

K24 Ψηφιακά Ηλεκτρονικά 4: Σχεδίαση Συνδυαστικών Κυκλωμάτων

e-book ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ ΑΣΚΗΣΕΙΣ

Λογική Σχεδίαση Ψηφιακών Συστημάτων

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

Παράσταση αριθμών «κινητής υποδιαστολής» floating point

7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού

Ενότητα 5 ΑΠΛΟΠΟΙΗΣΗ ΛΟΓΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ ΔΥΟ ΕΠΙΠΕΔΩΝ

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο Σεπτέμβριος 09 Συνδιαστικά Λογικά Κυκλώματα. Διδάσκουσα: Μαρία Κ.

K15 Ψηφιακή Λογική Σχεδίαση 6: Λογικές πύλες και λογικά κυκλώματα

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ (Τ.Ε.Ι.) ΚΡΗΤΗΣ Τμήμα Εφαρμοσμένης Πληροφορικής & Πολυμέσων. Ψηφιακή Σχεδίαση. Κεφάλαιο 2: Συνδυαστικά Λογικά

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

K24 Ψηφιακά Ηλεκτρονικά 6: Πολυπλέκτες/Αποπολυπλέκτες

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

Ελίνα Μακρή

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων Σεπτέμβριος 10. Συνδιαστικά Λογικά Κυκλώματα 1

Ψηφιακά Συστήματα. 6. Σχεδίαση Συνδυαστικών Κυκλωμάτων

ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ ΣΧΕ ΙΑΣΗ

ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ. ιδάσκων : ρ. Β. ΒΑΛΑΜΟΝΤΕΣ. Πύλες - Άλγεβρα Boole 1

ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

9. OIΚΟΥΜΕΝΙΚΕΣ ΠΥΛΕΣ ΠΟΛΛΑΠΛΩΝ ΕΙΣΟ ΩΝ

Εργαστήριο Ψηφιακών Συστηµάτων ΗΜΥ211

Ενότητα 8 Η ΠΥΛΗ XOR ΚΑΙ ΟΙ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΩΔΙΚΟΠΟΙΗΣΗ

Ύλη Λογικού Σχεδιασµού Ι

Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ.

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

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ/ΙΟΥΝΙΟΥ 2014

5. ΤΕΧΝΙΚΕΣ ΑΠΛΟΠΟΙΗΣΗΣ

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

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

f(x, y, z) = y z + xz

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

K15 Ψηφιακή Λογική Σχεδίαση 4+5: Άλγεβρα Boole

ΑΣΚΗΣΗ 4 ΠΡΟΒΛΗΜΑΤΑ ΛΟΓΙΚΗΣ ΣΧΕΔΙΑΣΗΣ

5. ΤΕΧΝΙΚΕΣ ΑΠΛΟΠΟΙΗΣΗΣ

Εισαγωγή. Συνδυαστικά: Οι έξοδοι είναι συνάρτηση των εισόδων

C D C D C D C D A B

επανενεργοποιηθεί Βιομηχανικά Ηλεκτρονικά - Κ.Ι.Κυριακόπουλος Control Systems Laboratory

5.2 ΑΠΛΟΠΟΙΗΣΗ ΜΕ ΤΗΝ ΜΕΘΟΔΟ ΚΑΤΑΤΑΞΗΣ ΣΕ ΠΙΝΑΚΑ

Ενότητα 4 ΛΟΓΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ ΔΥΟ ΕΠΙΠΕΔΩΝ

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ. Κεφάλαιο 3

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

8 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού: Μοντέλα Συνδυαστικών Κυκλωµάτων

Εισαγωγή στα Ψηφιακά Συστήματα

ΚΕΦΑΛΑΙΟ 3 ο Αλγεβρα BOOLE και Λογικές Πύλες

Βοηθητικές Σημειώσεις στη ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ

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

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

Λογικές πύλες: Οι στοιχειώδεις δομικοί λίθοι των κυκλωμάτων

Απόδειξη Ισοδυναμίας Συναρτήσεων

Αριθμητική Ανάλυση & Εφαρμογές

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

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

ΚΑΣΣΙΑΝΟΣ ΜΕΛΑΝΙΤΗΣ. Αποκωδικοποιητής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 8 ης εργαστηριακής άσκησης: Α.Μ.:

Ψηφιακά Συστήματα. 3. Λογικές Πράξεις & Λογικές Πύλες

2 η Θεµατική Ενότητα : Άλγεβρα Boole και Λογικές Πύλες. Επιµέλεια διαφανειών: Χρ. Καβουσιανός

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

ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ ΣΧΕ ΙΑΣΗ

Μετατροπή δυαδικών αριθμών

Ελίνα Μακρή

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

ΑΣΚΗΣΗ 1 ΛΟΓΙΚΕΣ ΠΥΛΕΣ

Transcript:

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΛΟΓΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ VERILOG 2017, Δρ. Ηρακλής Σπηλιώτης

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

Χάρτης Karnaugh Ο χάρτης Karnaugh είναι ένα διάγραμμα που αποτελείται από τετράγωνα. Κάθε τετράγωνο αντιπροσωπεύει έναν ελαχιστόρο της συνάρτησης. Κάθε συνάρτηση μπορεί να εκφρασθεί ως SOP (άθροισμα γινομένων, sum of products), άρα ο χάρτης προσδιορίζει τη συνάρτηση από τα τετράγωνα που αντιπροσωπεύουν τους ελαχιστόρους που συμμετέχουν στο SOP. Αναγνωρίζοντας διατάξεις τετραγώνων στο χάρτη, ο χρήστης μπορεί να παράξει διαφορετικές αλγεβρικές εκφράσεις της συνάρτησης και να επιλέξει την απλούστερη μορφή. Η απλούστερη μορφή μπορεί να μην είναι μοναδική, οπότε όλες οι σχετικές λύσεις με τον ελάχιστο αριθμό πυλών είναι αποδεκτές.

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

Χάρτης δύο μεταβλητών Αν σημειώσουμε με 1 τα τετράγωνα που αντιστοιχούν σε όλους τους ελαχιστόρους μιας δεδομένης συνάρτησης, τότε αναπαριστούμε τη συνάρτηση και μάλιστα με μοναδικό τρόπο. Στο σχήμα (α) η συνάρτηση xy. Στο σχήμα (b) η συνάρτηση x y + xy + xy. Η συνάρτηση στο (b), απλοποιείται σε x + y. Αυτό προκύπτει από το χάρτη, όπου φαίνεται ότι η συνάρτηση ισχύει για x = 1 και y = 1 (σκιασμένες περιοχές).

Χάρτης τριών μεταβλητών Ο χάρτης αποτελείται από 8 τετράγωνα. Οι ελαχιστόροι διατάσσονται κατά τον κώδικα Gray, ώστε κάθε φορά να αλλάζει μόνο ένα bit από στήλη σε στήλη. Δύο γειτονικά τετράγωνα του χάρτη αντιστοιχούν σε ελαχιστόρους που διαφέρουν μόνο κατά μία μεταβλητή. Στο χάρτη του σχ. (b) υπάρχουν αριθμοί που δείχνουν τις τιμές των μεταβλητών xyz και σχηματίζουν τον αριθμό του ελαχιστόρου, π.χ. m 0 =000=x y z. Δύο τετράγωνα του χάρτη μπορεί να είναι γειτονικά ακομα και αν δεν εφάπτονται. Πχ Τα ζεύγη m 0 m 2, m 4 - m 6, m 0 -m 6, m 4 -m 2 είναι γειτονικά γιατί διαφέρουν μόνο κατά μία μεταβλητή. Γειτονικά τετράγωνα του χάρτη απλοποιούνται σε ένα γινόμενο με δύο μεταβλητές, π.χ. m m xyz xyz xz( y y) xz 5 7 m m xyz xyz xz( y y) xz 0 2

Χάρτης τριών μεταβλητών Απλοποίηση της συνάρτησης F(x,y,z)=Σ(2,3,4,5). Τοποθετούμε 1 στα τετράγωνα 010, 011, 100, 101 των ελαχιστόρων Εντοπίζουμε γειτονικές περιοχές (με κόκκινο). Περιοχές x y και xy. F= x y + xy

Χάρτης τριών μεταβλητών Απλοποίηση της συνάρτησης F(x,y,z)=Σ(3,4,6,7). Τοποθετούμε 1 στα τετράγωνα 011, 100, 110, 111 των ελαχιστόρων Εντοπίζουμε γειτονικές περιοχές (με πράσινο και κόκκινο ). Περιοχές yz και xz. F= yz + xz

Χάρτης τριών μεταβλητών Τα γειτονικά τετράγωνα για να συνδυαστούν πρέπει να έχουν πλήθος που είναι δύναμη του 2. Ένα τετράγωνο αναπαριστά έναν ελαχιστόρο, άρα χρειάζεται τρεις μεταβλετές. Δύο τετράγωνα αναπαριστούν ένα γινόμενο με δύο μεταβλητές. Τέσσερα τετράγωνα αναπαριστούν ένα γινόμενο με μία μεταβλητή. Οκτώ τετράγωνα, αναπαριστούν έναν όρο με καμμία μεταβλητή και ισούται πάντοτε με 1.

Χάρτης τριών μεταβλητών Απλοποίηση της συνάρτησης F(x,y,z)=Σ(0,2,4,5,6). Τοποθετούμε 1 στα τετράγωνα 000,010, 100, 101, 110 των ελαχιστόρων Εντοπίζουμε γειτονικές περιοχές (με πράσινο και κόκκινο ). Περιοχές z και xy. F= z + xy

Χάρτης τριών μεταβλητών Απλοποίηση της συνάρτησης F(A,B,C)=A C+A B+AB C+BC Είναι σε μορφή SOP Τοποθετούμε 1 στα τετράγωνα που ορίζονται από τα γινόμενα της F A C, A B, AB C, BC F(A,B,C)=Σ(1,2,3,5,7) Κόκκινη ομάδα C Μπλέ ομάδα A B F(A,B,C)= A B+C

Χάρτης τεσσάρων μεταβλητών 16 τετράγωνα που αντιστοιχούν στους ελαχιστόρους Κώδικας Gray, αλλαγή ενός bit ανάμεσα σε γειτονικά τετράγωνα Το πάνω όριο εφάπτεται με το κάτω όριο Το αριστερό όριο εφάπτεται με το δεξιό όριο Γειτονικά τετράγωνα είναι αυτά που εφάπτονται Απλοποίηση στο χάρτη Ομάδα 1 τετραγώνου: όρος με 4 μεταβλητές Ομάδα 2 τετραγώνων: όρος με 3 μεταβλητές Ομάδα 4 τετραγώνων: όρος με 2 μεταβλητές Ομάδα 8 τετραγώνων: όρος με 1 μεταβλητές Ομάδα 16 τετραγώνων: όρος με καμμία μεταβλητή πάντοτε ίσος με 1

Χάρτης τεσσάρων μεταβλητών Απλοποίηση της συνάρτησης F(x,y,z,w)=Σ(0,1,2,4,5,6,8,9,12,13,14). Τοποθετούμε 1 στα τετράγωνα των ελαχιστόρων Εντοπίζουμε γειτονικές περιοχές με πλήθος τετραγώνων = δύναμη του 2 y w z xz F= y +w z +xz

Χάρτης τεσσάρων μεταβλητών Απλοποίηση της συνάρτησης F=A B C +B CD +A BCD +AB C Τοποθετούμε 1 στα τετράγωνα των ελαχιστόρων Εντοπίζουμε γειτονικές περιοχές με πλήθος τετραγώνων = δύναμη του 2 B D B C A CD F=B D +B C +A CD

Χάρτης πέντε μεταβλητών Ο χάρτης 5 μεταβλητών αποτελεί μια τρισδιάστατη δομή, όπου το κάθε επίπεδο αποτελείται από χάρτη 4 μεταβλητών. Ο ένας χάρτης 4 μεταβλητών ισχύει για την τιμή της 5 ης μεταβλητής ίση με 0 και ο δεύτερος για την τιμή της 5 ης μεταβλητής ίση με 1. Στο χάρτη του σχήματος τα δύο επίπεδα φαίνονται δίπλα, ο αριστερός χάρτης των 4 μεταβλητών ABDE είναι το επίπεδο του C=0 και ο δεξιός χάρτης των 4 μεταβλητών ABDE το επίπεδο του C=1. Γειτονικά στοιχεία ορίζονται και στα δύο επίπεδα, δηλαδή στο συγκεκριμένο χάρτη για C=0 και για C=1.

Χάρτης πέντε μεταβλητών Στο χάρτη του σχήματος, οι οκτώ άσοι ορίζουν τον κόκκινο κύβο BE, ενώ οι 4 άσοι ορίζουν το γαλάζιο ορθογώνιο Α Β C. F (A,B,C,D,E) = ΒΕ + A Β C

Χάρτης έξι μεταβλητών Ο χάρτης 6 μεταβλητών αποτελεί μια τρισδιάστατη δομή, όπου το κάθε επίπεδο αποτελείται από χάρτη 4 μεταβλητών. Υπάρχουν τέσσερα επίπεδα που αντιστοιχούν στους συνδυασμούς των άλλων δύο μεταβλητών. Για περισσότερες από 6 μεταβλητές δεν ενδείκνυται χρήση χαρτών Karnaugh.

Χάρτης έξι μεταβλητών Στο χάρτη 6 μεταβλητών του σχήματος διακρίνουμε και ομαδοποιούμε τους όρους C D EF CD EF Α CD E F ΑDE F F(A,B,C,D,E,F)=C D EF +CD EF +Α CD E F +ΑDE F

Πρωτεύοντες όροι Μια συνάρτηση f λέμε ότι καλύπτει μια συνάρτηση g, αν η f παίρνει την τιμή 1 όταν το ίδιο συμβαίνει με την g. Πρωτεύον όρος (prime implicant) p μιας συναρτήσεως f είναι ένας όρος γινομένου που καλύπτεται από την f και η απαλειφή οποιουδήποτε παράγοντα από τoν p δημιουργεί μια συνάρτηση που δεν καλύπτεται από την f. Στο χάρτη Karnaugh, οι πρωτεύοντες όροι είναι οι όροι γινομένου που προκύπτουν από το συνδυασμό του μέγιστου πιθανού αριθμού γειτονικών τετραγώνων του χάρτη. Θεμελιώδης πρωτεύοντας όρος (essential prime implicant) είναι ο πρωτεύοντας όρος που καλύπτει μόνος του κάποιον ελαχιστόρο.

Πρωτεύοντες όροι Έστω F(A,B,C,D)= Σ(0,2,3,5,7,8,9,10,11,13,15) Για λόγους ευκολίας κατανόησης ο χάρτης έχει χωρισθεί σε δύο μέρη. Ο χάρτης (α) απεικονίζει δύο θεμελιώδεις πρωτεύοντες όρους, γιατί ο ελαχιστόρος m 0 και m 5, δε μπορούν να καλυφθούν από άλλο πρωτεύοντα όρο. Ο χάρτης (β) απεικονίζει τους υπόλοιπους πρωτεύοντες όρους.

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

Απλοποίηση σε γινόμενο αθροισμάτων Στο χάρτη θέτουμε 0 στα κενά τεράγωνα. Ομαδοποιούμε και παίρνουμε μια απλοποιημένη έκφραση της F σε μορφή SOP. Συμπληρώνουμε την F, παίρνουμε την F και με την εφαρμογή του θεωρήματος De Morgan λαμβάνουμε την ελαχιστοποιημένη μορφή της σε μορφή POS.

Απλοποίηση σε γινόμενο αθροισμάτων Έστω F(A,B,C,D)=Σ(0,1,2,5,8,9,10) Από το χάρτη η ελαχιστοποιημένη F σε SOP, F=B D +B C +A C D Τα τετράγωνα του χάρτη με 0 είναι οι ελαχιστόροι της F Προκύπτει η ελαχιστοποιημένη F σε SOP, F =AB+CD+BD H ελαχιστοποιημένη F σε POS, F=(F ) =(A +B )(C +D )(B +D)

Απλοποίηση σε γινόμενο αθροισμάτων Έστω F(x,y,z) = Σ(1,3,4,6) Άρα F(x,y,z) = Π(0,2,5,7) F =xz+x z = x XOR z F=(F ) =(x+z)(x +z ) σε μορφή POS

Συνθήκες αδιαφορίας Σε αρκετές περιπτώσεις η συνάρτηση δε προσδιορίζεται για συγκεκριμένες τιμές των ανεξάρτητων μεταβλητών. Για παράδειγμα ο κώδικας BCD, έχει 6 συνδυασμούς που δε χρησιμοποιούνται. Οι συναρτήσεις αυτές ονομάζονται ατελώς καθορισμένες συναρτήσεις. Οι ελαχιστόροι που οδηγούν σε μη προσδιορισμένες τιμές της συνάρτησης ονομάζονται συνθήκες αδιαφορίας (don t care conditions) ή αδιάφοροι όροι και στο χάρτη τα αντίστοιχα τετράγωνα παριστάνονται με ένα Χ. Κατά την ομαδοποίηση τετραγώνων του χάρτη, μπορούμε να θεωρήσουμε τους αδιάφορους όρους, ως 0 ή ως 1 όπως μας βολεύει ώστε να επιτύχουμε μεγαλύτερη ομαδοποίηση και άρα απλούστερη συνάρτηση.

Συνθήκες αδιαφορίας Έστω F (w,x,y,z)=σ(1,3,7,11,15) με συνθήκες αδιαφορίας d(w,x,y,z)=σ(0,2,5) Σχηματισμός χάρτη: ελαχιστόροι 1, αδιάφοροι όροι Χ, υπόλοιποι όροι 0. Ομαδοποίηση με χρήση αδιάφορων όρων, καταλήγουμε στις δύο εξίσου απλές συναρτήσεις που φαίνονται στα σχήματα (α) και (β). Παρατηρούμε ότι η συνάρτηση στο χάρτη (α) περιλαμβάνει δύο αδιάφορους όρους, τους ελαχιστόρους m 0, m 2, ενώ η συνάρτηση στο χάρτη (β) περιλαμβάνει ως αδιάφορο όρο τον ελαχιστόρο m 5. Αν θέλουμε την απλοποιημένη έκφραση σε μορφή POS, τότε θεωρούμε τα 0 με όποιους αδιάφορους όρους Χ μας εξυπηρετούν: F =yz+w y => F=(F ) =(y +z )(w+y)

Yλοποίηση λογικών συναρτήσεων Κάθε συνάρτηση Boole μπορεί να γραφεί σε κανονική μορφή αθροίσματος γινομένων (SOP) ή γινομένου αθροισμάτων (POS). Οι τελεστές AND, OR και NOT μπορούν να εκφράσουν μια συνάρτηση Boole σε κανονική μορφή SOP ή POS. Άρα το σύνολο των τελεστών AND, OR και NOT μπορούν να εκφράσουν κάθε συνάρτηση Boole. Για το λόγο αυτό το σύνολο των τελεστών AND, OR και NOT καλείται λειτουργικά πλήρες (functionally complete) ή οικουμενικό (universal) Υπάρχουν και άλλοι τελεστές που με τη χρήση μόνο αυτών, μπορεί να εκφρασθεί κάθε συνάρτηση Boole, δηλαδή που είναι οικουμενικοί. Η πλειοψηφία των πυλών σε ολοκληρωμένα κυκλώματα αποτελείται από NAND και NOR.

Υλοποίηση λογικών συναρτήσεων με πύλες NAND Ο τελεστής NAND μπορεί να αντικαταστήσει τον τελεστή NOT, AND και OR. Ο τελεστής NAND είναι λειτουργικά πλήρης ή οικουμενικός.

Υλοποίηση λογικών συναρτήσεων με πύλες NAND Ο τελεστής NAND μπορεί να εκφράσει μια συνάρτηση σε μορφή SOP, άρα μπορεί να εκφράσει κάθε συνάρτηση. F=[(x 1 x 2 ) (x 3 x 4 x 5 ) ] =x 1 x 2 +x 3 x 4 x 5

Υλοποίηση λογικών συναρτήσεων με πύλες NAND

Υλοποίηση λογικών συναρτήσεων με πύλες NAND

Υλοποίηση λογικών συναρτήσεων με πύλες NOR Ο τελεστής NOR μπορεί να αντικαταστήσει τον τελεστή NOT, AND και OR. Ο τελεστής NOR είναι λειτουργικά πλήρης ή οικουμενικός.

Υλοποίηση λογικών συναρτήσεων με πύλες NOR Ο τελεστής NOR μπορεί να εκφράσει μια συνάρτηση σε μορφή POS, άρα μπορεί να εκφράσει κάθε συνάρτηση. Η NOR είναι δυική της NAND. F=[(x 1 +x 2 ) +(x 3 +x 4 +x 5 ) ] =(x 1 +x 2 )(x 3 +x 4 +x 5 )

Υλοποίηση λογικών συναρτήσεων με πύλες NOR Η πλειοψηφία των πυλών που χρησιμοποιούνται στα ολοκληρωμένα κυκλώματα, είναι NAND και NOR. Στο σχήμα βλέπουμε υλοποιήσεις δύο επιπέδων με πύλες NOR.

Άλλες υλοποιήσεις δύο επιπέδων Θα μελετήσουμε με ποιους συνδυασμούς πυλών δύο επιπέδων μποορύμε να υλοποιήσουμε όλες τις συναρτήσεις. Αν έχουμε πύλες AND, OR, NAND, NOR τότε οι οκτώ συνδυασμοί εκφυλίζονται σε μία λογική πράξη, π.χ. AND - AND σημαίνει μια πράξη AND όλων των εισόδων. Οι οκτώ μη εκφυλισμένοι συνδυασμοί φαίνονται στον παρακάτω πίνακα. Με τις δύο πρώτες γραμμές του πίνακα έχουμε ασχοληθεί. Θα εξετάσουμε τις δύο τελευταίες γραμμές του πίνακα. AND OR NAND - NAND NOR OR OR-NAND OR-AND NOR-NOR NAND-AND AND-NOR

Άλλες υλοποιήσεις δύο επιπέδων

Συνάρτηση XOR (αποκλειστικό OR) Η συνάρτηση XOR με σύμβολο ισοδυναμεί με: x y = xy + x y Η XOR ισούται με 1, μόνο όταν ένα από τα x ή το y ισούται με 1. Το αποκλειστικό NOR (ΧΝΟR), γνωστό ως συνάρτηση ισοδυναμίας: (x y) = xy + x y H XNOR ισούται με 1, μόνο αν τα x και y, έχουν την ίδια τιμή. Ισχύουν οι εξής ταυτότητες: x 0=x x 1=x x x=0 x x =1 x y =x y=(x y) H XOR είναι αντιμεταθετική και προσεταιριστική: x y=y x x (y z)=(x y ) z=x y z

Συνάρτηση XOR Υλοποιήσεις της συνάρτησης XOR

Περιττή συνάρτηση Η XOR υλοποιεί την περιττή συνάρτηση (odd function), δηλαδή τη συνάρτηση που είναι αληθής όταν στις εισόδους της υπάρχει περιττός αριθμός 1. Α Β C = (AB +A B)C +(AB+A B )C=AB C +A BC +ABC+A B C= Σ(1,2,4,7) Α Β C D = (AB +A B) (CD +C D)= =(AB +A B)(CD+C D )+(AB+A B )(CD +C D)= Σ(1,2,4,7,8,11,13,14)

Αρτια συνάρτηση Η XNOR υλοποιεί την άρτια συνάρτηση (even function), δηλαδή τη συνάρτηση που ισούται με 1 όταν στις εισόδους της υπάρχει άρτιο πλήθος 1.

Δημιουργία και έλεγχος ισοτιμίας Ένας τρόπος εντοπισμού σφαλμάτων κατά τη μετάδοση δεδομένων είναι και η ισοτιμία. Στα bit δεδομένων προστίθεται ένα επιπλέον bit, που ονομάζεται bit ισοτιμίας και ο σκοπός του είναι να δημιουργήσει άρτιο ή περιττό πλήθος 1. Το κύκλωμα που παράγει το bit ισοτιμίας, ονομάζεται γεννητρια ισοτιμίας (parity generator). Όταν ο παραλήπτης λάβει το μήνυμα ελέγχει το πλήθος των 1. Αν η ισοτιμία του δέκτη δε συμφωνεί με το πλήθος των 1 τότε έχει εντοπισθεί ένα σφάλμα. To κύκλωμα που ελέγχει την ισοτιμία, ονομάζεται ελεγκτής ισοτιμίας (parity checker).

Γεννήτρια ισοτιμίας Ένας αποστολέας μεταδίδει μήνυμα τριών bit x,y,z μαζί με 1 bit άρτιας ισοτιμίας P. Από τον πίνακα αληθείας, το P είναι η περιττή συνάρτηση: P=x y z Το λογικό διάγραμμα της γεννήτριας ισοτιμίας είναι αυτό του σχήματος:

Ελεγκτής ισοτιμίας Ο παραλήπτης λαμβάνει τα 4 bit (3 του μηνύματος x,y,z και 1 ισοτιμίας P) και θέλει να εντοπίσει τυχόν λάθη. Από τον πίνακα αληθείας, ο ελεγκτής ισοτιμίας C έχει 8 ελαχιστόρους που όλοι έχουν περιττό αριθμό 1, άρα ο τελεστής ισοτιμίας υλοποιείται με την περιττή συνάρτηση: C=x y z P. Το λογικό διάγραμμα του ελεγκτή φαίνεται στο σχήμα.

Δημιουργία και έλεγχος ισοτιμίας Το κύκλωμα της γεννήτριας ισοτιμίας, μπορεί να υλοποιηθεί με το κύκλωμα του ελεγκτή ισοτιμίας για P=0. Αυτό γιατί z 0=z. Το πλεονέκτημα είναι ότι αποστολέας και παραλήπτης (που συνήθως εναλλάσουν ρόλους), έχουν ακριβώς το ίδιο κύκλωμα. Προκειμένου για μετάδοση με περιττή ιοσοτιμία, αντί της πράξης XOR θα χρησιμοποιηθεί η πράξη XNOR.

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ VERILOG 2017, Δρ. Ηρακλής Σπηλιώτης

Γλώσσες περιγραφής υλικού Η πολυπλοκότητα των σημερινών ψηφιακών συστημάτων, έχει οδηγήσει σε αυτοματοποίηση της διαδικασίας σχεδιασμού με χρήση υπολογιστή. Οι γλώσσες περιγραφής υλικού (Hardware description language, HDL) περιγράφουν ψηφιακά κυκλώματα. Η δομή τους θυμίζει τις γλώσσες προγραμματισμού, αλλά είναι προσανατολισμένες στην περιγραφή υλικού. Η έξοδος μιας γλώσσας προγραμματισμού είναι κώδικας μηχανής, ενώ η έξοδος μιας HDL είναι ένα ψηφιακό κύκλωμα. Μετά την περιγραφή ενός λογικού κυκλώματος με HDL μπορούν να υλοποιηθούν δύο κύριες λειτουργίες: η προσομοίωση και η σύνθεση. Η προσομοίωση (simulation) επιτρέπει των υπολογισμό των εξόδων του λογικού κυκλώματος, δηλάδή την πρόβλεψη της συμπεριφοράς του πριν αυτό κατασκευασθεί. Η σύνθεση είναι η αυτόματη εύρεση των εξαρτημάτων και των διασυνδέσεων τους, ώστε να υλοποιηθεί το ζητούμενο κύκλωμα. Η σύνθεση βασίζεται σε αλγόριθμους σχδίασης λογικών κυκλωμάτων οι οποίοι μπορούν να υλοποιηθούν από τυο λογισμικό.

Γλώσσες περιγραφής υλικού Το ψηφιακό κύκλωμα το οποίο παράγει μια HDL μπορεί να χρησιμοποιηθεί για την κατασκευή του τυπωμένου κυκλώματος (PCB), ή για τη σχεδίαση ενός ολοκληρωμένου κυκλώματος (ASIC) ή για να διαμορφώσει μια επαναδιαμορφούμενη διάταξη υλικού FPGA (Field-programmable gate array). Οι δύο κύριες γλώσσες που έχουν και την υποστήριξη της ΙΕΕΕ είναι η Verilog και η VHDL. H Verilog αναπτύχθηκε αρχικά από μια εταιρία σχεδίασης, αλλά στη συνέχεια μεταφέρθηκε σε μια ομάδα εταιριών και πανεπιστημίων με το όνομα Open Verilog International. Το όνομα VHDL προέρχεται από το VHSIC HDL, δηλαδή Very High Speed Integrated Circuits HDL, Γλώσσα περιγραφής Υλικού Ολοκληρωμένων Κυκλωμάτων πολύ Υψηλής Ταχύτητας. Στο πλαίσιο του παρόντος μαθήματος θα γίνει μια εισαγωγή στη γλώσσα Verilog, αλλά και μια εισαγωγή στη μεθοδολογία της παράστασης ψηφιακών συστημάτων με χρήση υπολογιστή.

Περιγραφή υπομονάδων σε Verilog H υπομονάδα δηλώνεται με τη λέξη module και τελειώνει με τη λέξη endmodule. Το όνομα στο συγκεκριμένο παράδειγμα είναι simple_circuit και δηλώνεται και ο κατάλογος θυρών. Στο σχήμα βλέπουμε το λογικό διάγραμμα ενός κυκλώματος με 3 πύλες και την περιγραφή του σε Verilog. //Verilog description of circuit module simple_circuit (A,B,C,D,E); output D, E; input A, B, C: wire w1; and G1(w1,A,B); not G2(E,C): or G3(D,w1, E); endmodule

Περιγραφή υπομονάδων σε Verilog Ο κατάλογος θυρών είναι οι διασυνδέσεις της υπομονάδας για να επικοινωνεί με το περιβάλλον. Τα ονόματα μεταβλητών περιέχουν αλφαριθμητικούς χαρακτήρες και το χαρακτήρα υπογράμμισης και δε μπορούν να αρχίζουν από αριθμό. Κάθε εντολή τερματίζεται με ερωτηματικό. Οι δηλώσεις input και output καθορίζουν ποιες θύρες είναι είσοδοι και ποιες είναι έξοδοι. Οι εσωτερικές συνδέσεις (τα ενδιάμεσα σήματα) δηλώνονται ως καλώδια (wires). Τα δομικά στοιχεία του συγκεκριμένου κυκλώματος είναι τρεις πύλες, οι οποίες αποτελούν και κωδικές λέξεις. Κάθε δήλωση πύλης αποτελείται από ένα προαιρετικό όνομα (π.χ. g1) ακολουθούμενο από τις εξόδους και εισόδους. Η έξοδος πάντα αναφέρεται πρώτη. Η υπομονάδα τεειώνει με endmodule και δεν υπάρχει ερωτηματικό εκεί.

Καθυστερήσεις διάδοσης πυλών Η καθυστέρηση διάδοσης είναι ο χρόνος που απαιτείται για τη διάδοση ενός σήματος από την είσοδο στην έξοδο των πυλών. Συνήθως, η μονάδα μέτρησης της καθυστέρησης είναι το 1ns. Μπορούμε να προσδιορίσουμε την καθυστέρηση διάδοσης για κάθε πύλη που περιγράφουμε με Verilog. Αυτό γίνεται κατά τη δήλωση της πύλης με χρήση του #(xx) όπου xx αριθμητικά ψηφία που δείχνουν την καθυστέρηση διάδοσης. Η καθυστέρηση αυτή λαμβάνεται υπόψη από τον προσομοιωτή.

Καθυστερήσεις διάδοσης πυλών Tο κύκλωμα του προηγούμενου παραδείγματος με χρήση καθυστέρησης. Στον πίνακα φαίνονται οι έξοδοι των πυλών μετά την καθυστέρηση. Πρατηρήστε ότι η έξοδος D της πύλης OR, για χρονικό διάστημα 20ns εμφανίζεται ένας αρνητικός σπινθήρας και μετά επιστρέφει πάλι στο 1. //Verilog description of circuit module Simple_Circuit_prop_delay(A,B,C,D,E); output D, E; input A, B, C: wire w1; and #(30) G1(w1,A,B); not #(10) G2(E,C): or #(20) G3(D,w1, E); endmodule

Προσομοίωση Η περιγραφή σε Verilog παρέχει δοκιμαστική είσοδο (test bench) για το κύκλωμα του προηγούμενου παραδείγματος.

Προσομοίωση Για την προσομοίωση ενός κυκλώματος θα πρέπει να εφαρμόσουμε εισόδους ώστε ο προσομοιωτής να υπολογίσει τις εξόδους. Περιγράφεται μια υπομονάδα διέγερσης η οποία θα εφαρμόσει τις εισόδους στο προηγούμενο κύκλωμα. Η υπομονάδα διέγερσης δεν έχει θύρες. Οι είσοδοι στο κύκλωμα δηλώνονται με την κωδική λέξη reg και οι έξοδοι με την λέξη wire. Απαιτείται ένα όνομα στιγμιοτύπου. Το όνομα Μ1 δηλώνει ένα στιγμιότυπο του κυκλώματος Simple_Circuit_prop_delay με τις συγκεκριμένες εισόδους. Η εντολή initial καθορίζει τις εισόδους μεταξύ των λέξεων begin, end. Αρχικά ΑΒC=000 για 100ns, μετά ABC=111 για 100ns. H δήλωση $finish τερματίζει τη προσομοίωση.

Λογικές εκφράσεις στη Verilog Οι λογικές εκφράσεις ορίζονται με μια συνεχή εντολή ανάθεσης που αποτελείται από τη λέξη assign ακολουθούμενη από μια λογική έκφραση. Για τη διάκριση μεταξύ αριθμητικών και λογικών τελεστών, χρησιμοποιούνται τα σύμβολα: & ΑΝD OR ~ NOT To κύκλωμα του προηγούμενου παραδείγματος περιγράφεται ως : assign D = (A & B) ~C; assign E = ~C;

Λογικές εκφράσεις στη Verilog Η παρακάτω υπομονάδα περιγράφει ένα κύκλωμα με εξόδους: Το κύκλωμα έχει τέσσερις εισόδους και δύο εξόδους.

Στοιχειώδη Κυκλώματα του χρήστη User Defined primitives, UDP Οι πύλες AND, OR κ.λ.π., ορίζονται από το σύστημα και αναφέρονται ως system primitives. Ο χρήστης μπορεί να ορίζει δικά του primitives (UDPs) για να τα χρησιμοποιεί στα modules που δημιουργεί. Ένας τρόπος ορισμού είναι ο πίνακας αληθείας. Ο ορισμός ενός primitive βρίσκεται ανάμεσα στις λέξεις primitive.. endprimitive. Μπορεί να υπάρχει μόνο μία έξοδος, η σειρά των εισόδων στη δήλωση input καθορίζει και τις τιμές στον πίνακα αληθείας. Ο πίνακας αληθείας βρίσκεται ανάμεσα στις λέξεις table.. endtable. Ο κάθε συνδυασμός τιμών εισόδων τελειώνει με (:), στη συνέχεια ακολουθεί η τιμή εξόδου και τελειώνει με (;)

Στοιχειώδη Κυκλώματα του χρήστη User Defined primitives, UDP Περιγραφή σε Verilog ενός UDP με όνομα UDP_02467

Στοιχειώδη Κυκλώματα του χρήστη User Defined primitives, UDP Η ακόλουθη περιγραφή Verilog, υλοποιεί το κύκλωμα του σχήματος.

Ασκήσεις

Ασκήσεις

Ασκήσεις

Ασκήσεις

Ασκήσεις

Ασκήσεις

Ασκήσεις