ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ 1. Καλώς ήρθατε!

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ 1. Καλώς ήρθατε!"

Transcript

1 ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ 1 Καλώς ήρθατε!

2 Τα τυπικά του μαθήματος 13 εβδομάδες x 4 ώρες Στην αρχή 4ωρες παραδόσεις Σύγγραμμα : Μοrris Mano, Ψηφιακή Σχεδίαση, 5 η έκδοση. Το δηλώνετε στο σύστημα Εύδοξος και το παραλαμβάνετε με την αστυνομική σας ταυτότητα. Yλη (ανεξάρτητα του εάν καλυφθεί) : Κεφάλαια 1, 2, 3, πρώτες σελίδες Οι παραδόσεις βασίζονται στο βιβλίο : John F. Wakerly, Digital Design : Principles & Practices, 4 th edition. Υπάρχει στη βιβλιοθήκη μας και μπορείτε να το δανειστείτε. Θα καλύψουμε : Κεφάλαια 1, 2, 4 και 6 (όχι όσα αναφέρονται σε VHDL και ABEL) και παράγραφοι 5.1, 5.4 Ολη η πληροφορία διαθέσιμη στο site Ερωτήσεις απορίες : vergos@ceid.upatras.gr

3 Βαθμολόγηση Ο τελικός βαθμός προκύπτει από γραπτή εξέταση Στην εξέταση συμπεριλαμβάνεται και η Verilog HDL προπονηθείτε σε αυτήν με τις ενδεικτικά λυμένες ασκήσεις και το λογισμικό που σας δίδεται και Υπάρχει στο ΥΚ. Στη 1 η άσκηση σας μαθαίνουμε και πως θα το εγκαταστήσετε και στο σπίτι σας.

4 ενός αναλογικού κόσμου Ζούμε στη ψηφιακή εποχή... Ψηφιακές φωτογραφικές μηχανές Ψηφιακοί βιντεοδίσκοι (VCD, DVD) Το φως είναι αναλογικό Ψηφιακός ήχος (CD, 5.1 Surround) Η ένταση και η συχνότητα είναι αναλογικά μεγέθη Ψηφιακά ελεγχόμενα αυτοκίνητα (ABS, TCS, ESP) Η ταχύτητα και η γωνία στροφής είναι αναλογικά Ψηφιακή τηλεφωνία Τα ηλεκτρομαγνητικά κύματα είναι αναλογικά

5 Πως συνεπώς μιλάμε για ψηφιακή εποχή? Το αναλογικό σήμα μετατρέπεται σε ψηφιακό. Η όλη επεξεργασία γίνεται στο ψηφιακό κόσμο Ακολουθεί μετατροπή πάλι σε αναλογικό Π.χ. Το 1 ο βήμα έχει γίνει από τη δισκογραφική εταιρεία που μας δίνει το CD για τη περίπτωση του ήχου Το CD player λειτουργεί στο ψηφιακό κόσμο Ο ενισχυτής και τα ηχεία αναλαμβάνουν το 3 ο βήμα

6 Γιατί να μη γίνεται η επεξεργασία στον αναλογικό κόσμο? Θα μπορούσε να γίνει αν δεχόμασταν : το CD player μας να είναι όσο το αμφιθέατρο το CD player μας να κοστίζει όσο ένα ιδιωτικό νησί το CD player μας να λειτουργεί μία φορά στις το CD player μας να είναι το ίδιο για καμμιά 20αριά χρόνια

7 Τα ψηφιακά συστήματα προσφέρουν... Ακριβώς τα ίδια αποτελέσματα σε όσα αντίτυπα κατασκευαστούν Πολύ ευκολότερο σχεδιασμό (γι αυτό είναι μάθημα 1 ου έτους) Ευελιξία & επεκτασιμότητα Περιγραφή των λειτουργιών τους με γλώσσα προγραμματισμού Διαρκώς εξελισσόμενη τεχνολογία (κινητά τηλέφωνα) Διαρκώς μεγαλύτερη ταχύτητα εκτέλεσης

8 Διαρκώς μειούμενο μέγεθος! Μα κυρίως...

9 Πως επιτεύχθηκε τόσο δραστική μείωση του μεγέθους? Το πρώτο μισό του 20ου αιώνα τα ηλεκτρονικά κυκλώματα αποτελούνταν από λυχνίες κενού Μεγάλες, ακριβές, ενεργοβόρες, αναξιόπιστες 1947: Η εφεύρεση του πρώτου transistor στα Bell Labs από τους John Bardeen και Walter Brattain (Nobel Φυσικής το 1956 μαζί με τον William Shockley)

10 Κατασκευή του transistor πάνω σε ημιαγωγό (Ολοκληρωμένο κύκλωμα 1958) Jack Kilby Texas Instruments (Nobel Φυσικής, 2000) 1,1 εκ.

11 Το παιχνίδι της σμίκρυνσης Μικρής κλίμακας ολοκλήρωσης (SSI): > 10 τρανζίστορ Μεσαίας κλίμακας ολοκλήρωσης (MSI): > 100 τρανζίστορ Υψηλής κλίμακας ολοκλήρωσης (LSI): > 1000 τρανζίστορ Πολύ υψηλής κλίμακας ολοκλήρωσης (VLSI): > τρανζίστορ 2003: Intel Pentium 4 mprocessor (55 εκατομμύρια τρανζίστορ) 512 Mbit DRAM (> 0.5 δις τρανζίστορ)

12 Intel 4004 Micro-Processor transistors 1 MHz operation

13 Intel Pentium (IV) microprocessor

14

15

16 Θα συνεχιστεί όμως το παιχνίδι? Ο αριθμός των τρανζίστορ που χωράνε σε μια τετραγωνική ίντσα διπλασιάζεται κάθε 18 μήνες περίπου

17

18

19

20 Αποτελέσματα $39 DVD

21

22

23

24 Το μάθημα Λογικής Σχεδίασης Στοχεύει να σας μάθει πως σχεδιάζονται τα Ψηφιακά Συστήματα Διάφορες συνιστώσες : Βασικές αρχές (θεωρία) Παραδείγματα (φροντιστήριο) Μικρές εφαρμογές στο πραγματικό κόσμο (εργαστηριακό μάθημα επόμενου εξαμήνου) Πιο μεγάλες και πιο ενδιαφέρουσες εφαρμογές στον ιδεατό (εξομοιούμενο) κόσμο (ασκήσεις)

25 Η Λογική Σχεδίαση & ο ρόλος του Μηχανικού Είναι έργο ΜΗΧΑΝΙΚΟΥ (μηχανεύομαι, πολυμήχανος) Ο μηχανικός πατά στη θεωρία για να εφαρμόζει στη πράξη Καλός μηχανικός, σχεδιαστής ψηφιακών συστημάτων σημαίνει επίσης : Ικανότητα ανακάλυψης λαθών. Επιχειρηματικό πνεύμα. Στάθμιση κινδύνων. Ικανότητα επικοινωνίας.

26 Γιατί η δουλειά του σχεδιαστή κυκλωμάτων είναι δύσκολη & ενδιαφέρουσα? Διαπραγματεύεται τον πραγματικό κόσμο, στον οποίο υπάρχουν : Λάθη Προθεσμίες Κόστη Ομως : Το υλικό σε αντίθεση με το λογισμικό δεν αντιγράφεται εύκολα Στο υλικό πληρώνεις κάθε αντίγραφο Οι σχεδιαστές ψηφιακών κυκλωμάτων απολαμβάνουν εξαιρετικά μεγάλους μισθούς

27 Οι πολλές μορφές ενός ψηφιακού κυκλώματος wafer die

28 Οι πολλές μορφές αφαίρεσης και σχεδίασης ενός ψηφιακού κυκλώματος Το δικό μας αρχικό επίπεδο

29 Και ο πραγματικός κόσμος που αντιπροσωπεύει Κάθε πύλη εκτελεί μια "λογική συνάρτηση", συνάρτηση δηλαδή πάνω σε δυαδικές μεταβλητές

30

31 Αναλογικό vs Ψηφιακό Αναλογικό είναι ένα μέγεθος (σήμα) όταν μπορεί να πάρει οποιαδήποτε τιμή από ένα συνεχές διάστημα τιμών. Η πλειοψηφία των μεγεθών στο κόσμο μας είναι αναλογικά. Ψηφιακό (κβαντισμένο) είναι ένα μέγεθος (σήμα) όταν μπορεί να πάρει διακριτές τιμές. Φωτεινοί σηματοδότες, διακόπτες είναι παραδείγματα ψηφιακών μεγεθών.

32 Δειγματοληψία & Κβάντιση

33 Δυαδικό σήμα : κβάντιση με 2 στάθμες Ανά πάσα στιγμή το σήμα μου έχει είτε τη τιμή 0 είτε τη τιμή 1. Το ποιο επίπεδο είναι 0 και ποιο είναι 1 είναι καθαρά θέμα σύμβασης. Συνεπώς μπορεί να αναπαρασταθεί από μια μεταβλητή 2 τιμών, μια δυαδική μεταβλητή. Η τιμή αυτής της μεταβλητής είναι και ένα ψηφίο του δυαδικού συστήματος αρίθμησης. Δεκαδικό ψηφίο : 0, 1, 2, 3, 4, 5,6, 7,8, 9 Δυαδικό ψηφίο (BInary digit BIT) : 0, 1

34 Αξιοπιστία ψηφιακών vs αναλογικών

35 Ιδιότητα αποκατάστασης

36 Aναπαράσταση πληροφορίας με δυαδικά σήματα Εστω ότι έχω ένα διακόπτη που μπορεί να είναι κλειστός ή ανοικτός. Μπορώ να κάνω την αντιστοιχία : 0 -> ανοικτός 1 -> κλειστός Μου αρκεί ένα δυαδικό σήμα (ισοδύναμα μια δυαδική μεταβλητή ή ένα bit) για να περιγράψω τη κατάστασή του. Πόσα bits χρειάζονται για τη περιγραφή της κατάστασης 2 διακοπτών? Πόσα bits για τη περιγραφή της κατάστασης 10 διακοπτών? Με n δυαδικά ψηφία μπορώ να αναπαραστήσω 2 n διακριτά πράγματα m διακριτά πράγματα χρειάζονται κατ ελάχιστο log 2 m δυαδικά ψηφία

37 Εκείνο το "κατ ελάχιστο"

38 Ποια αναπαράσταση είναι καλύτερη? Εκείνη που χρησιμοποιεί τα λιγότερα δυαδικά σήματα Εκείνη που μου επιτρέπει να κάνω εύκολα την επεξεργασία της πληροφορίας Πως θα αναπαριστούσατε μια ημέρα από τη 1/1/0000 και μετά? 20 bit τα λιγότερα! Ημέρα, Μήνας, Χρόνος => ( ) => 21 Ημέρα, Μήνας, Χρόνος, Μέρα της εβδομάδας => ( ) => 24

39

40 Λογικές (Δυαδικές) Συναρτήσεις A A Z Z Υποθέστε τη δυαδική μεταβλητή Α Α=0 => διακόπτης ανοικτός Α=1=> διακόπτης κλειστός και τη Ζ Ζ=0 => Οχι φώς Ζ=1 => Φως Η Ζ είναι ανεξάρτητη από τη Α ή όχι? Η Ζ είναι μια συνάρτηση της Α, ισχύει Ζ = f(α) = A!

41 Απλές λογικές συναρτήσεις 2 δυαδικών μεταβλητών A B Z A Z B Οι συναρτήσεις αυτές ονομάζονται και λογικές γιατί τις χρησιμοποιούμε στη λογική των προτάσεων που συντάσσουμε καθημερινά.

42 Σύνθεση συναρτήσεων A C Z A Z B B Οσο πιο πολύπλοκο γίνεται το σχέδιο, τόσο πιο προφανές γίνεται ότι χρειαζόμαστε κάποιο τυπικό τρόπο, για να βρούμε πότε το Ζ θα γίνει 1. Χρειαζόμαστε συνεπώς μια άλγεβρα!

43 Τι είναι μια άλγεβρα? Μια μαθηματική δομή : Σύνολο ψηφίων & αναπαραστάσεων Σύνολο τελεστών & προτεραιότητες Αξιώματα Θεωρήματα Συναρτήσεις Αλγεβρα των φυσικών αριθμών Ψηφίο {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, Αναπαραστάσεις = Τελεστές : +, -, *, / Προτεραιότητες : {,[,(, /, *, -, + Αξιώματα : ουδετερότητα του 0 στη +, του 1 στον *, προσεταιριστικότητα του +, επιμεριστικότητα του * ως προς το +,... Θεωρήματα : x+x = 2x Συναρτήσεις f(x,y) = 3x+5y

44 Aλγεβρα Boole To 1854 (!!!) o Αγγλος μαθηματικός George Βοοle εισήγαγε μια άλγεβρα δύο τιμών : αλήθεια και ψέμα. Προτάθηκε για το λογισμό της αλήθειας ή του ψέμματος προτάσεων Π.χ. Δεχόμαστε τη πρόταση "Οσοι κάνουν μπάνιο κάθε μέρα έχουν πολλά λεφτά ή δε τους αρέσει η βρωμιά" ως αληθή. Δεχόμαστε και τη πρόταση "Κανένας μηχανικός υπολογιστών δεν έχει πολλά λεφτά" ως αληθή. Εστω η πρόταση "Αν είσαι μηχανικός υπολογιστών και σου αρέσει η βρωμιά, κάνεις μπάνιο κάθε μέρα". Τι μπορούμε να αποφανθούμε για την αλήθεια ή το ψέμμα της?

45 Shannon Σχεδόν ένα αιώνα αργότερα (1938), ο Claude Shannon διαπιστώνει ότι απλά αντιστοιχίζοντας τις "αλήθεια" και "ψέμμα" στο "κλειστός διακόπτης" και "ανοικτός διακόπτης", μπορεί να εφαρμόσει τα όσα ανέπτυξε ο Βοοle και σε κυκλώματα διακοπτών. Ετσι η άλγεβρα Boole έγινε "switching algebra". Εμείς θα πάμε απλά ένα βήμα πιο πέρα. Αντί για "κλειστός διακόπτης" και "ανοικτός διακόπτης" θα χρησιμοποιούμε τις τιμές δυαδικών μεταβλητών "1" και "0" αντίστοιχα. Ετσι έχουμε τη δυαδική άλγεβρα (λογική άλγεβρα).

46 Κι ο Huntington? To 1904 (ενδιάμεσα δηλαδή από το Boole & το Shannon) ένας άλλος μαθηματικός, ο Εdward Huntington ( 1919 : president of the Mathematical Association of America 1941 : vice-president of the American Association for the Advancement of Science 1913 : member of the American Academy of Arts and Sciences 1933 : member of the American Philosophical Society in ) διατύπωσε μια σειρά αξιωμάτων που ισχύουν όχι μόνο για την άλγεβρα του Boole, αλλά για κάθε αλγεβρική δομή. Διάφορα θεωρήματα αποδεικνύονται συνεπώς με τον ίδιο τρόπο όπως για κάθε άλγεβρα λόγω αυτής της ιδιότητας.

47 Δίτιμη άλγεβρα. Κάθε στοιχείο της Χ {0,1} Υπαρξη συμπληρώματος (α') Αν α = 0 => α' = 1, Αν α = 1 => α' = 0 Δύο λογικές πράξεις : Λογική σύζευξη (and / και) : (το σύμβολο μπορεί να παραλείπεται σε απλή παράταξη μεταβλητών) Λογική διάζευξη (or / ή) : + Αξιώματα Οι λογικές πράξεις ακολουθούν τους εξής κανόνες : 0 0 = 0, = = 1, = = 1 0 = 0, = = 1 Σε μία σύνθετη συνάρτηση των δύο λογικών πράξεων, οι προτεραιότητες είναι : {, [, (, ',, +

48 Θεωρήματα μιας μεταβλητής (Απόδειξη με εξέταση όλων των δυνατών τιμών της μεταβλητής) Χ + 0 = Χ, Χ 1 = Χ (Ουδέτερα στοιχεία) Χ + 1 = 1, Χ 0 = 0 (Απορροφητικά στοιχεία) Χ + Χ = Χ, Χ Χ = Χ (Αυτοαπορρόφησης) (Χ')' = Χ (Διπλοαντιστροφής) Χ + Χ' = 1 Χ Χ' = 0 (Συμπληρωματικά στοιχεία)

49 Θεωρήματα δύο και τριών μεταβλητών (1/2) (Απόδειξη με εξέταση όλων των δυνατών τιμών των δύο μερών) Χ + Υ = Υ + Χ, Χ Υ = Υ Χ (Αντιμεταθετική) (Χ + Υ) + Ζ = Χ + (Υ + Ζ), (Χ Υ) Ζ = Χ (Υ Ζ) (Προσεταιριστική) Συμπέρασμα : Σε λογικά γινόμενα ή λογικά αθροίσματα, η χρήση παρενθέσεων είναι προαιρετική. Για παράδειγμα μπορώ να γράφω w + x + y + z αφού όπως κι αν υπολογιστεί αυτή η έκφραση θα πάρω το ίδιο λογικό αποτέλεσμα. Χ Υ + Χ Ζ = Χ (Υ + Ζ), (Χ + Υ) (Χ + Ζ) = Χ + (Υ Ζ) (Επιμεριστική) Προσοχή : 1. Η έκφραση Χ Υ + Χ Ζ είναι ισοδύναμη με την (Χ Υ) + (Χ Ζ). Θυμηθείτε τη προτεραιότητα τελεστών. 2. Ισχύουν και οι 2 επιμερισμοί. Στην άλγεβρα των αριθμών ισχύει μόνο του x ως προς το +. Παράδειγμα : (W + Y) (X + Ζ) (V + Y) (W + Ζ) (X + Y) (V + Ζ) = [W + (Y Ζ)] [X + (Y Ζ)] [V + (Y Ζ)] = (Y Ζ) + (V X W)

50 Θεωρήματα δύο και τριών μεταβλητών (2/2) (Απόδειξη με εξέταση όλων των δυνατών τιμών των δύο μερών) Χ + Χ Υ = Χ, Χ (X + Υ) = Χ (Κάλυψης) Χ Υ + Χ Υ'= Χ (Χ + Υ) (Χ + Υ') = Χ (Συνδυασμών) Παράδειγμα : Χ Υ Z' + Χ Υ' Z' + Χ Υ Z + Χ Υ' Z = Χ Z' + Χ Z = X Συμπέρασμα : Σε ένα άθροισμα γινομένων, που κάθε γινόμενο έχει κ μεταβλητές, αν υπάρχουν όλοι οι συνδυασμοί τιμών των κ-1 μεταβλητών τότε μπορούν να διαγραφούν από την έκφραση. Χ Υ + Χ' Ζ + Υ Ζ = Χ Υ + Χ' Ζ, (Χ +Υ) (Χ' + Ζ) (Υ + Ζ) = (Χ +Υ) (Χ' + Ζ) (Συναίνεσης)

51 Θεωρήματα γενικευμένου αριθμού μεταβλητών Χ + Χ Χ = Χ, Χ Χ... Χ = Χ (Αυτοαπορρόφησης) (Χ 1 + Χ Χ n )' = Χ 1 ' Χ 2 ' Χ n ' (Χ 1 Χ 2 Χ n )' = Χ' 1 + Χ' Χ' n (Θεωρήματα De Morgan) [F(Χ 1, Χ 2,..., Χ n, +, )]' = F(Χ' 1, Χ' 2,..., Χ' n,, +) (Γενικευμένο θεώρημα De Morgan) Παράδειγμα : Δίδεται η F = (W' Χ) + (X Y) + [W (Χ' + Z')]. Tότε F' = ((W')' + X') (Χ' + Y') [W' + (Χ Z)] = = (W + X') (X Y)' [W' + (X Z)] F(Χ 1, Χ 2,..., Χ n )=X 1 F( 1, Χ 2,..., Χ n ) + X 1 ' F( 0, Χ 2,..., Χ n ) F(Χ 1, Χ 2,..., Χ n )=[X 1 + F( 0, Χ 2,..., Χ n )] [X 1 ' + F( 1, Χ 2,..., Χ n )] (Θεωρήματα Shannon) Παράδειγμα : Δίδεται η F(X, W, Z) = X + W Z. Tότε F(0, W, Z ) = W Z και F(1, W, Z) = 1. Aρα F = X 1 + X' W Z καθώς και F = (X + W Z) (X' + 1)

52 To μεταθεώρημα του δυϊσμού Ενα μεταθεώρημα είναι ένα θεώρημα για άλλα θεωρήματα. Είναι δηλαδή ένα πολύ βασικό και γενικευμένο θεώρημα. Μέχρι ώρας είδαμε διάφορα θεωρήματα. Ολα μα όλα παρουσιάστηκαν σε ζεύγη. Τι υποκρύπτει αυτή η δυαδική συμπεριφορά? Δυισμός : Η αλήθεια ή το ψέμμα μιας ταυτότητας ή ενός θεωρήματος που ασχολείται με δυαδικές μεταβλητές και λογικές συναρτήσεις δεν αλλάζει αν ανταλλάξουμε το 0 με το 1 και το + με το.

53 Γιατί τόση θεωρία? Οσα είδαμε έχουν άμεση εφαρμογή στο πραγματικό κόσμο. Υπάρχουν έτοιμοι ψηφιακοί σχεδιασμοί οι οποίοι υλοποιούν τις βασικές λογικές συναρτήσεις (φυσικά υπάρχουν και άλλοι που υλοποιούν άλλες ενδεχόμενα πιο πολύπλοκες συναρτήσεις). Οι σχεδιασμοί αυτοί ονομάζονται ψηφιακές πύλες. Θα εισάγουμε : κάποια σχηματικά για την απεικόνιση αυτών. Ενα πίνακα που δείχνει τη λογική συνάρτηση που επιτελείται από το συγκεκριμένο ψηφιακό κύκλωμα. Ο πίνακας αυτός είναι ο πίνακας αληθείας της συνάρτησης, άρα και του ψηφιακού σχεδιασμού.

54 O αντιστροφέας Παράγει το συμπλήρωμα μιας δυαδικής μεταβλητής. Μπορούμε αντί για το πλήρες σχηματικό του αντιστροφέα, να χρησιμοποιούμε μόνο το κύκλο. Είναι διαθέσιμο ως ψηφιακό κύκλωμα σε 6άδες, εντός ενός ολοκληρωμένου με κωδικό 7404.

55 Η πύλη ΑΝD δύο μεταβλητών Εκτελεί το λογικό ΚΑΙ των δύο μεταβλητών. Είναι διαθέσιμο ως ψηφιακό κύκλωμα σε 4άδες, εντός ενός ολοκληρωμένου με κωδικό 7408.

56 Η πύλη OR δύο μεταβλητών Εκτελεί το λογικό H των δύο εισόδων. Είναι διαθέσιμο ως ψηφιακό κύκλωμα σε 4άδες, εντός ενός ολοκληρωμένου με κωδικό 7432.

57 Λογικό διάγραμμα Η χρήση των σχηματικών των διαφόρων πυλών και η διασύνδεσή τους οδηγεί σε ένα λογικό διάγραμμα που περιγράφει κάποια πιο σύνθετη συνάρτηση. Για παράδειγμα : Το παραπάνω είναι ένα διάγραμμα που περιγράφει τη συνάρτηση : F 4 (x, y, z) = x' z + y' x Ποιο είναι το λογικό διάγραμμα της G(X, W, Y, Z) = [Χ' Υ + Χ] (Ζ + W') ;

58 Eπέκταση σε περισσότερες είσοδες Αν ήθελα το λογικό διάγραμμα της F(x, y, z) = x + y + z πως θα το έφτιαχνα? Από τη θεωρία μου γνωρίζω ότι F(x, y, z) = x + y + z = (x + y ) + z και συνεπώς θα μπορούσα να χρησιμοποιήσω κάτι τέτοιο : Μήπως υπάρχουν έτοιμες και πύλες περισσότερων εισόδων? Φυσικά! Αυτό όμως δε σημαίνει ότι υπάρχουν οσωνδήποτε εισόδων. Κι εδώ πρέπει να διαχωρίσουμε το πραγματικό από τον ιδεατό κόσμο : Στον ιδεατό κόσμο μπορούμε να φτιάχνουμε λογικά διαγράμματα με πύλες όσων εισόδων θέλουμε. Στη πράξη αυτά θα υλοποιηθούν με όσα πραγματικά υπάρχουν.

59 Ποια συνάρτηση επιτελεί αυτό το κύκλωμα? Χ' Υ' Χ' Υ' Ζ Χ Υ' Χ' Υ Ζ Χ Υ' + Χ' Υ Ζ + Χ' Υ' Ζ

60 Ποιες άλλες συναρτήσεις και πύλες υπάρχουν? Πόσες διαφορετικές συναρτήσεις των ν μεταβλητών υπάρχουν? Μια συνάρτηση ν μεταβλητών, έχει 2 ν πιθανές τιμές εισόδου. Διαφορετική συνάρτηση διαφορετική έξοδος έστω και για κάποιον συνδυασμό εισόδου. Αφού η έξοδός μου για κάθε συνδυασμό εισόδου μπορεί να είναι 0 ή 1 θα υπάρχουν 2 2ν συναρτήσεις. Για ν =2 ποιες είναι οι συναρτήσεις που υπάρχουν και ποιες από αυτές είναι χρήσιμες? 1. Δυο σταθερές 0, Τέσσερις unary συμπληρώματος/μεταφοράς. 3. Δέκα συναρτήσεις με δυαδικούς τελεστές.

61 Μας ενδιαφέρουν επίσης οι : F 14 που είναι συμπληρωματική της ΑΝD. Θα τη λέμε ΝΑΝD (not AND). F 8 που είναι συμπληρωματική της OR. Θα τη λέμε ΝOR (not OR). F 6 που μας δίνει 1 μόνο όταν μόνο 1 είσοδος είναι στο λογικό 1 (για περισσότερες εισόδους, όταν ο αριθμός των 1 στις εισόδους είναι περιττός). Θα την ονομάζουμε αποκλειστικό-or (exclusive-or) XOR. F 9 που μας δίνει 1 μόνο όταν μόνο 0 ή 2 είσοδοι είναι στο λογικό 1 (για περισσότερες εισόδους όταν ο αριθμός των 1 στις εισόδους είναι άρτιος). Θα την ονομάζουμε συνάρτηση ισοδυναμίας (not exclusive-or) XNOR.

62 Eτσι έχουμε για τα λογικά μας διαγράμματα : (1/2)

63 Eτσι έχουμε για τα λογικά μας διαγράμματα : (2/2)

64 Επέκταση σε περισσότερες εισόδους? (2) = = =

65 A B A A B C B C Y A A B A B C A B C D B C D Y

66 A B C Y A B C D Y

67 A B C Y Α B C Y X X 0 1 X 0 X 1 Y = A B C 0 X X A B C D Y A B C D Y X X X 0 1 X X 0 X 1 Y = A B C D X 0 X X 1 0 X X X

68 AB Α B C Y A B C ABC Y ABC X X X 1 0 X A + B A B C A + B + C A + B + Y C

69 A Y A B Y A Y A B Y A B Y A B Y A A Y Y B B

70 A B Y Y = A B A Y B Y = = A AABBAB = AAB ( ) ( ) A + B + B A + B + = BAB = = AB + AB = A B

71 A Y A B Y A Y A B Y A B Y A B Y A A B Y B Y

72 A + B = A B A B Y A A Y B B A B Y

73 Κόστος πυλών Κοστίζουν όλες οι πύλες το ίδιο? Οχι. Αλλωστε είναι χαρακτηριστικό ότι σε ένα ολοκληρωμένο κύκλωμα έχουμε 6 inverters και μόνο 4 OR, AND, To κόστος μιας πύλης εξαρτάται : Από τον αριθμό των εισόδων της. Περισσότεροι είσοδοι => κόστος. Από τη συνάρτηση που επιτελεί : ΝΑΝD, NOR οι πιο απλές. ΑΝD, OR, ελάχιστα πιο πολύπλοκες (σε επίπεδο transistor). XOR, XNOR αρκετά πιο πολύπλοκες Μεγαλύτερη πολυπλοκότητα => κόστος

74 Ισοδύναμες και συμπληρωματικές συναρτήσεις Δύο συναρτήσεις των κ μεταβλητών είναι ισοδύναμες, αν για κάθε συνδυασμό τιμών των μεταβλητών εισόδου, οι συναρτήσεις οδηγούν στην ίδια έξοδο. Συμπέρασμα 1 : Ισοδύναμες συναρτήσεις μπορεί να έχουν διαφορετικές αλγεβρικές εκφράσεις. Συμπέρασμα 2 : Ισοδύναμες συναρτήσεις μπορεί να έχουν διαφορετικά λογικά διαγράμματα. Συμπέρασμα 3 : Ισοδύναμες συναρτήσεις έχουν τον ίδιο πίνακα αληθείας. Δύο συναρτήσεις των κ μεταβλητών είναι συμπληρωματικές, αν για κάθε συνδυασμό των μεταβήτών εισόδου, οι συναρτήσεις παράγουν συμπληρωματικές τιμές.

75 Μεταξύ ισοδύναμων συναρτήσεων κάποιες είναι σαφώς προτιμητέες! Η F 3 είναι σαφώς πιο πολύπλοκη συνάρτηση από την F 4. Χρησιμοποιεί περισσότερες πύλες, μα ταυτόχρονα και πύλες με περισσότερες εισόδους. Παράλληλα χρησιμοποιεί 4 διαφορετικά ολοκληρωμένα έναντι 3 της F 4. To μεγάλο συνεπώς ερώτημα που προκύπτει είναι πως θα βρω τη συνάρτηση με το ελάχιστο κόστος ανάμεσα στις ισοδύναμες? Αυτό είναι το πιο ενδιαφέρον σημείο του μαθήματος : απλοποίηση συναρτήσεων

76 Η θεωρία παρέχει τη μέθοδο της αλγεβρικής απλοποίησης Θυμηθείτε ότι για την F 3 είχαμε ότι : F 3 (Χ, Υ, Ζ) = Χ Υ' + Χ' Υ Ζ + Χ' Υ' Ζ Από τη θεωρία βάσει του θεωρήματος των συνδυασμών γνωρίζω ότι : Χ' Υ Ζ + Χ' Υ' Ζ = Χ' Ζ Αρα F 3 = Χ Υ' + Χ' Ζ = F 4. H αλγεβρική απλοποίηση δεν είναι πάντα τόσο εύκολη! Ακόμα χειρότερα, ποτέ δε γνωρίζω αν έχοντας κάνει κάποια στάδια απλοποίησης έχω βρει την απολύτως ελάχιστη ισοδύναμη συνάρτηση. Η αλγεβρική απλοποίηση πρέπει να χρησιμοποιείται για συναρτήσεις πολύ λίγων μεταβλητών από έμπειρους σχεδιαστές.

77 Παραδείγματα αλγεβρικής απλοποίησης F (X, Y, Z) = X Y' Z + X' Y Z + Y Z = = X Y' Z + Y Z (Απορρόφηση) = Ζ (Χ Y' + Υ) (Επιμεριστική) = Ζ (Χ + Υ) (1 o αποδειχθέν θεώρημα) Υλοποιείστε με τον ελάχιστο αριθμό πυλών τη F(X, Y, Z) = X Y' Z + X Y' Z + X Y Z' F (X, Y, Z) = X Y' Z + X Y' Z + X Y Z' = = X Y' Z + X Y Z' (Aυτοαπορρόφηση) = Χ (Y' Z + Y Z') (Επιμεριστική) = Χ (Υ Ζ) (συνάρτηση XOR)

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

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

80 Οροι, αθροίσματα, γινόμενα Μια μεταβλητή στη κανονική ή τη συμπληρωματική της μορφή είναι ένας όρος Παραδείγματα όρων : Χ, Χ', Υ, Ζ' Ενα γινόμενο είναι είτε ένας όρος είτε το λογικό AND δύο ή περισσότερων όρων Παραδείγματα γινομένων : Χ, Χ Ζ', Υ Χ', Χ Ζ' Υ' Ενα άθροισμα είναι είτε ένας όρος είτε το λογικό OR δύο ή περισσοτέρων όρων Παραδείγματα αθροισμάτων : Χ, Χ + Ζ', Υ+ Χ', Χ + Ζ' + Υ' Αθροισμα γινομένων (sum of products SOP) είναι κάθε άθροισμα του οποίου οι όροι είναι γινόμενα Παράδειγμα SOP : Χ + Χ Ζ' + Υ Χ' + Χ Ζ' Υ' Γινόμενο αθροισμάτων (product of sums POS) είναι κάθε γινόμενο του οποίου οι όροι είναι αθροίσματα. Παράδειγμα POS : Χ (Χ + Ζ') (Υ+ Χ') (Χ + Ζ' + Υ') Κανονικός όρος είναι ένα άθροισμα ή ένα γινόμενο, στο οποίο κάθε μεταβλητή (κανονική ή συμπληρωμένη) εμφανίζεται μόνο 1 φορά. Κάθε μη κανονικός όρος μπορεί να μετατραπεί μέσω απλοποίησης σε κανονικό. Κανονικοί όροι : Χ Ζ' Υ', Χ + Ζ' + Υ' Μη κανονικοί όροι : Χ Ζ' Υ' Χ, Χ + Ζ' + Υ' + Ζ

81 Ελαχιστόροι - Μεγιστόροι Κάθε κανονικός όρος - γινόμενο μιας συνάρτησης κ μεταβλητών, είναι ελαχιστόρος αν περιέχει κ όρους. Κάθε συνάρτηση κ μεταβλητών έχει 2 κ ελαχιστόρους. Η F(X, Y) έχει τους ελαχιστόρους : Χ' Υ, Χ Υ, Χ Υ' και Χ Υ Κάθε ελαχιστόρος αντιπροσωπεύει μία γραμμή του πίνακα αληθείας Κάθε κανονικός όρος άθροισμα μιας συνάρτησης κ μεταβλητών, είναι μεγιστόρος αν περιέχει κ όρους. Κάθε συνάρτηση κ μεταβλητών έχει 2 κ μεγιστόρους. Η F(X, Y) έχει τους μεγιστόρους : Χ' + Υ, Χ + Υ, Χ + Υ' και Χ + Υ Κάθε μεγιστόρος αντιπροσωπεύει μία γραμμή του πίνακα αληθείας

82 Ελαχιστόροι Μεγιστόροι και πίνακας αλήθειας Μεταξύ πίνακα αλήθειας και ελαχιστόρων (μεγιστόρων) υπάρχει μια στενή σχέση. Ο ελαχιστόρος (μεγιστόρος) μπορεί να οριστεί σα το γινόμενο (άθροισμα) που μπορεί να γίνει 1 (0) μόνο για τις τιμές εισόδου μιας και μόνο γραμμής του πίνακα αλήθειας. Mπορούμε να ορίσουμε τη δυαδική τιμή που επαληθεύει τον όρο (κάνει 1 τον ελαχιστόρο ή 0 τον μεγιστόρο) σα το διακριτικό του αντίστοιχου όρου. Π.χ. Ελαχιστόρος 4 = x y' z'. Mεγιστόρος 5 = x' + y + z'

83 Συνάρτηση σα κανονικό άθροισμα Αφού κάθε γραμμή του πίνακα αληθείας αντιστοιχεί σε ένα ελαχιστόρο μπορούμε κοιτώντας το πίνακα αληθείας να δούμε ποιοι ελαχιστόροι επαληθεύουν τη συνάρτηση. Το λογικό άθροισμα αυτών μας δίνει την έκφραση της συνάρτησης σα κανονικό άθροισμα. Η συνάρτηση επαληθεύεται όταν επαληθεύεται ο ελαχιστόρος 1 ή ο ελαχιστόρος 3 ή ο ελαχιστόρος 4 ή ο ελαχιστόρος 5 Ισοδύναμα είναι F 3 (x, y, z) = m 1 + m 3 + m 4 + m 5 = x'y'z + x'yz + xy'z' + xy'z = Σ(1, 3, 4, 5) Αφού ισοδύναμες συναρτήσεις έχουν κοινό πίνακα αλήθειας, θα έχουν και κοινά κανονικά αθροίσματα. Συνεπώς το κανονικό άθροισμα είναι μια πρότυπη μορφή πάνω στην οποία μπορώ να εφαρμόσω κάποιον αλγόριθμο.

84 Συνάρτηση σα κανονικό γινόμενο Αφού κάθε γραμμή του πίνακα αληθείας αντιστοιχεί σε ένα μεγιστόρο μπορούμε κοιτώντας το πίνακα αληθείας να δούμε ποιοί μεγιστόροι δεν επαληθεύουν τη συνάρτηση. Το λογικό γινόμενο αυτών μας δίνει την έκφραση της συνάρτησης σα κανονικό γινόμενο. Η συνάρτηση δεν επαληθεύεται αν επαληθεύεται (παίρνει δηλαδή τη τιμή 0) ο μεγιστόρος 0 ή ο μεγιστόρος 2 ή ο μεγιστόρος 6 ή ο μεγιστόρος 7 Ισοδύναμα είναι F' 3 (x, y, z) = Μ' 0 + Μ' 2 + Μ' 6 + Μ' 7 => F 3 (x, y, z) = Μ 0 Μ 2 Μ 6 Μ 7 = (x +y + z) (x + y' +z) (x' + y' + z) (x' + y' +z') = Π(0, 2, 6, 7) Αφού ισοδύναμες συναρτήσεις έχουν κοινό πίνακα αλήθειας, θα έχουν και κοινά κανονικά γινόμενα. Συνεπώς το κανονικό γινόμενο είναι μια πρότυπη μορφή πάνω στην οποία μπορώ να εφαρμόσω κάποιον αλγόριθμο.

85 Μετατροπές μεταξύ κανονικών μορφών Αφού κάθε γραμμή του πίνακα αληθείας είναι είτε 0 είτε 1 αν γνωρίζω τη μορφή της συνάρτησης στη μία κανονική μορφή η άλλη προκύπτει από τους όρους που λείπουν. Π.χ. F(A, B, C) = Σ (1,4,6) => F = Π (0, 2, 3, 5, 7) G(W, X, Y, Z) = Π (1, 8, 11, 14, 15) => G = Σ (0, 2, 3, 4, 5, 6, 7, 9, 10, 12, 13) Είναι επίσης πολύ εύκολο για μια συνάρτηση F να βρώ τη F' Iσχύει ότι m' i = M i και φυσικά Μ' i = m i Για παράδειγμα είναι m' 0 = (x' y' z')' = x + y + z = M 0 Aρα αν F(x, y, z) = Σ (1, 3,4) => F = m 1 + m 3 + m 4 => F' = (m 1 + m 3 + m 4 )' = M 1 M 3 M 4 = Π(1, 3, 4) = Σ (0, 2, 5, 6, 7) Δηλαδή η συμπληρωματική μιας συνάρτησης προκύπτει σα κανονικό άθροισμα των ελαχιστόρων που λείπουν από το κανονικό της άθροισμα

86 Να θυμάστε Πίνακας αλήθειας Κανονικό άθροισμα Κανονικό γινόμενο } πρότυπες μορφές Αλγεβρική μορφή } Λογικό διάγραμμα Λεκτική περιγραφή μή πρότυπες μορφές Πρέπει επίσης να μπορείτε να πηγαίνετε από μη πρότυπες μορφές σε πρότυπες.

87 Απλοποίηση Συναρτήσεων Σκοποί της απλοποίησης Λιγότεροι όροι Απλούστεροι όροι Θέλουμε απλές και συστηματικές μεθόδους Υπάρχουν : Η μέθοδος του χάρτη (μέθοδος Karnaugh / k-map) : γραφική μέθοδος για συναρτήσεις έως 5 μεταβλητών. Η μέθοδος Quine-McClauskey : αλγεβρική μέθοδος Η μέθοδος Espresso : αλγεβρική μέθοδος Οι μέθοδοι αυτοί δε μας δίνουν τις υλοποιήσεις με τις λιγότερες πύλες, αλλά τις απλούστερες υλοποιήσεις με ΝΟΤ, ΑΝD & OR.

88 Πίνακας αλήθειας } Κανονικό άθροισμα Κανονικό γινόμενο πρότυπες μορφές Αλγεβρική μορφή } Λογικό διάγραμμα Λεκτική περιγραφή μή πρότυπες μορφές

89 Η Μέθοδος του Χάρτη Χ Υ + Χ Υ'= Χ (Χ + Υ) (Χ + Υ') = Χ (Συνδυασμών) Παράδειγμα : Χ Υ Z' + Χ Υ' Z' + Χ Υ Z + Χ Υ' Z = Χ Z' + Χ Z = X Συμπέρασμα : Σε ένα άθροισμα γινομένων, που κάθε γινόμενο έχει κ μεταβλητές, αν υπάρχουν όλοι οι συνδυασμοί τιμών των κ-1 μεταβλητών τότε μπορούν να διαγραφούν από την έκφραση. Ο χάρτης είναι ένα διάγραμμα αποτελούμενο από τετράγωνα. Κάθε τετράγωνο παριστάνει ένα ελαχιστόρο (ισοδύναμα μια γραμμή του πίνακα αλήθειας). Αν ο ελαχιστόρος αληθεύει τη συνάρτηση, υπάρχει 1 στο αντίστοιχο τετράγωνο. Αν όχι υπάρχει 0. "Γειτονιές" (Τετράγωνα / ορθογώνια 2 ή 4 ή 8 ή 16 ή επαληθευόμενων ή αδιάφορων ελαχιστόρων) στο χάρτη υποδεικνύουν αθροίσματα ελαχιστόρων (γινομένων) στα οποία 1 ή 2 ή 3 ή 4 ή μεταβλητές αντίστοιχα παίρνουν όλες τις δυνατές τιμές!!!

90 Karnaugh 2-Μεταβλητών A B Y 0 0 α 0 1 β 1 0 γ 1 1 δ

91 Karnaugh 2-Μεταβλητών A B Y 0 0 α 0 1 β 1 0 γ 1 1 δ Α Β

92 Karnaugh 2-Μεταβλητών A B Y 0 0 α 0 1 β 1 0 γ 1 1 δ Α Β α β 1 γ δ

93 A B Y A B + AB = Α Β B B

94 B B Α Β Α Β

95 B B Α Β Α Β A Α Β

96 B B Α Β Α Β Α Β 0 1 Α Β 0 1 A A 1 1 1

97 A B Y

98 A B Y Α Β

99 A B Y Α Β Y = A

100 A B Y

101 A B Y Α Β

102 A B Y Α Β

103 A B Y Α Β Y = A + B

104 A B Y Α Β Y = A + B Ποιος μου επιτρέπει να χρησιμοποιήσω τον m 3 δύο φορές?

105 A B Y Y = A + Α Β B Ποιος μου επιτρέπει να χρησιμοποιήσω τον m 3 δύο φορές? Υ = m 1 + m 2 + m 3 = m 1 + m 2 + m 3 + m 3 (αυτοαπορρόφηση) = m 1 + m 3 + m 2 +m 3 (αντιμεταθετική) = Α Β + ΑΒ + ΑΒ + ΑΒ = Β (Α + Α ) + Α (Β +Β ) = Α +Β

106 A B Y Y = A + Α Β B Ποιος μου επιτρέπει να χρησιμοποιήσω τον m 3 δύο φορές? Υ = m 1 + m 2 + m 3 = m 1 + m 2 + m 3 + m 3 (αυτοαπορρόφηση) = m 1 + m 3 + m 2 +m 3 (αντιμεταθετική) = Α Β + ΑΒ + ΑΒ + ΑΒ = Β (Α + Α ) + Α (Β +Β ) = Α +Β ΣΥΜΠΕΡΑΣΜΑ : Μπορώ να χρησιμοποιώ το ίδιο ελαχιστόρο ή ομάδες ελαχιστόρων σε όσες ομάδες μου χρειαστεί.

107 Α Β Y = AB + AB = A B

108 Χάρτης Δυο (2) Μεταβλητών Ο χάρτης περιέχει 4 τετράγωνα, ένα για κάθε ελαχιστόρο. y x 0 1 m 0 m 1 0 x y x y m 2 m 3 1 xy xy Το x εμφανίζεται ως συμπλήρωμα στη γραμμή 0 και κανονικά στη γραμμή 1. Το y εμφανίζεται ως συμπλήρωμα στη στήλη 0 και κανονικά στη στήλη 1. Παραδείγματα y x y x xy = Σ(3) = m 3 x+y = Σ(1,2,3) = m 1 + m 2 + m 3

109 Karnaugh 3-Μεταβλητών Α ΒC Προσοχή Στη σειρά Τα γειτονικά κελιά διαφέρουν κατά 1 bit ή μια μεταβλητή

110 Y = ABC + ABC ΒC Α

111 Y = ABC + ABC ΒC Α Y = AB

112 ΒC Α

113 ΒC Α Y = A Γιατί να μη φτιάξω δύο ή και τρεις ομάδες των 2?

114 ΒC Α Y = A Γιατί να μη φτιάξω δύο ή και τρεις ομάδες των 2?

115 ΒC Α Y = AB + AB Γιατί θα έχω αφενώς περισσότερα γινόμενα στην απλοποιημένη έκφραση, αφετέρου κάθε γινόμενο θα έχει περισσότερους όρους καθώς απαλείφεται μία μόνο μεταβλητή! ΣΥΜΠΕΡΑΣΜΑ : Για κάθε 1 του πίνακα θέλω τη μεγαλύτερη δυνατή γειτονιά και θέλω να καλύψω όλους τους 1 του πίνακα με τις ελάχιστες δυνατές γειτονιές!!!

116 ΒC Α ΒC Α Y = A

117 ΒC Α ΒC Α Y = A Y = C

118 ΒC Α ΒC Α Y = A Y = C ΒC Α

119 ΒC Α ΒC Α Y = A Y = C ΒC Α Y = A + B

120 Y = ABC + ABC + ABC + ABC ΒC Α

121 Y = ABC + ABC + ABC + ABC ΒC Α

122 Y = ABC + ABC + ABC + ABC ΒC Α

123 Y = ABC + ABC + ABC + ABC ΒC Α Y = C

124 Χάρτης Τριών (3) Μεταβλητών Ο χάρτης περιέχει 8 τετράγωνα, ένα για κάθε ελαχιστόρο. yz Προσοχή στην αρίθμηση Το άθροισμα δύο ελαχιστόρων της συνάρτησης που βρίσκονται σε γειτονικά τετράγωνα απλοποιείται σε ένα όρο ΚΑΙ με δύο μόνο παράγοντες. Το άθροισμα τεσσάρων ελαχιστόρων της συνάρτησης που βρίσκονται σε γειτονικά τετράγωνα απλοποιείται σε ένα όρο με ένα μόνο παράγοντα. Το άθροισμα οκτώ ελαχιστόρων της συνάρτησης που βρίσκονται σε γειτονικά τετράγωνα καταλαμβάνει όλο το χάρτη και παριστάνει τη συνάρτηση που είναι πάντα ίση με 1.

125 Παραδείγματα Χάρτη Τριών (3) Μεταβλητών F(x,y,z) = Σ(2,3,4,5) F(x,y,z) = x y+xy F(x,y,z) = Σ(3,4,6,7) F(x,y,z) = yz+xz

126 Παραδείγματα Χάρτη Τριών (3) Μεταβλητών F(x,y,z) = Σ(0,2,4,5,6) F(x,y,z) = z +xy F(A,B,C) = A C+A B+AB C+BC F(A,B,C) = Σ(1,2,3,5,7) = C+A B

127 Karnaugh 4-Μεταβλητών CD ΑB

128 CD ΑB

129 CD CD ΑB ΑB

130 CD ΑB CD ΑB Y = AB + CD

131 CD ΑB

132 CD ΑB Y = BD

133 CD ΑB CD ΑB Y = B Y = B + D

134 CD ΑB Y = CD + CD + ABC

135 CD ΑB Y = CD + CD + ABC Είναι αυτή η μοναδική ελάχιστη μορφή της συνάρτησης?

136 CD ΑB Y = CD + CD + ABD ΣΥΜΠΕΡΑΣΜΑ : Κάποιοι 1 έχουν μοναδική μέγιστη γειτονιά (essential prime implicants) και θα πρέπει να υπάρχει σε κάθε ελάχιστη μορφή της συνάρτησης. Κάποιοι άλλοι δεν έχουν, συνεπώς δεν υπάρχει πάντα μοναδική ελάχιστη μορφή.

137 Χάρτης Τεσσάρων (4) Μεταβλητών Ο χάρτης περιέχει 16 τετράγωνα, ένα για κάθε ελαχιστόρο. Κάθε 2 n γειτονικά τετράγωνα διαφέρουν σε n μεταβλητές και οδηγούν σε έναν όρο ΚΑΙ με k n παράγοντες, όπου k το πλήθος των μεταβλητών της συνάρτησης. Η πάνω ακμή ακουμπάει στην κάτω και η δεξιά στην αριστερή (γειτονικότητα).

138 Παραδείγματα Χάρτη Τεσσάρων (4) Μεταβλητών F(w,x,y,z) = Σ(0, 1, 2, 4, 5, 6, 8, 9, 12, 13, 14) F(w,x,y,z) = y + w z + xz 1 F(A,B,C,D) = A B C + B CD + A BCD + AB C F(A,B,C,D) = B D + B C + A CD

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

140

141 AB 00 CD X AB 00 CD X X X X 11 1 X 1 11 X X 1 10 X 1 1 AB 00 CD X X X 1

142 AB 00 CD X 1 1 AB CD X 1 X 1 01 X X X X 11 X X X X 10 1 X 10 1 X AB 00 CD X X 11 X X X 1

143 Χάρτης Πέντε (5) μεταβλητών

144 Παράδειγμα Χάρτη Πέντε (5) Μεταβλητών F(Α, Β, C, D, E) = Σ(0, 2, 4, 6, 9, 13, 21, 23, 25, 29, 31) F(A, B, C, D, E) = A B E + BD E + ACE

145 Βήμα 1 : Αλγόριθμος απλοποίησης με πίνακα Karnaugh Bρες όλους τους ουσιώδεις πρώτους συνεπαγωγούς της συνάρτησης Για κάθε 1 του πίνακα βρες τις "γειτονιές του" Επέλεξε τις μέγιστες σε πλήθος γειτονιές. Αυτοί είναι οι πρώτοι συνεπαγωγοί Επέλεξε από τους πρώτους συνεπαγωγούς τους μοναδικούς που καλύπτουν κάποιο 1. Αυτοί είναι οι ουσιώδεις πρώτοι συνεπαγωγοί Βήμα 2 : Για κάθε 1 του πίνακα που δεν έχει ήδη "καλυφθεί", επέλεξε τυχαία ένα πρώτο συνεπαγωγό του Βήμα 3 : Πήγαινε στο Βήμα 2 μέχρι να "καλυφθούν" όλοι οι 1 του πίνακα.

146 Υλοποίηση με πύλες ΌΧΙ-ΚΑΙ & ΟΥΤΕ Οι πύλες ΌΧΙ-ΚΑΙ & ΟΥΤΕ χρησιμοποιούνται πολύ συχνότερα από τις ΚΑΙ & Ή γιατί κατασκευάζονται ευκολότερα.

147 Παράδειγμα: Υλοποίηση της συνάρτησης F=AB+CD+E με ΝΑΝD. Υλοποίηση με πύλες ΌΧΙ-ΚΑΙ

148 Παράδειγμα (1)

149 F=(CD+E)(A+B ) Παράδειγμα (2)

150 Υλοποίηση με πύλες ΟΥΤΕ Η συνάρτηση ΟΥΤΕ είναι το δυϊκό της ΌΧΙ-ΚΑΙ και άρα οι κανόνες μετατροπής είναι δυϊκοί.

151 Κυκλώματα ΟΥΤΕ Πολλαπλών Επιπέδων F = (ΑΒ + E)(C + D)

152 Η Συνάρτηση Αποκλειστικό Ή Αποκλειστικό Ή (XOR) x y = x y + xy Σχ. Αντιστρ. Αποκλειστικό OYTE (XNOR) (x y) = xy + x y Ιδιότητες: x 0 = x x 1 = x x x = 0 x x = 1 x y = (x y) x y = (x y) Η πράξη XOR είναι αντιμεταθετική και προσεταιριστική: A B = B A A (B C) = (A B) C = A B C Δεν φτιάχνονται συχνά πύλες XOR με περισσότερες από 2 εισόδους.

153 Η Συνάρτηση Αποκλειστικό Ή Η συνάρτηση XOR πολλών μεταβλητών είναι περιττή: παίρνει τιμή 1 μόνο όταν περιττός αριθμός εισόδων είναι ίσος με 1.

154 Η Συνάρτηση Αποκλειστικό Ή Μια συνάρτηση XOR n μεταβλητών είναι μια περιττή συνάρτηση που ορίζεται ως το λογικό άθροισμα των 2 n /2 ελαχιστόρων των οποίων οι δυαδικές αριθμητικές τιμές τους έχουν περιττό αριθμό άσσων.

155 Γεννήτρια και Ελεγκτής Ισοτιμίας

156 Γεννήτρια και Ελεγκτής Ισοτιμίας Τα κυκλώματα αυτά χρησιμοποιούνται στην ανίχνευση λαθών κατά τη μετάδοση ή λειτουργία των κυκλωμάτων. Το bit ισοτιμίας είναι περιττή πληροφορία η οποία όμως μπορεί να χρησιμοποιηθεί για την ανίχνευση μονού αριθμού λαθών.

157 Η μεγάλη εικόνα Κάθε μέθοδος απλοποίησης (Karnaugh που είδαμε και τις υπόλοιπες που θα δούμε πιο κάτω) μας δίνει ένα ελάχιστο (όχι απαραίτητα μοναδικό) κύκλωμα για υλοποίηση με πύλες ΝΟΤ, ΑΝD και ΟR. Αν θέλω ελάχιστο αριθμό πυλών πρέπει να : Κάνω αλγεβρικές απλοποιήσεις επί της απλοποιημένης μορφής της συνάρτησης ώστε να χρησιμοποιήσω πύλες NAND, NOR, XOR, XNOR. Διαμοιράζομαι πύλες μεταξύ διαφόρων συναρτήσεων που σκοπεύω να υλοποιήσω ταυτόχρονα.

158 Αλγεβρικές απλοποιήσεις μετά το Karnaugh G (Α, Β, C, D) = Σ(0, 1, 2, 4, 5, 8, 9, 10) Karnaugh & Λογικό διάγραμμα: Περαιτέρω αλγεβρική απλοποίηση G = (A+C)' + B'(C'+D') = (A+C)' + B'(CD)' = (A+C)' + (B+CD)' = ((A+C) (B+CD))' Νέο λογικό διάγραμμα :

159 Διαμοίραση υποσυναρτήσεων Μετά από απλοποίηση έχουμε καταλήξει στις συναρτήσεις : Z (A, B, C, D) = D' Y (A, B, C, D) = C D + C' D' X (A, B, C, D) = B' C + B' D + B C' D' W(A, B, C, D) = A + B C + B D Iσχύει ότι : Υ = (C D)' X = B' (C+D) + B (C+D)' = B (C+D) W = A + B (C+D) Xρησιμοποιώντας αυτές τις μορφές ο όρος (C+D) διαμοιράζεται

160 Απλοποίηση και πραγματικός κόσμος Μέχρι ώρας είδαμε την απλοποίηση κυκλωμάτων θεωρώντας μόνο τη λογική τους λειτουργία. Στο πραγματικό κόσμο, υπάρχει και μια άλλη διάσταση : η χρονική. Θυμηθείτε ότι οι πύλες μοιάζουν με συστάδες διακοπτών, καθένας φτιαγμένος από τρανζίστορ. Κάθε τέτοιος διακόπτης χρειάζεται κάποιο χρόνο ώστε να αποκαταστήσει τη λειτουργία του, να μεταφέρει δηλαδή το σήμα από τη μία άκρη του στην άλλη. Ως εκ τούτου, κάθε πύλη έχει καθυστέρηση διάδοσης, οριζόμενη ως ο χρόνος που μεσολαβεί από την αλλαγή της εισόδου έως την αλλαγή της εξόδου που αυτή θα προκαλέσει. Η καθυστέρηση διάδοσης μπορεί να είναι διαφορετική για κάθε είδος μετάβασης της εξόδου. Αλλη δηλαδή η τιμή της για 0->1 και άλλη για 1->0.

161 Στο πραγματικό κόσμο μπορεί να μη μας συμφέρει καν η απλοποίηση! Ας υποθέσουμε το κύκλωμα που ορίζεται από το παρακάτω πίνακα Κarnaugh που μας οδηγεί στην απλοποίηση και την υλοποίηση : Αφού F(x, y, z) = x y' + yz, θα είναι F(1, y, 1) = y' + y = 1, δηλαδή η έξοδος δε θα έπρεπε να εξαρτάται από το y. Στο πραγματικό κόσμο όμως η διαδρομή από την είσοδο y στο a είναι πιο αργή από την είσοδο y στο b λόγω της ύπαρξης του αντιστροφέα. Η έξοδος συνεπώς θα παρουσιάσει μια προσωρινή μηδενική τιμή για x=1, z=1 και y 1->0. Aυτή είναι μια αιχμή (static 1 hazard). Παρατηρείστε ότι αυτή συμβαίνει κατά τη μετάβαση από τον ελαχιστόρο m 5 στον m 7. Στατικές αιχμές της κατάστασης 1, εμφανίζονται κατά τις μεταβάσεις μεταξύ ελαχιστόρων που ανήκουν σε άλλες ομάδες

162 Λύση : μη απλοποιημένη συνάρτηση Αν συμπεριλάβουμε το πρώτο συνεπαγωγό που καλύπτει τη μετάβση από το m 5 στο m 7 το πρόβλημα της στατικής αιχμής στη κατάσταση 1 λύνεται.

163 Mέθοδος Quine - McCluskey Eίσοδος : Συνάρτηση F σε κανονική μορφή άθροισμα γινομένων Αλγόριθμος Χωρίζονται οι ελαχιστόροι της F, σε ομάδες ανάλογα με το πλήθος των μεταβλητών που είναι 1 όταν επαληθεύονται. Κάθε όρος κάθε ομάδας συγκρίνεται με όλους της αμέσως επόμενης ομάδας. Αν διαφέρουν μόνο σε 1 μεταβλητή, προκύπτει νέος συγχωνευμένος όρος χωρίς αυτή τη μεταβλητή, που τοποθετείται σε νέο πίνακα, εφόσον δεν υπάρχει ήδη εκεί. Οι όροι που συγχωνεύονται απαλείφονται από τη συνέχεια Οι όροι που δεν απαλείφθηκαν προκρίνονται για το τέλος. Η διαδικασία επαναλαμβάνεται με κάθε νέο πίνακα που προκύπτει. Οι όροι που μένουν είναι οι πρώτοι συνεπαγωγοί της συνάρτησης Η επιλογή των πρώτων συνεπαγωγών για την κάλυψη της συνάρτησης γίνεται με τη μέθοδο ελάχιστης κάλυψης (περιγράφεται πιο κάτω) ή τη μέθοδο Petrick (

164 F (x, y, z, w, v) = Σ (0, 1, 2, 3, 4, 5, 6, 7, 10, 14, 20, 22, 28) Παράδειγμα Mετά την απλοποίηση είναι F = A + B + C + D = xzw'v' + x'wv + y'zv' + x'y' Oι Α, Β, C και D είναι πρώτοι συνεπαγωγοί της συνάρτησης. Είναι όμως όλοι ουσιώδεις?

165 Ελάχιστη κάλυψη Στόχος : Να επιλέξω τον ελάχιστο αριθμό πρώτων συνεπαγωγών ώστε να καλυφθεί η συνάρτηση. Αλγόριθμος Φτιάξε ένα πίνακα. Γραμμές του οι πρώτοι συνεπαγωγοί. Στήλες του οι ελαχιστόροι της συνάρτησης. Tο στοιχείο i, j σημειώνεται αν ο αντίστοιχος ελαχιστόρος περιέχεται στο πρώτο συνεπαγωγό. Βρες όλες τις στήλες με ένα μόνο σημάδι. Οι αντίστοιχοι συνεπαγωγοί είναι ουσιώδεις και συνεπώς οπωσδήποτε πρέπει να περιληφθούν στην απλοποιημένη μορφή της συνάρτησης. Αν έχουν καλυφθεί με αυτούς όλοι οι ελαχιστόροι έχεις την απλοποιημένη συνάρτηση. Αλλιώς επέλεγε επιπλέον συνεπαγωγούς για να καλύψεις τους ελαχιστόρους.

166 Μέθοδος ελάχιστης κάλυψης για το παράδειγμά μας Ολοι οι συνεπαγωγοί είναι ουσιώδεις σε αυτό το παράδειγμα!

167 Παράδειγμα 2 F (x, y, z, w, v) = Σ (1, 2, 5, 6, 7, 8, 9, 10, 13, 17, 18, 21, 22, 29) F G H Mετά την απλοποίηση είναι F = A + B + C + D + Ε + F + G + H + I I Είναι όλοι oι παραπάνω συνεπαγωγοί ουσιώδεις?

168 Παράδειγμα 2 F G H I Παρατηρούμε ότι οπωσδήποτε πρέπει να συμπεριλάβω τους Ι, Η, G στη συνάρτηση, για να καλύψω τους ελαχιστόρους 29, 22 και 17 αντίστοιχα. Αυτόματα έχω καλύψει και τους 1, 2, 5, 6, 13, 18 και 21. Πρέπει να επιλέξω τους υπόλοιπους συνεπαγωγούς ώστε να καλύψω τους ελαχιστόρους 7, 8, 9 και 10. Επιλέγω το C που καλύπτει 2 εναπομείναντες ελαχιστόρους (8 και 10). Για τον ελαχιστόρο 9, μεταξύ Β και F επιλέγω τον F καθώς έχει 1 μεταβλητή λιγότερη από τον Β. Για τον ελαχιστόρο 7, μεταξύ D και Ε, μπορώ να επιλέξω αυθαίρετα. Αρα F = G + H + I + C +D +F

169 Hardware Description Languages (HDLs) Γλώσσες περιγραφής υλικού Γιατί υπάρχουν? Οι γλώσσες προγραμματισμού δε μας καλύπτουν Το υλικό έχει μια ενγενή παραλληλία Στις γλώσσες που ξέρουμε υποθέτουμε εκτέλεση σε μια ακολουθιακή μηχανή. Η εκτέλεση στο υλικό δεν είναι ακολουθιακής φύσης. Γιατί χρειάζονται? Μεταφερσιμότητα μεταξύ τεχνολογιών Κοινό υπόβαθρο συνεννόησης μεταξύ σχεδιαστών. Εύκολη μετάβαση από περιγραφή σε υλοποίηση

170 Γλώσσες περιγραφής υλικού Τι επιπλέον προσφέρουν? Αναπαραστάσεις σε διάφορες μορφές που χρησιμοποιεί ένας σχεδιαστής υλικού : λογικά διαγράμματα, συναρτήσεις Boole, FSMs Eξομοίωση (Simulation) Σύνθεση (Synthesis)

171 Eξομοίωση Λογική Εξομοίωση (Logic Simulation) Πιστοποίηση της σωστής δομής και συμπεριφοράς ενός κυκλώματος με τη χρήση υπολογιστή και κατάλληλου s/w, πριν τη πραγματική του υλοποίηση. Simulator (Εξομοιωτής) Είσοδοι : 1) περιγραφή κυκλώματος σε HDL 2) διανύσματα εισόδου (stimuli) Stimulus file (test bench) Eξοδος : Τιμές εξόδων του κυκλώματος. Σε τι είναι γραμμένο ένα stimulus file? Φυσικά, σε HDL!!!

172 Σύνθεση Logic synthesis Αυτοματοποιημένη διαδικασία παραγωγής του δικτυώματος (netlist) ενός κυκλώματος που έχουμε περιγράψει σε HDL, για κάποια συγκεκριμένη τεχνολογία. To netlist είναι η λίστα των σχεδιαστικών κυττάρων που χρησιμοποιούμε καθώς και η διασύνδεσή τους για τη στοχευόμενη λειτουργικότητα. Synthesizer / Synthesis tool Είσοδοι : 1) περιγραφή κυκλώματος σε υποσύνολο της HDL 2) επιθυμητά χαρακτηριστικά λειτουργίας. Eξοδος : Δικτύωμα του κυκλώματος.

173 Παραλληλία στις HDLs Κλασσικές γλώσσες προγραμματισμού : Α=Β; C=A; => C=Β C=A; A=B; => C= A H σειρά αναγραφής των εντολών ΕΧΕΙ ΣΗΜΑΣΙΑ γιατί ο προγραμματιστής λαμβάνει υπόψη του το ακολουθιακό μοντέλο εκτέλεσης Αρχή της παραλληλίας στις ΗDLs : Α=Β; C=A; => C=Β C=A; A=B; => C=B H σειρά αναγραφής των εντολών ΔΕΝ ΕΧΕΙ ΣΗΜΑΣΙΑ γιατί περιγράφουμε H/W που εκ φύσεως είναι παράλληλο.

174 Verilog C like. Λιγότερες δηλώσεις, λιγότερος κώδικας, αντίστοιχο functionality. Πρωτοεισήχθηκε από την Gateway Design System Corp (μετέπειτα Cadence) IEEE standard Open Verilog International (OVI). Προτεινόμενο σύγγραμμα : "Τhe Verilog Hardware Description Language", 3 rd Ed., D. E. Thomas & P. R. Moorby, KAP, Χρησιμοποιεί περίπου 100 keywords, π.χ. and, or, module Case sensitive, τα κενά αγνοούνται. Οτιδήποτε ακολουθεί το // είναι comment.

175 Verilog - 2 H περιγραφή ενός κυκλώματος σε Verilog, μπορεί να : είναι πλήρως δομική (structural description) βασίζεται στη συμπεριφορά του κυκλώματος (behavioral) συνδυάζει σε οποιονδήποτε βαθμό τα δύο παραπάνω. Ενας σχεδιασμός όσο μεγάλος ή μικρός είναι στη Verilog αποτελεί ένα module. Η περιγραφή ενός module μπορεί να χτίζεται με τη χρήση αντιγράφων άλλων modules. Δημιουργείται έτσι μια σχεδιαστική ιεραρχία με το πλέον υψηλό να είναι το top level module.

176 Το πρώτο παράδειγμα module cir1 (A, B, C, x, y); input A, B, C; output x, y ; wire e; and g1 (e, A, B); not g2 (y, C); or g3 (x, e, y); endmodule Η πρώτη μεταβλητή είναι πάντοτε η έξοδος Predefined (primitive) modules

177 Πρόσθεση Χρονοκαθυστερήσεων # Χ = χρονοκαθυστέρηση Χ χρονικών μονάδων εξομοίωσης module cir2 (A, B, C, x, y); input A, B, C; output x, y ; wire e; and #30 g1 (e, A, B); not #10 g2 (y, C); or # 20 g3 (x, e, y); endmodule

178 Testbench & Simulation module testbench; reg K, L, M; wire my_x, my_y ; cir2 CUT (K, L, M, my_x, my_y); initial begin K=0; L=0; M=0; #100 K=1; L=1; M=1; #100 $stop; end endmodule module cir2 (A, B, C, x, y); input A, B, C; output x, y ; wire e; and #30 g1 (e, A, B); not #10 g2 (y, C); or # 20 g3 (x, e, y); endmodule

179 Testbench & Simulation # 30 μονάδες καθυστέρηση # 10 μονάδες καθυστέρηση # 20 μονάδες καθυστέρηση

180 Equation Description Συνδυαστικά Κυκλώματα Αντί να περιγράφουμε τη δομή του κυκλώματος, περιγράφουμε τη λογική συμπεριφορά του, χρησιμοποιώντας συναρτήσεις Boole, πίνακες αληθείας Αν και μπορούμε να χρησιμοποιήσουμε τις predefined συναρτήσεις AND, OR, XOR συνήθως χρησιμοποιούμε τις συντομογραφίες τους : & = ΑΝD = OR ~ = NOT / Complement ^ = XOR ~^ = XNOR

181 Equation Description module cir2 (A, B, C, x, y); input A, B, C; output x, y ; assign y = ~C; assign x = (A & B) y; endmodule

182 Για τον ίδιο σχεδιασμό υπάρχουν : A B C S COUT Δομικές Περιγραφές module OneBitFullAdder(A,B,C,S,COUT); input A,B,C; output S, COUT ; wire HalfSum,O1,O2,O3; xor g1 (HalfSum,A,B); xor g2 (S,HalfSum,C); and g3 (O1,A,B); and g4 (O2,A,C); and g5 (O3,B,C); or g6 (COUT,O1,O2,O3); endmodule Περιγραφή Εξισώσεων module OneBitFullAdder(A,B,C,S,COUT); input A, B, C; output S, COUT ; assign S= A^B^C; assign COUT= (A&B) (A&C) (B&C); endmodule

183 Ποια περιγραφή είναι καλύτερη? Δομικές περιγραφές Περιγράφουν μία μόνο υλοποίηση με απόλυτη ακρίβεια Χρειάζονται πολύ περισσότερη ώρα εξομοίωσης Υψηλού επιπέδου περιγραφές Δε περιγράφουν το κύκλωμα με απόλυτη ακρίβεια Περιγράφουν όλα τα ισοδύναμα κυκλώματα Εξομοιώνονται πολύ πιο γρήγορα

184 Eισαγωγή στη χρήση αρτηριών & ιεραρχίας (1/6) Ας θυμηθούμε την άσκηση : Θεωρείστε ότι σε έναν δυαδικό κώδικα είναι επιτρεπτές μόνο οι λέξεις οι οποίες δεν έχουν σε συνεχόμενες θέσεις ψηφία με τιμή "1". Κατασκευάστε τον πίνακα αληθείας λογικής συνάρτησης G η οποία λαμβάνει την τιμή 1 αν μια λέξη μήκους τεσσάρων δυαδικών ψηφίων είναι επιτρεπτή σύμφωνα με τον κώδικα αυτό και την τιμή 0 αν δεν είναι. Απλοποιήστε τη συνάρτηση G και σχεδιάστε το αντίστοιχο λογικό κύκλωμα. Χρησιμοποιώντας ως δομικό στοιχείο το κύκλωμα του προηγούμενου υποερωτήματος και επιπλέον λογική, σχεδιάστε κύκλωμα το οποίο να ελέγχει αν μια λέξη 16 δυαδικών ψηφίων είναι επιτρεπτή σύμφωνα με τον κώδικα αυτό.

185 Eισαγωγή στη χρήση αρτηριών & ιεραρχίας (2/6) Για τα δύο πρώτα ερωτήματα : Κατασκευάζουμε πίνακα αλήθειας. Μεταφέρουμε στον Karnaugh & απλοποιούμε AB CD Οπότε παίρνουμε : F = B D + A C + Α Β C D F

186 Eισαγωγή στη χρήση αρτηριών & ιεραρχίας (3/6) module strange (A, B, C, D, F); input A, B, C, D; output F; assign F =~B & ~D ~B & ~C ~A & ~C; endmodule module test; reg my_a, my_b, my_c, my_d; wire my_f; strange CUT (my_a, my_b, my_c, my_d, my_f); initial begin my_a=0, my_b=0, my_c=0, my_d=0; #100 my_a=0, my_b=0, my_c=0, my_d=1; end endmodule

187 Eισαγωγή στη χρήση αρτηριών & ιεραρχίας (4/6) Προφανώς είναι κουραστικό : Να γράφουμε το κάθε σήμα ξεχωριστά Να το παρατηρούμε στην εξομοίωση ξεχωριστά. Σκεφτείτε τον κόπο που θα χρειαζόταν το (γ) υποερώτημα έτσι. Όπως στη C έχω τους πίνακες, στη Verilog έχω αρτηρίες (buses) : Ομαδοποιούν πολλά σήματα μαζί. Μου επιτρέπουν να τα διαχειρίζομαι όλα μαζί. module strange2 (I, F); input [3:0] I; // A = I[3], B=I[2], C=I[1], D=I[0] output F; module test; reg [3:0] my_i; wire my_f; assign F =~I[2] & ~I[0] ~I[2] & ~I[1] ~I[3] & ~I[1]; endmodule strange2 CUT (my_i, my_f); initial my_i=0; always #100 my_i=my_i+1; endmodule

188 Eισαγωγή στη χρήση αρτηριών & ιεραρχίας (5/6) Επαναχρησιμοποίηση Όπως χρησιμοποίησα τις πύλες ως primitives μπορώ να χρησιμοποιώ τα modules που έφτιαξα, όσες φορές θέλω. Στον ιδεατό κόσμο (αυτό των αρχείων), μόνο μια φορά χρειάζεται να περιγράψω τη κάθε λογική. Μπορώ να χρησιμοποιώ ιδεατά ΑΝΤΙΓΡΑΦΑ (instances) Στον πραγματικό κόσμο θα πρέπει να κατασκευάσω κάθε αντίγραφο. Για το (γ) υποερώτημα :

189 Eισαγωγή στη χρήση αρτηριών & ιεραρχίας (6/6) module strange2 (I, F); input [3:0] I; // A = I[3], B=I[2], C=I[1], D=I[0] output F; assign F =~I[2] & ~I[0] ~I[2] & ~I[1] ~I[3] & ~I[1]; endmodule strange16 (Α, G); input [15:0] Α; wire F1, F2, F3, F4; output G; strange2 inst1 (A[3:0], F1); strange2 inst2 (A[7:4], F2); strange2 inst3 (A[11:8], F3); strange2 inst4 (A[15:12], F4); module test; reg [15:0] my_a; wire my_g; strange16 CUT (my_a, my_g); initial my_a=0; always #100 my_a=my_a+1; endmodule assign G = F1 & F2 & F3 & F4 & ~(A[3] & A[4]) & ~(A[7] & A[8]) & ~(A[11] & A[12]); endmodule

190 Παράδειγμα εναλλακτικών περιγραφών & ιεραρχίας (1/5) Σχεδιάστε ένα κύκλωμα που δέχεται στην είσοδό του έναν φυσικό αριθμό Α των 4 δυαδικών ψηφίων και παράγει στην έξοδό του 1 αν ο αριθμός είναι πολλαπλάσιο του 3. Ομοίως για πολλαπλάσιο του 5. Ομοίως για πολλαπλάσιο του 15, χρησιμοποιώντας μόνο τα κυκλώματα των προηγούμενων υποερωτημάτων. Μπορούμε να φτιάξουμε πίνακα αλήθειας για το 1 ο υποερώτημα, απ όπου προφανώς θα πάρουμε ότι t(a) = t(a[3], A[2], A[1], A[0]) = Σ(0, 3, 6, 9, 12, 15).

191 Παράδειγμα εναλλακτικών περιγραφών & ιεραρχίας (2/5) Πλέον μπορούμε πριν κατασκευάσουμε το κύκλωμά μας να το περιγράψουμε : Δομικά module Multiple3 (A, t); input [3:0] A; output t; xnor g0 (temp1, A[3], A[2]); xnor g1 (temp2, A[1], A[0]); and g2 (temp3, temp1, temp2); not g3 (nota3, A[3]); not g4 (nota2, A[2]); not g5 (nota1, A[1]); not g6 (nota0, A[0]); and g7 (temp4, nota3, A[2], A[1], nota0); and g8 (temp5, A[3], nota2, nota1, A[0]); or g9 (t, temp3, temp4, temp5); endmodule Mε τις λογικές του εξισώσεις : module Multiple3 (A, t); input [3:0] A; output t; assign temp3 = (A[3]~^A[2]) & (A[1]~^A[0]); assign temp4 = ~A[3] & A[2] & A[1] & ~A[0]; assign temp5 = A[3] & ~A[2] & ~A[1] & A[0]; assign t = {temp3, temp4, temp5}; endmodule

192 Παράδειγμα εναλλακτικών περιγραφών & ιεραρχίας (3/5) Ναι, αλλά έτσι έχω κάνει εγώ το περισσότερο κόπο! Μήπως υπάρχει κάποιος τρόπος, να μην ασχοληθώ καθόλου με εξισώσεις, απλοποίηση και υλοποίηση? Με άλλα λόγια υπάρχει ένα ακόμα πιο υψηλό επίπεδο αφαίρεσης που να μου δίνει άμεσα περιγραφές, εξομοιώσιμες μα κυρίως συνθέσιμες? Φυσικά και υπάρχει κι αυτός είναι ο λόγος για τον οποίο φτιάξαμε εξ αρχής μια νέα γλώσσα. Είναι η περιγραφή βάσει της συμπεριφοράς (behavioral description). Bάσει συμπεριφοράς : module Multiple3 (A, t); input [3:0] A; output t; assign t = ((Α%3) == 0)? 1 : 0; endmodule

193 Παράδειγμα εναλλακτικών περιγραφών & ιεραρχίας (4/5) Βάσει συμπεριφοράς 2 module multiple3 (A, t); input [3:0] A ; output t; reg t; begin case (A) 0, 3, 6, 9, 12, 15 : t = 1; default : t = 0; endcase end endmodule

194 Παράδειγμα εναλλακτικών περιγραφών & ιεραρχίας (5/5) Ας δούμε τώρα το 3 ο ερώτημα, αφού το 2 ο το αντιμετωπίζουμε όπως το 1 ο. Οπως χρησιμοποίησα τις xor, and, or, για να χτίσω ένα σχεδιασμό, μπορώ να χρησιμοποιήσω το σχεδιασμό σα κύτταρο για τη περιγραφή (δομική) μεγαλύτερων σχεδιασμών. Σκεφτείτε για παράδειγμα ότι έχω φτιάξει 2 υποσχεδιασμούς το multiple5 και το multiple3 που μου δείχνουν στις εξόδους f και t αντίστοιχα αν η είσοδος Α[3:0] είναι πολλαπλάσιο του 5 και του 3 αντίστοιχα. Θεωρείστε τις δηλώσεις module multiple5 (Α, f); module multiple3(α, t); Για να φτιάξω ένα κύκλωμα που θα μου δείχνει αν η είσοδος Α είναι πολλαπλάσιο του 15, αρκεί να τροφοδοτήσω αυτή την είσοδο και στα 2 προηγούμενα modules και να πάρω το λογικό ΑΝD των εξόδων τους. Θα μπορούσα συνεπώς να γράψω : module multiple15 (Α, fifteen); input [3:0] Α; output fifteen; wire five, three; multiple5 U1 (A, five); multiple3 U2 (A, three); assign fifteen = five & three; endmodule