ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ 1 - Professorpc-vlsi18.ceid.upatras.gr/files/slides_ld1.pdf ·...

Click here to load reader

  • date post

    12-Sep-2019
  • Category

    Documents

  • view

    1
  • download

    0

Embed Size (px)

Transcript of ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ 1 - Professorpc-vlsi18.ceid.upatras.gr/files/slides_ld1.pdf ·...

  • ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ 1

    Καλώς ήρθατε !

  • Τα τυπικά του μαθήματος– 13 εβδομάδες x 4 ώρες– Στην αρχή 4ωρες παραδόσεις– Σύγγραμμα :

    – Μοrris Mano, “Ψηφιακή Σχεδίαση”, 5η έκδοση. Το δηλώνετε στο σύστημα Εύδοξος και το παραλαμβάνετε με την αστυνομική σας ταυτότητα.

    – Yλη (ανεξάρτητα του εάν καλυφθεί) :– Κεφάλαια 1, 2, 3, 4– 190 πρώτες σελίδες

    – Οι παραδόσεις βασίζονται στο βιβλίο :– John F. Wakerly, “Digital Design : Principles & Practices”, 4th edition.– Υπάρχει στη βιβλιοθήκη μας και μπορείτε να το δανειστείτε.– Θα καλύψουμε :

    – Κεφάλαια 1, 2, 4 και 6 (όχι όσα αναφέρονται σε VHDL και ABEL) και παράγραφοι 5.1, 5.4

    – Ολη η πληροφορία διαθέσιμη στο site http://pc-vlsi18.ceid.upatras.gr/logic_design_i.html

    – Ερωτήσεις – απορίες : [email protected]

    http://pc-vlsi18.ceid.upatras.gr/logic_design_i.html

  • Βαθμολόγηση

    • Ο τελικός βαθμός προκύπτει από γραπτή εξέταση • Στην εξέταση συμπεριλαμβάνεται και η Verilog HDL

    • προπονηθείτε σε αυτήν με τις ενδεικτικά λυμένες ασκήσεις και

    • το λογισμικό που σας δίδεται και • Υπάρχει στο ΥΚ. • Στη 1η άσκηση σας μαθαίνουμε και πως θα το

    εγκαταστήσετε και στο σπίτι σας.

  • Ζούμε στη ψηφιακή εποχή ... •Ψηφιακές φωτογραφικές μηχανές •Ψηφιακοί βιντεοδίσκοι (VCD, DVD)

    •Ψηφιακός ήχος (CD, 5.1 Surround) •Ψηφιακά ελεγχόμενα αυτοκίνητα (ABS, TCS, ESP) •Ψηφιακή τηλεφωνία

    •Το φως είναι αναλογικό •Η ένταση και η συχνότητα είναι αναλογικά μεγέθη •Η ταχύτητα και η γωνία στροφής είναι αναλογικά

    •Τα ηλεκτρομαγνητικά κύματα είναι αναλογικά

    ενός αναλογικού κόσμου

  • Πως συνεπώς μιλάμε για ψηφιακή εποχή ?

    Το αναλογικό σήμα μετατρέπεται σε ψηφιακό.

    Η όλη επεξεργασία γίνεται στο ψηφιακό κόσμο

    Ακολουθεί μετατροπή πάλι σε αναλογικό

    Π.χ. Το 1ο βήμα έχει γίνει από τη δισκογραφική εταιρεία που μας δίνει το CD για τη περίπτωση του ήχου

    Το CD player λειτουργεί στο ψηφιακό κόσμο

    Ο ενισχυτής και τα ηχεία αναλαμβάνουν το 3ο βήμα

  • Γιατί να μη γίνεται η επεξεργασία στον αναλογικό κόσμο ?

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

  • Τα ψηφιακά συστήματα προσφέρουν ...

    Ακριβώς τα ίδια αποτελέσματα σε όσα αντίτυπα κατασκευαστούν

    Πολύ ευκολότερο σχεδιασμό (γι’ αυτό είναι μάθημα 1ου έτους)

    Ευελιξία & επεκτασιμότητα

    Περιγραφή των λειτουργιών τους με γλώσσα προγραμματισμού

    Διαρκώς εξελισσόμενη τεχνολογία (κινητά τηλέφωνα)

    Διαρκώς μεγαλύτερη ταχύτητα εκτέλεσης

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

  • Πως επιτεύχθηκε τόσο δραστική μείωση του μεγέθους ?

    • Το πρώτο μισό του 20ου αιώνα τα ηλεκτρονικά κυκλώματα αποτελούνταν από λυχνίες κενού

    Μεγάλες, ακριβές, ενεργοβόρες, αναξιόπιστες • 1947: Η εφεύρεση του πρώτου transistor στα Bell Labs από

    τους John Bardeen και Walter Brattain (Nobel Φυσικής το 1956 μαζί με τον William Shockley)

  • 1,1 εκ.

    Jack Kilby Texas Instruments (Nobel Φυσικής, 2000)

    Κατασκευή του transistor πάνω σε ημιαγωγό (Ολοκληρωμένο κύκλωμα – 1958)

  • Το παιχνίδι της σμίκρυνσης

    • Μικρής κλίμακας ολοκλήρωσης (SSI): > 10 τρανζίστορ • Μεσαίας κλίμακας ολοκλήρωσης (MSI): > 100 τρανζίστορ • Υψηλής κλίμακας ολοκλήρωσης (LSI): > 1000 τρανζίστορ • Πολύ υψηλής κλίμακας ολοκλήρωσης (VLSI): > 10000

    τρανζίστορ

    • 2003: – Intel Pentium 4 mprocessor (55 εκατομμύρια τρανζίστορ) – 512 Mbit DRAM (> 0.5 δις τρανζίστορ)

  • Intel 4004 Micro-Processor

    1971 1000 transistors 1 MHz operation

  • Intel Pentium (IV) microprocessor

  • Θα συνεχιστεί όμως το παιχνίδι ?

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

  • Αποτελέσματα

    $39 DVD [email protected]

  • Το μάθημα Λογικής Σχεδίασης

    • Στοχεύει να σας μάθει πως σχεδιάζονται τα Ψηφιακά Συστήματα • Διάφορες συνιστώσες :

    – Βασικές αρχές (θεωρία) – Παραδείγματα (φροντιστήριο) – Μικρές εφαρμογές στο πραγματικό κόσμο (εργαστηριακό

    μάθημα επόμενου εξαμήνου) – Πιο μεγάλες και πιο ενδιαφέρουσες εφαρμογές στον ιδεατό

    (εξομοιούμενο) κόσμο (ασκήσεις)

  • Η Λογική Σχεδίαση & ο ρόλος του Μηχανικού

    • Είναι έργο ΜΗΧΑΝΙΚΟΥ (μηχανεύομαι, πολυμήχανος) • Ο μηχανικός πατά στη θεωρία για να εφαρμόζει στη

    πράξη • Καλός μηχανικός, σχεδιαστής ψηφιακών συστημάτων

    σημαίνει επίσης : – Ικανότητα ανακάλυψης λαθών. – Επιχειρηματικό πνεύμα. – Στάθμιση κινδύνων. – Ικανότητα επικοινωνίας.

  • Γιατί η δουλειά του σχεδιαστή κυκλωμάτων είναι δύσκολη & ενδιαφέρουσα ?

    • Διαπραγματεύεται τον πραγματικό κόσμο, στον οποίο υπάρχουν : – Λάθη – Προθεσμίες – Κόστη

    • Ομως : • Το υλικό σε αντίθεση με το λογισμικό δεν αντιγράφεται εύκολα • Στο υλικό πληρώνεις κάθε αντίγραφο

    Οι σχεδιαστές ψηφιακών κυκλωμάτων απολαμβάνουν

    εξαιρετικά μεγάλους μισθούς

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

    wafer

    die

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

    Το δικό μας αρχικό επίπεδο

  • Και ο πραγματικός κόσμος που αντιπροσωπεύει

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

  • Αναλογικό vs Ψηφιακό

    • Αναλογικό είναι ένα μέγεθος (σήμα) όταν μπορεί να πάρει οποιαδήποτε τιμή από ένα συνεχές διάστημα τιμών.

    • Η πλειοψηφία των μεγεθών στο κόσμο μας είναι αναλογικά.

    • Ψηφιακό (κβαντισμένο) είναι ένα μέγεθος (σήμα) όταν μπορεί να πάρει διακριτές τιμές.

    • Φωτεινοί σηματοδότες, διακόπτες είναι παραδείγματα ψηφιακών μεγεθών.

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

  • Δυαδικό σήμα : κβάντιση με 2 στάθμες

    • Ανά πάσα στιγμή το σήμα μου έχει είτε τη τιμή 0 είτε τη τιμή 1. • Το ποιο επίπεδο είναι 0 και ποιο είναι 1 είναι καθαρά θέμα σύμβασης. • Συνεπώς μπορεί να αναπαρασταθεί από μια μεταβλητή 2 τιμών, μια δυαδική

    μεταβλητή. • Η τιμή αυτής της μεταβλητής είναι και ένα ψηφίο του δυαδικού συστήματος

    αρίθμησης. • Δεκαδικό ψηφίο : 0, 1, 2, 3, 4, 5,6, 7,8, 9 • Δυαδικό ψηφίο (BInary digiT – BIT) : 0, 1

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

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

  • Aναπαράσταση πληροφορίας με δυαδικά σήματα

    • Εστω ότι έχω ένα διακόπτη που μπορεί να είναι κλειστός ή ανοικτός. • Μπορώ να κάνω την αντιστοιχία :

    0 -> ανοικτός 1 -> κλειστός

    • Μου αρκεί ένα δυαδικό σήμα (ισοδύναμα μια δυαδική μεταβλητή ή ένα bit) για να περιγράψω τη κατάστασή του.

    • Πόσα bits χρειάζονται για τη περιγραφή της κατάστασης 2 διακοπτών ? • Πόσα bits για τη περιγραφή της κατάστασης 10 διακοπτών ?

    Με n δυαδικά ψηφία μπορώ να αναπαραστήσω 2n διακριτά πράγματα m διακριτά πράγματα χρειάζονται κατ’ ελάχιστο log2m δυαδικά ψηφία

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

  • Ποια αναπαράσταση είναι καλύτερη ?

    • Εκείνη που χρησιμοποιεί τα λιγότερα δυαδικά σήματα • Εκείνη που μου επιτρέπει να κάνω εύκολα την επεξεργασία της πληροφορίας • Πως θα αναπαριστούσατε μια ημέρα από τη 1/1/0000 και μετά ?

    • 20 bit τα λιγότερα ! • Ημέρα, Μήνας, Χρόνος => (5 + 4 + 12) => 21 • Ημέρα, Μήνας, Χρόνος, Μέρα της εβδομάδας => (5 + 4 + 12 + 3) => 24

  • Λογικές (Δυαδικές) Συναρτήσεις

    • Υποθέστε • τη δυαδική μεταβλητή Α

    • Α=0 => διακόπτης ανοικτός • Α=1=> διακόπτης κλειστός

    • και τη Ζ • Ζ=0 => Οχι φώς • Ζ=1 => Φως

    Η Ζ είναι μια συνάρτηση της Α, ισχύει Ζ = f(Α) = A!

    Η Ζ είναι ανεξάρτητη από τη Α ή όχι ?

    A Z

    A Z

  • Απλές λογικές συναρτήσεις 2 δυαδικών μεταβλητών

    Z

    Z

    A B

    A

    B

    Οι συναρτήσεις αυτές ονομάζονται και λογικές γιατί τις χρησιμοποιούμε στη λογική των προτάσεων που συντάσσουμε

    καθημερινά.

  • Σύνθεση συναρτήσεων

    Z C A

    B

    Οσο πιο πολύπλοκο γίνεται το σχέδιο, τόσο πιο προφανές γίνεται ότι χρειαζόμαστε κάποιο τυπικό τρόπο, για να βρούμε πότε το Ζ

    θα γίνει 1.

    Χρειαζόμαστε συνεπώς μια άλγεβρα !

    Z

    A

    B

  • Τι είναι μια άλγεβρα ?

    • Μια μαθηματική δομή : • Σύνολο ψηφίων & αναπαραστάσεων • Σύνολο τελεστών & προτεραιότητες • Αξιώματα • Θεωρήματα • Συναρτήσεις

    • Αλγεβρα των φυσικών αριθμών

    • Ψηφίο ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, Αναπαραστάσεις = ∞ • Τελεστές : +, -, *, / Προτεραιότητες : {,[,(, /, *, -, + • Αξιώματα : ουδετερότητα του 0 στη +, του 1 στον *, προσεταιριστικότητα

    του +, επιμεριστικότητα του * ως προς το +, ... • Θεωρήματα : x+x = 2x • Συναρτήσεις f(x,y) = 3x+5y

  • Aλγεβρα Boole

    • To 1854 (!!!) o Αγγλος μαθηματικός George Βοοle εισήγαγε μια άλγεβρα δύο τιμών : αλήθεια και ψέμα.

    • Προτάθηκε για το λογισμό της αλήθειας ή του ψέμματος προτάσεων

    • Π.χ. • Δεχόμαστε τη πρόταση "Οσοι κάνουν μπάνιο κάθε μέρα έχουν

    πολλά λεφτά ή δε τους αρέσει η βρωμιά" ως αληθή. • Δεχόμαστε και τη πρόταση "Κανένας μηχανικός υπολογιστών

    δεν έχει πολλά λεφτά" ως αληθή. • Εστω η πρόταση "Αν είσαι μηχανικός υπολογιστών και σου

    αρέσει η βρωμιά, κάνεις μπάνιο κάθε μέρα". • Τι μπορούμε να αποφανθούμε για την αλήθεια ή το ψέμμα

    της ?

  • Shannon

    • Σχεδόν ένα αιώνα αργότερα (1938), ο Claude Shannon διαπιστώνει ότι απλά αντιστοιχίζοντας τις "αλήθεια" και "ψέμμα" στο "κλειστός διακόπτης" και "ανοικτός διακόπτης", μπορεί να εφαρμόσει τα όσα ανέπτυξε ο Βοοle και σε κυκλώματα διακοπτών.

    • Ετσι η άλγεβρα Boole έγινε "switching algebra". • Εμείς θα πάμε απλά ένα βήμα πιο πέρα. Αντί για

    "κλειστός διακόπτης" και "ανοικτός διακόπτης" θα χρησιμοποιούμε τις τιμές δυαδικών μεταβλητών "1" και "0" αντίστοιχα.

    • Ετσι έχουμε τη δυαδική άλγεβρα (λογική άλγεβρα).

  • Κι ο 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 1933. ) διατύπωσε μια σειρά αξιωμάτων που ισχύουν όχι μόνο για την

    άλγεβρα του Boole, αλλά για κάθε αλγεβρική δομή.

    Διάφορα θεωρήματα αποδεικνύονται συνεπώς με τον ίδιο τρόπο όπως για κάθε άλγεβρα λόγω αυτής της ιδιότητας.

  • • Δίτιμη άλγεβρα. Κάθε στοιχείο της Χ ∈ {0,1} • Υπαρξη συμπληρώματος (α')

    • Αν α = 0 => α' = 1, Αν α = 1 => α' = 0 • Δύο λογικές πράξεις :

    • Λογική σύζευξη (and / και) : • (το σύμβολο μπορεί να παραλείπεται σε απλή παράταξη μεταβλητών)

    • Λογική διάζευξη (or / ή) : + • Οι λογικές πράξεις ακολουθούν τους εξής κανόνες :

    • 0 • 0 = 0, 1 + 1 = 1 • 1 • 1 = 1, 0 + 0 = 0 • 0 • 1 = 1 • 0 = 0, 1 + 0 = 0 + 1 = 1

    • Σε μία σύνθετη συνάρτηση των δύο λογικών πράξεων, οι προτεραιότητες είναι : {, [, (, ', •, +

    Αξιώματα

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

    Θεωρήματα μιας μεταβλητής (Απόδειξη με εξέταση όλων των δυνατών τιμών της μεταβλητής)

  • • Χ + Υ = Υ + Χ, Χ • Υ = Υ • Χ (Αντιμεταθετική) • (Χ + Υ) + Ζ = Χ + (Υ + Ζ), (Χ • Υ) • Ζ = Χ • (Υ • Ζ) (Προσεταιριστική)

    • Συμπέρασμα : Σε λογικά γινόμενα ή λογικά αθροίσματα, η χρήση παρενθέσεων είναι προαιρετική. Για παράδειγμα μπορώ να γράφω 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)

    Θεωρήματα δύο και τριών μεταβλητών (1/2) (Απόδειξη με εξέταση όλων των δυνατών τιμών των δύο μερών)

  • • Χ + Χ • Υ = Χ, Χ • (X + Υ) = Χ (Κάλυψης) • Χ • Υ + Χ • Υ'= Χ (Χ + Υ) • (Χ + Υ') = Χ (Συνδυασμών)

    • Παράδειγμα : Χ • Υ • Z' + Χ • Υ' • Z' + Χ • Υ • Z + Χ • Υ' • Z = Χ • Z' + Χ • Z = X • Συμπέρασμα : Σε ένα άθροισμα γινομένων, που κάθε γινόμενο έχει κ

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

    • Χ • Υ + Χ' • Ζ + Υ • Ζ = Χ • Υ + Χ' • Ζ, • (Χ +Υ) • (Χ' + Ζ) • (Υ + Ζ) = (Χ +Υ) • (Χ' + Ζ) (Συναίνεσης)

    Θεωρήματα δύο και τριών μεταβλητών (2/2) (Απόδειξη με εξέταση όλων των δυνατών τιμών των δύο μερών)

  • Θεωρήματα γενικευμένου αριθμού μεταβλητών • Χ + Χ + ... + Χ = Χ, Χ • Χ • ... • Χ = Χ (Αυτοαπορρόφησης)

    • (Χ1 + Χ2 + ... + Χn)' = Χ1' • Χ2' • … • Χn' • (Χ1 • Χ2 • … • Χn)' = Χ'1 + Χ'2 + ... + Χ'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)=X1 • F( 1, Χ2, ... , Χn) + X1' • F( 0, Χ2, ... , Χn) • F(Χ1, Χ2, ... , Χn)=[X1 + F( 0, Χ2, ... , Χn)] • [X1' + 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)

  • To μεταθεώρημα του δυϊσμού • Ενα μεταθεώρημα είναι ένα θεώρημα για άλλα θεωρήματα. Είναι δηλαδή ένα

    πολύ βασικό και γενικευμένο θεώρημα.

    • Μέχρι ώρας είδαμε διάφορα θεωρήματα. Ολα μα όλα παρουσιάστηκαν σε ζεύγη. Τι υποκρύπτει αυτή η δυαδική συμπεριφορά ?

    • Δυισμός : Η αλήθεια ή το ψέμμα μιας ταυτότητας ή ενός

    θεωρήματος που ασχολείται με δυαδικές μεταβλητές και λογικές συναρτήσεις δεν αλλάζει αν ανταλλάξουμε το 0 με το 1 και το + με το •.

  • Γιατί τόση θεωρία ?

    • Οσα είδαμε έχουν άμεση εφαρμογή στο πραγματικό κόσμο. • Υπάρχουν έτοιμοι ψηφιακοί σχεδιασμοί οι οποίοι υλοποιούν τις βασικές λογικές

    συναρτήσεις (φυσικά υπάρχουν και άλλοι που υλοποιούν άλλες ενδεχόμενα πιο πολύπλοκες συναρτήσεις).

    • Οι σχεδιασμοί αυτοί ονομάζονται ψηφιακές πύλες. • Θα εισάγουμε :

    • κάποια σχηματικά για την απεικόνιση αυτών. • Ενα πίνακα που δείχνει τη λογική συνάρτηση που επιτελείται από το

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

  • O αντιστροφέας • Παράγει το συμπλήρωμα μιας

    δυαδικής μεταβλητής. • Μπορούμε αντί για το πλήρες

    σχηματικό του αντιστροφέα, να χρησιμοποιούμε μόνο το κύκλο.

    • Είναι διαθέσιμο ως ψηφιακό κύκλωμα σε 6άδες, εντός ενός ολοκληρωμένου με κωδικό 7404.

  • Η πύλη ΑΝD δύο μεταβλητών • Εκτελεί το λογικό ΚΑΙ των δύο

    μεταβλητών. • Είναι διαθέσιμο ως ψηφιακό

    κύκλωμα σε 4άδες, εντός ενός ολοκληρωμένου με κωδικό 7408.

  • Η πύλη OR δύο μεταβλητών • Εκτελεί το λογικό H των δύο

    εισόδων. • Είναι διαθέσιμο ως ψηφιακό

    κύκλωμα σε 4άδες, εντός ενός ολοκληρωμένου με κωδικό 7432.

  • Λογικό διάγραμμα • Η χρήση των σχηματικών των διαφόρων πυλών και η διασύνδεσή τους οδηγεί σε

    ένα λογικό διάγραμμα που περιγράφει κάποια πιο σύνθετη συνάρτηση. • Για παράδειγμα :

    • Το παραπάνω είναι ένα διάγραμμα που περιγράφει τη συνάρτηση : F4(x, y, z) = x' • z + y' • x

    • Ποιο είναι το λογικό διάγραμμα της G(X, W, Y, Z) = [Χ' • Υ + Χ] • (Ζ + W') ;

  • Eπέκταση σε περισσότερες είσοδες • Αν ήθελα το λογικό διάγραμμα της F(x, y, z) = x + y + z πως θα το έφτιαχνα ? • Από τη θεωρία μου γνωρίζω ότι F(x, y, z) = x + y + z = (x + y ) + z και συνεπώς θα

    μπορούσα να χρησιμοποιήσω κάτι τέτοιο :

    • Μήπως υπάρχουν έτοιμες και πύλες περισσότερων εισόδων ? • Φυσικά ! Αυτό όμως δε σημαίνει ότι υπάρχουν οσωνδήποτε εισόδων. • Κι εδώ πρέπει να διαχωρίσουμε το πραγματικό από τον ιδεατό κόσμο :

    • Στον ιδεατό κόσμο μπορούμε να φτιάχνουμε λογικά διαγράμματα με πύλες όσων εισόδων θέλουμε.

    • Στη πράξη αυτά θα υλοποιηθούν με όσα πραγματικά υπάρχουν.

  • Ποια συνάρτηση επιτελεί αυτό το κύκλωμα ?

    Χ' Υ'

    Χ • Υ' Χ' • Υ • Ζ

    Χ' • Υ' • Ζ

    Χ • Υ' + Χ' • Υ • Ζ + Χ' • Υ' • Ζ

  • Ποιες άλλες συναρτήσεις και πύλες υπάρχουν ? • Πόσες διαφορετικές συναρτήσεις των ν μεταβλητών υπάρχουν ?

    • Μια συνάρτηση ν μεταβλητών, έχει 2ν πιθανές τιμές εισόδου. • Διαφορετική συνάρτηση διαφορετική έξοδος έστω και για κάποιον

    συνδυασμό εισόδου. Αφού η έξοδός μου για κάθε συνδυασμό εισόδου μπορεί να είναι 0 ή 1 θα υπάρχουν 22ν συναρτήσεις.

    • Για ν =2 ποιες είναι οι συναρτήσεις που υπάρχουν και ποιες από αυτές είναι χρήσιμες ?

    1. Δυο σταθερές 0, 1. 2. Τέσσερις unary συμπληρώματος/μεταφοράς. 3. Δέκα συναρτήσεις με δυαδικούς τελεστές.

  • Μας ενδιαφέρουν επίσης οι :

    • F14 που είναι συμπληρωματική της ΑΝD. Θα τη λέμε ΝΑΝD (not – AND). • F8 που είναι συμπληρωματική της OR. Θα τη λέμε ΝOR (not – OR). • F6 που μας δίνει 1 μόνο όταν μόνο 1 είσοδος είναι στο λογικό 1 (για περισσότερες

    εισόδους, όταν ο αριθμός των 1 στις εισόδους είναι περιττός). Θα την ονομάζουμε αποκλειστικό-OR (eXclusive-OR) – XOR.

    • F9 που μας δίνει 1 μόνο όταν μόνο 0 ή 2 είσοδοι είναι στο λογικό 1 (για περισσότερες εισόδους όταν ο αριθμός των 1 στις εισόδους είναι άρτιος). Θα την ονομάζουμε συνάρτηση ισοδυναμίας (not eXclusive-OR) – XNOR.

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

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

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

    =

    =

    =

  • A

    B

    CY

    BA •CBA ••

    A

    B

    C

    DY

    BA •CBA ••

    DCBA •••

  • A

    B

    CY

    A

    B

    C

    DY

  • CBAY ••=

    ABC

    Y

    Α B C Y

    X X 0 1

    X 0 X 1

    0 X X 1

    1 1 1 0

    DCBAY •••=

    C

    AB

    DY

    A B C D Y

    X X X 0 1

    X X 0 X 1

    X 0 X X 1

    0 X X X 1

    1 1 1 1 0

  • A

    B

    CY

    ABABCCAB ≠

    A

    B

    CY

    BA +CBACBA ++≠++

    Α B C Y

    X X 0 1

    0 X 1 0

    X 0 1 0

    1 1 1 1

  • A Y

    YAA

    BY

    YA

    B

    A

    BY

    A

    B

    Y

    A

    BY

    A

    B

    Y

  • BAY ⊕=A

    BY

    A

    B

    Y

    ( ) ( )BABABA

    BABBAA

    ABBABAABBABAY

    ⊕=+=

    =+++=

    =+==

  • YA

    A

    BY

    A

    BY

    A

    BY

    YA

    BA Y

    A

    B

    Y

    A

    B

    Y

  • BABA ⋅=+

    A

    BY

    B

    Y

    A A

    B

    A

    BY

  • Κόστος πυλών • Κοστίζουν όλες οι πύλες το ίδιο ? • Οχι. Αλλωστε είναι χαρακτηριστικό ότι σε ένα ολοκληρωμένο

    κύκλωμα έχουμε 6 inverters και μόνο 4 OR, AND, … • To κόστος μιας πύλης εξαρτάται :

    • Από τον αριθμό των εισόδων της. Περισσότεροι είσοδοι => ↑ κόστος.

    • Από τη συνάρτηση που επιτελεί : • ΝΑΝD, NOR οι πιο απλές. • ΑΝD, OR, ελάχιστα πιο πολύπλοκες (σε επίπεδο transistor). • XOR, XNOR αρκετά πιο πολύπλοκες • Μεγαλύτερη πολυπλοκότητα => ↑ κόστος

  • Ισοδύναμες και συμπληρωματικές συναρτήσεις

    • Δύο συναρτήσεις των κ μεταβλητών είναι ισοδύναμες, αν για κάθε συνδυασμό τιμών των μεταβλητών εισόδου, οι συναρτήσεις οδηγούν στην ίδια έξοδο.

    • Συμπέρασμα 1 : Ισοδύναμες συναρτήσεις μπορεί να έχουν διαφορετικές αλγεβρικές εκφράσεις.

    • Συμπέρασμα 2 : Ισοδύναμες συναρτήσεις μπορεί να έχουν διαφορετικά λογικά διαγράμματα.

    • Συμπέρασμα 3 : Ισοδύναμες συναρτήσεις έχουν τον ίδιο πίνακα αληθείας.

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

  • Μεταξύ ισοδύναμων συναρτήσεων κάποιες είναι σαφώς προτιμητέες !

    • Η F3 είναι σαφώς πιο πολύπλοκη συνάρτηση από την F4.

    • Χρησιμοποιεί περισσότερες πύλες, μα ταυτόχρονα και πύλες με περισσότερες εισόδους.

    • Παράλληλα χρησιμοποιεί 4 διαφορετικά ολοκληρωμένα έναντι 3 της F4.

    • To μεγάλο συνεπώς ερώτημα που προκύπτει είναι πως θα βρω τη συνάρτηση με το ελάχιστο κόστος ανάμεσα στις ισοδύναμες ?

    • Αυτό είναι το πιο ενδιαφέρον σημείο του μαθήματος : απλοποίηση συναρτήσεων

  • Η θεωρία παρέχει τη μέθοδο της αλγεβρικής απλοποίησης

    • Θυμηθείτε ότι για την F3 είχαμε ότι : F3 (Χ, Υ, Ζ) = Χ • Υ' + Χ' • Υ • Ζ + Χ' • Υ' • Ζ

    • Από τη θεωρία βάσει του θεωρήματος των συνδυασμών γνωρίζω ότι :

    • Χ' • Υ • Ζ + Χ' • Υ' • Ζ = Χ' • Ζ • Αρα F3 = Χ • Υ' + Χ' • Ζ = F4.

    • H αλγεβρική απλοποίηση δεν είναι πάντα τόσο εύκολη ! • Ακόμα χειρότερα, ποτέ δε γνωρίζω αν έχοντας κάνει κάποια στάδια

    απλοποίησης έχω βρει την απολύτως ελάχιστη ισοδύναμη συνάρτηση.

    • Η αλγεβρική απλοποίηση πρέπει να χρησιμοποιείται για συναρτήσεις πολύ λίγων μεταβλητών από έμπειρους σχεδιαστές.

  • Παραδείγματα αλγεβρικής απλοποίησης

    • F (X, Y, Z) = X • Y' • Z + X' • Y • Z + Y • Z = = X • Y' • Z + Y • Z (Απορρόφηση) = Ζ • (Χ • Y' + Υ) (Επιμεριστική) = Ζ • (Χ + Υ) (1o αποδειχθέν θεώρημα)

    • Υλοποιείστε με τον ελάχιστο αριθμό πυλών τη 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)

  • Προβλήματα & Αλγόριθμοι • Η αλγεβρική απλοποίηση

    • Είναι δύσκολη • Μη ντετερμινιστική • Χωρίς σίγουρο αποτέλεσμα

    • Θα ήθελα συνεπώς μια ντετερμινιστική μεθοδολογία. • Στη γλώσσα των υπολογιστών μια μεθοδολογία που αποτελείται

    από μικρά κατανοητά βήματα και η οποία αν ακολουθηθεί παράγει τη λύση σε κάποιο πρόβλημα ονομάζεται αλγόριθμος.

    • Για να εφαρμοστεί κάποιος αλγόριθμος όμως απαιτείται να υπάρχει μια σταθερή αρχική μορφή του προβλήματος.

    • Πριν λοιπόν δώσουμε αλγόριθμο απλοποίησης, πρέπει πρώτα να εισάγουμε πρότυπες μορφές έκφρασης μιας συνάρτησης.

    • Σε αυτό θα μας βοηθήσουν οι ελαχιστόροι και οι μεγιστόροι.

  • Πίνακας αλήθειας • Ισοδύναμες συναρτήσεις έχουν ποικίλες αλγεβρικές

    αναπαραστάσεις, ποικίλα λογικά διαγράμματα, αλλά κοινό πίνακα αλήθειας.

    • Ο πίνακας αλήθειας μας δίνει τη τιμή μιας συνάρτησης για κάθε πιθανό συνδυασμό εισόδων.

    • Συνήθως διατάσσουμε τους συνδυασμούς εισόδων σαν αύξοντες δυαδικούς αριθμούς.

    • Ο πίνακας αλήθειας μιας λογικής συνάρτησης ν μεταβλητών έχει 2ν γραμμές.

  • Οροι, αθροίσματα, γινόμενα • Μια μεταβλητή στη κανονική ή τη συμπληρωματική της μορφή είναι ένας όρος

    • Παραδείγματα όρων : Χ, Χ', Υ, Ζ' • Ενα γινόμενο είναι είτε ένας όρος είτε το λογικό AND δύο ή περισσότερων όρων

    • Παραδείγματα γινομένων : Χ, Χ • Ζ', Υ• Χ', Χ • Ζ' • Υ' • Ενα άθροισμα είναι είτε ένας όρος είτε το λογικό OR δύο ή περισσοτέρων όρων

    • Παραδείγματα αθροισμάτων : Χ, Χ + Ζ', Υ+ Χ', Χ + Ζ' + Υ' • Αθροισμα γινομένων (sum of products – SOP) είναι κάθε άθροισμα του οποίου

    οι όροι είναι γινόμενα • Παράδειγμα SOP : Χ + Χ • Ζ' + Υ• Χ' + Χ • Ζ' • Υ'

    • Γινόμενο αθροισμάτων (product of sums – POS) είναι κάθε γινόμενο του οποίου οι όροι είναι αθροίσματα.

    • Παράδειγμα POS : Χ • (Χ + Ζ') • (Υ+ Χ') • (Χ + Ζ' + Υ') • Κανονικός όρος είναι ένα άθροισμα ή ένα γινόμενο, στο οποίο κάθε μεταβλητή

    (κανονική ή συμπληρωμένη) εμφανίζεται μόνο 1 φορά. Κάθε μη κανονικός όρος μπορεί να μετατραπεί μέσω απλοποίησης σε κανονικό.

    • Κανονικοί όροι : Χ • Ζ' • Υ', Χ + Ζ' + Υ' • Μη κανονικοί όροι : Χ • Ζ' • Υ' • Χ, Χ + Ζ' + Υ' + Ζ

  • Ελαχιστόροι - Μεγιστόροι • Κάθε κανονικός όρος - γινόμενο μιας συνάρτησης κ μεταβλητών,

    είναι ελαχιστόρος αν περιέχει κ όρους. Κάθε συνάρτηση κ μεταβλητών έχει 2κ ελαχιστόρους.

    • Η F(X, Y) έχει τους ελαχιστόρους : Χ' • Υ΄, Χ΄ • Υ, Χ • Υ' και Χ • Υ • Κάθε ελαχιστόρος αντιπροσωπεύει μία γραμμή του πίνακα

    αληθείας

    • Κάθε κανονικός όρος – άθροισμα μιας συνάρτησης κ μεταβλητών, είναι μεγιστόρος αν περιέχει κ όρους. Κάθε συνάρτηση κ μεταβλητών έχει 2κ μεγιστόρους.

    • Η F(X, Y) έχει τους μεγιστόρους : Χ' + Υ΄, Χ΄ + Υ, Χ + Υ' και Χ + Υ • Κάθε μεγιστόρος αντιπροσωπεύει μία γραμμή του πίνακα

    αληθείας

  • Ελαχιστόροι – Μεγιστόροι και πίνακας αλήθειας

    • Μεταξύ πίνακα αλήθειας και ελαχιστόρων (μεγιστόρων) υπάρχει μια στενή σχέση. Ο ελαχιστόρος (μεγιστόρος) μπορεί να οριστεί σα το γινόμενο (άθροισμα) που μπορεί να γίνει 1 (0) μόνο για τις τιμές εισόδου μιας και μόνο γραμμής του πίνακα αλήθειας.

    • Mπορούμε να ορίσουμε τη δυαδική τιμή που επαληθεύει τον όρο (κάνει 1 τον ελαχιστόρο ή 0 τον μεγιστόρο) σα το διακριτικό του αντίστοιχου όρου.

    • Π.χ. Ελαχιστόρος 4 = x y' z'. Mεγιστόρος 5 = x' + y + z'

  • Συνάρτηση σα κανονικό άθροισμα

    • Αφού κάθε γραμμή του πίνακα αληθείας αντιστοιχεί σε ένα ελαχιστόρο μπορούμε κοιτώντας το πίνακα αληθείας να δούμε ποιοι ελαχιστόροι επαληθεύουν τη συνάρτηση.

    • Το λογικό άθροισμα αυτών μας δίνει την έκφραση της συνάρτησης σα κανονικό άθροισμα.

    • Η συνάρτηση επαληθεύεται όταν επαληθεύεται ο ελαχιστόρος 1 ή ο

    ελαχιστόρος 3 ή ο ελαχιστόρος 4 ή ο ελαχιστόρος 5 Ισοδύναμα είναι F3(x, y, z) = m1 + m3 + m4 + m5 = x'y'z + x'yz + xy'z' + xy'z =

    Σ(1, 3, 4, 5) • Αφού ισοδύναμες συναρτήσεις έχουν κοινό πίνακα αλήθειας, θα έχουν και κοινά κανονικά

    αθροίσματα. Συνεπώς το κανονικό άθροισμα είναι μια πρότυπη μορφή πάνω στην οποία μπορώ να εφαρμόσω κάποιον αλγόριθμο.

  • Συνάρτηση σα κανονικό γινόμενο • Αφού κάθε γραμμή του πίνακα αληθείας αντιστοιχεί σε ένα μεγιστόρο μπορούμε

    κοιτώντας το πίνακα αληθείας να δούμε ποιοί μεγιστόροι δεν επαληθεύουν τη συνάρτηση.

    • Το λογικό γινόμενο αυτών μας δίνει την έκφραση της συνάρτησης σα κανονικό γινόμενο.

    • Η συνάρτηση δεν επαληθεύεται αν επαληθεύεται (παίρνει δηλαδή τη τιμή 0) ο

    μεγιστόρος 0 ή ο μεγιστόρος 2 ή ο μεγιστόρος 6 ή ο μεγιστόρος 7 Ισοδύναμα είναι F'3(x, y, z) = Μ'0 + Μ'2 + Μ'6 + Μ'7 => F3(x, y, z) = Μ0 • Μ2 • Μ6 • Μ7 = (x +y + z) • (x + y' +z) • (x' + y' + z) • (x' + y' +z') = Π(0, 2, 6, 7)

    • Αφού ισοδύναμες συναρτήσεις έχουν κοινό πίνακα αλήθειας, θα έχουν και κοινά κανονικά

    γινόμενα. Συνεπώς το κανονικό γινόμενο είναι μια πρότυπη μορφή πάνω στην οποία μπορώ να εφαρμόσω κάποιον αλγόριθμο.

  • Μετατροπές μεταξύ κανονικών μορφών • Αφού κάθε γραμμή του πίνακα αληθείας είναι είτε 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 = Mi και φυσικά Μ'i = mi

    • Για παράδειγμα είναι m'0= (x' y' z')' = x + y + z = M0 • Aρα αν F(x, y, z) = Σ (1, 3,4) => F = m1 + m3 + m4 =>

    F' = (m1 + m3 + m4)' = M1 • M3 • M4 = Π(1, 3, 4) = Σ (0, 2, 5, 6, 7) • Δηλαδή η συμπληρωματική μιας συνάρτησης προκύπτει σα

    κανονικό άθροισμα των ελαχιστόρων που λείπουν από το κανονικό της άθροισμα

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

    Πρέπει επίσης να μπορείτε να πηγαίνετε από μη πρότυπες μορφές σε πρότυπες.

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

    • Σκοποί της απλοποίησης • Λιγότεροι όροι • Απλούστεροι όροι

    • Θέλουμε απλές και συστηματικές μεθόδους

    • Υπάρχουν : • Η μέθοδος του χάρτη (μέθοδος Karnaugh / k-map) : γραφική μέθοδος για

    συναρτήσεις έως 5 μεταβλητών.

    • Η μέθοδος Quine-McClauskey : αλγεβρική μέθοδος

    • Η μέθοδος Espresso : αλγεβρική μέθοδος

    • Οι μέθοδοι αυτοί δε μας δίνουν τις υλοποιήσεις με τις λιγότερες πύλες, αλλά τις απλούστερες υλοποιήσεις με ΝΟΤ, ΑΝD & OR.

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

    Αλγεβρική μορφή Λογικό διάγραμμα Λεκτική περιγραφή } μή πρότυπες μορφές

  • Η Μέθοδος του Χάρτη Χ • Υ + Χ • Υ'= Χ (Χ + Υ) • (Χ + Υ') = Χ (Συνδυασμών)

    Παράδειγμα : Χ • Υ • Z' + Χ • Υ' • Z' + Χ • Υ • Z + Χ • Υ' • Z = Χ • Z' + Χ • Z = X Συμπέρασμα : Σε ένα άθροισμα γινομένων, που κάθε γινόμενο έχει κ μεταβλητές, αν

    υπάρχουν όλοι οι συνδυασμοί τιμών των κ-1 μεταβλητών τότε μπορούν να διαγραφούν από την έκφραση.

    Ο χάρτης είναι ένα διάγραμμα αποτελούμενο από τετράγωνα.

    Κάθε τετράγωνο παριστάνει ένα ελαχιστόρο (ισοδύναμα μια γραμμή του πίνακα αλήθειας).

    Αν ο ελαχιστόρος αληθεύει τη συνάρτηση, υπάρχει 1 στο αντίστοιχο τετράγωνο. Αν όχι υπάρχει 0.

    "Γειτονιές" (Τετράγωνα / ορθογώνια 2 ή 4 ή 8 ή 16 ή … επαληθευόμενων ή αδιάφορων ελαχιστόρων) στο χάρτη υποδεικνύουν αθροίσματα ελαχιστόρων (γινομένων) στα οποία 1 ή 2 ή 3 ή 4 ή μεταβλητές αντίστοιχα παίρνουν όλες τις δυνατές τιμές !!!

  • A B Y 0 0 α 0 1 β 1 0 γ 1 1 δ

    Karnaugh 2-Μεταβλητών

  • A B Y 0 0 α 0 1 β 1 0 γ 1 1 δ

    0 1 0 1

    Α Β

    Karnaugh 2-Μεταβλητών

  • A B Y 0 0 α 0 1 β 1 0 γ 1 1 δ

    0 1 0 α β 1 γ δ

    Α Β

    Karnaugh 2-Μεταβλητών

  • 0 1 0 1 0 1 1 0

    Α Β

    B

    BBABA =+A B Y 0 0 1 0 1 0 1 0 1 1 1 0

  • 0 1 0 1 0 1 1 0

    Α Β

    B

    0 1 0 0 1 1 0 1

    Α Β

    B

  • 0 1 0 1 0 1 1 0

    Α Β

    B

    0 1 0 0 1 1 0 1

    Α Β

    B

    0 1 0 1 1 1 0 0

    Α Β

    A

  • 0 1 0 1 0 1 1 0

    Α Β

    B

    0 1 0 0 1 1 0 1

    Α Β

    B

    0 1 0 1 1 1 0 0

    Α Β

    A0 1

    0 0 0 1 1 1

    Α Β

    A

  • A B Y 0 0 1 0 1 1 1 0 0 1 1 0

  • A B Y 0 0 1 0 1 1 1 0 0 1 1 0

    0 1 0 1 1 1

    Α Β

  • A B Y 0 0 1 0 1 1 1 0 0 1 1 0

    0 1 0 1 1 1

    Α Β

    AY =

  • A B Y 0 0 0 0 1 1 1 0 1 1 1 1

  • A B Y 0 0 0 0 1 1 1 0 1 1 1 1

    0 1 0 1 1 1 1

    Α Β

  • A B Y 0 0 0 0 1 1 1 0 1 1 1 1

    0 1 0 1 1 1 1

    Α Β

  • A B Y 0 0 0 0 1 1 1 0 1 1 1 1

    0 1 0 1 1 1 1

    Α Β

    BAY +=

  • A B Y 0 0 0 0 1 1 1 0 1 1 1 1

    0 1 0 1 1 1 1

    Α Β

    BAY +=

    Ποιος μου επιτρέπει να χρησιμοποιήσω τον m3 δύο φορές ?

  • A B Y 0 0 0 0 1 1 1 0 1 1 1 1

    0 1 0 1 1 1 1

    Α Β

    BAY +=

    Ποιος μου επιτρέπει να χρησιμοποιήσω τον m3 δύο φορές ?

    Υ = m1 + m2 + m3 = m1 + m2 + m3 + m3 (αυτοαπορρόφηση) = m1 + m3 + m2 +m3 (αντιμεταθετική) =

    Α’Β + ΑΒ + ΑΒ’ + ΑΒ = Β (Α + Α’) + Α (Β’+Β ) = Α +Β

  • A B Y 0 0 0 0 1 1 1 0 1 1 1 1

    0 1 0 1 1 1 1

    Α Β

    BAY +=

    Ποιος μου επιτρέπει να χρησιμοποιήσω τον m3 δύο φορές ? Υ = m1 + m2 + m3 = m1 + m2 + m3 + m3 (αυτοαπορρόφηση) =

    m1 + m3 + m2 +m3 (αντιμεταθετική) = Α’Β + ΑΒ + ΑΒ’ + ΑΒ = Β (Α + Α’) + Α (Β’+Β ) = Α +Β

    ΣΥΜΠΕΡΑΣΜΑ : Μπορώ να χρησιμοποιώ το ίδιο ελαχιστόρο ή ομάδες ελαχιστόρων σε όσες ομάδες μου χρειαστεί.

  • 0 1 0 1 1 1

    Α Β

    BABABAY ⊕=+=

  • Χάρτης Δυο (2) Μεταβλητών

    Ο χάρτης περιέχει 4 τετράγωνα, ένα για κάθε ελαχιστόρο.

    Το x εμφανίζεται ως συμπλήρωμα στη γραμμή 0 και κανονικά στη γραμμή 1.

    Το y εμφανίζεται ως συμπλήρωμα στη στήλη 0 και κανονικά στη στήλη 1.

    m0 m1 m2 m3

    x΄y΄ x΄y

    xy΄ xy

    y x

    0

    1

    0 1

    1

    y x

    0

    1

    0 1

    1

    1 1

    y x

    0

    1

    0 1

    xy = Σ(3) = m3 x+y = Σ(1,2,3) = m1+ m2 + m3

    Παραδείγματα

  • • Προσοχή

    – Στη σειρά 00 01 11 10 – Τα γειτονικά κελιά διαφέρουν κατά

    1 bit ή μια μεταβλητή

    00 01 11 10 0 1

    Α ΒC

    Karnaugh 3-Μεταβλητών

  • 00 01 11 10 0 1 1 1

    Α ΒC

    CBACBAY +=000 001

  • 00 01 11 10 0 1 1 1

    Α ΒC

    CBACBAY +=000 001

    BAY =

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

    AY =

    Γιατί να μη φτιάξω δύο ή και τρεις ομάδες των 2 ?

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

    AY =

    Γιατί να μη φτιάξω δύο ή και τρεις ομάδες των 2 ?

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

    BABAY +=Γιατί θα έχω αφενώς περισσότερα γινόμενα στην απλοποιημένη έκφραση, αφετέρου κάθε γινόμενο θα έχει περισσότερους όρους

    καθώς απαλείφεται μία μόνο μεταβλητή !

    ΣΥΜΠΕΡΑΣΜΑ : Για κάθε 1 του πίνακα θέλω τη μεγαλύτερη δυνατή γειτονιά και θέλω να καλύψω όλους τους 1 του πίνακα με τις

    ελάχιστες δυνατές γειτονιές !!!

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

    AY =

    00 01 11 10 0 1 1 1 1 1

    Α ΒC

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

    AY = CY =

    00 01 11 10 0 1 1 1 1 1

    Α ΒC

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

    AY = CY =

    00 01 11 10 0 1 1 1 1 1

    Α ΒC

    00 01 11 10 0 1 1 1 1 1 1 1

    Α ΒC

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

    AY = CY =

    00 01 11 10 0 1 1 1 1 1

    Α ΒC

    00 01 11 10 0 1 1 1 1 1 1 1

    Α ΒC

    BAY +=

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

    CABCBACBACBAY +++=000 100 010 110

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

    CABCBACBACBAY +++=000 100 010 110

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

    CABCBACBACBAY +++=

    0

    1 1 1 1 1

    01 11 00 10

    000 100 010 110

  • 00 01 11 10 0 1 1 1 1 1

    Α ΒC

    CABCBACBACBAY +++=

    CY =0

    1 1 1 1 1

    01 11 00 10

    000 100 010 110

  • Χάρτης Τριών (3) Μεταβλητών Ο χάρτης περιέχει 8 τετράγωνα, ένα για κάθε ελαχιστόρο.

    Προσοχή στην

    αρίθμηση yz

    Το άθροισμα δύο ελαχιστόρων της συνάρτησης που βρίσκονται σε γειτονικά τετράγωνα απλοποιείται σε ένα όρο ΚΑΙ με δύο μόνο παράγοντες.

    Το άθροισμα τεσσάρων ελαχιστόρων της συνάρτησης που βρίσκονται σε γειτονικά τετράγωνα απλοποιείται σε ένα όρο με ένα μόνο παράγοντα.

    Το άθροισμα οκτώ ελαχιστόρων της συνάρτησης που βρίσκονται σε γειτονικά τετράγωνα καταλαμβάνει όλο το χάρτη και παριστάνει τη συνάρτηση που είναι πάντα ίση με 1.

  • Παραδείγματα Χάρτη Τριών (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΄

  • Παραδείγματα Χάρτη Τριών (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

  • Karnaugh 4-Μεταβλητών

    00 01 11 10 00 01 11 10

    ΑB CD

  • 00 01 11 10 00 1 01 1 11 1 1 1 1 10 1

    ΑB CD

  • 00 01 11 10 00 1 01 1 11 1 1 1 1 10 1

    ΑB CD

    00 01 11 10 00 1 01 1 11 1 1 1 1 10 1

    ΑB CD

  • 00 01 11 10 00 1 01 1 11 1 1 1 1 10 1

    ΑB CD

    CDABY +=

    00 01 11 10 00 1 01 1 11 1 1 1 1 10 1

    ΑB CD

  • 00 01 11 10 00 1 1 01 11 10 1 1

    ΑB CD

    1 1

    1 1

  • 00 01 11 10 00 1 1 01 11 10 1 1

    ΑB CD

    1 1

    1 1 DBY =

  • BY =

    00 01 11 10 00 1 1 1 1 01 11 10 1 1 1 1

    ΑB CD

    DBY +=

    00 01 11 10 00 1 1 1 1 01 1 1 11 1 1 10 1 1 1 1

    ΑB CD

  • 00 01 11 10 00 1 1 01 1 1 11 1 1 1 10 1 1

    ΑB CD

    CABCDDCY ++=

  • 00 01 11 10 00 1 1 01 1 1 11 1 1 1 10 1 1

    ΑB CD

    CABCDDCY ++=

    Είναι αυτή η μοναδική ελάχιστη μορφή της συνάρτησης ?

  • 00 01 11 10 00 1 1 01 1 1 11 1 1 1 10 1 1

    ΑB CD

    ABDCDDCY ++=ΣΥΜΠΕΡΑΣΜΑ : Κάποιοι 1 έχουν μοναδική μέγιστη γειτονιά (essential prime implicants) και θα πρέπει να υπάρχει σε κάθε ελάχιστη μορφή

    της συνάρτησης. Κάποιοι άλλοι δεν έχουν, συνεπώς δεν υπάρχει πάντα μοναδική ελάχιστη μορφή.

  • Χάρτης Τεσσάρων (4) Μεταβλητών

    Κάθε 2n γειτονικά τετράγωνα διαφέρουν σε n μεταβλητές και οδηγούν σε έναν όρο ΚΑΙ με k – n παράγοντες, όπου k το πλήθος των

    μεταβλητών της συνάρτησης.

    Η πάνω ακμή ακουμπάει στην κάτω και η δεξιά στην αριστερή (γειτονικότητα).

    Ο χάρτης περιέχει 16 τετράγωνα, ένα για κάθε ελαχιστόρο.

  • Παραδείγματα Χάρτη Τεσσάρων (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΄

    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΄

    1 1

  • Συνθήκες Αδιαφορίας

    Συμβολίζονται με × και αντιστοιχούν σε συνδυασμούς εισόδων που δεν ορίζονται για μία συνάρτηση.

    Π.χ. F(w,x,y,z)=Σ(1,3,7,11,15) με συνθήκες αδιαφορίας d(w,x,y,z)=Σ(0,2,5)

    × 1 0 ×

    wx 00 01

    00 01 11 10 1 × 1 0

    yz

    0 0 0 0

    1 0 1 0

    11 10

    × 1 0 ×

    wx 00 01

    00 01 11 10 1 × 1 0

    yz

    0 0 0 0

    1 0 1 0

    11 10

    F = yz + w΄x΄ = Σ(0,1,2,3,7,11,15) F = yz + w΄z = Σ(1,3,5,7,11,15)

    Οι αδιάφοροι όροι μπορούν να χρησιμοποιηθούν ως άσσοι ή μηδενικά ανάλογα με την απλοποίηση που οδηγεί στο μικρότερο κύκλωμα.

  • X

    1 1

    X

    X 11

    1

    1 1

    X

    ABCD

    00

    01

    11

    10

    00 01 11 10

    1

    1

    1

    1 1

    1

    1 1X

    X

    X X

    X

    ABCD

    00

    01

    11

    10

    00 01 11 10

    1

    11

    X

    1

    ABCD

    00

    01

    11

    10

    00 01 11 10

    1

    1 1

    X 1

    1

    1

    X

    1 X

  • X

    1 1

    X

    1

    1 1

    X

    ABCD

    00

    01

    11

    10

    00 01 11 10

    1

    X

    XX

    X

    1

    X

    1

    1 1

    X

    ABCD

    00

    01

    11

    10

    00 01 11 10

    X

    X

    11

    X

    X

    1

    X

    1

    1 1

    X

    ABCD

    00

    01

    11

    10

    00 01 11 10

    1

    1

    X

    X

    X

    1

    1

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

  • Παράδειγμα Χάρτη Πέντε (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

  • Αλγόριθμος απλοποίησης με πίνακα Karnaugh

    • Βήμα 1 : • Bρες όλους τους ουσιώδεις πρώτους συνεπαγωγούς της

    συνάρτησης • Για κάθε 1 του πίνακα βρες τις "γειτονιές του" • Επέλεξε τις μέγιστες σε πλήθος γειτονιές. Αυτοί είναι οι

    πρώτοι συνεπαγωγοί • Επέλεξε από τους πρώτους συνεπαγωγούς τους μοναδικούς

    που καλύπτουν κάποιο 1. Αυτοί είναι οι ουσιώδεις πρώτοι συνεπαγωγοί

    • Βήμα 2 : • Για κάθε 1 του πίνακα που δεν έχει ήδη "καλυφθεί", επέλεξε

    τυχαία ένα πρώτο συνεπαγωγό του • Βήμα 3 :

    • Πήγαινε στο Βήμα 2 μέχρι να "καλυφθούν" όλοι οι 1 του πίνακα.

  • Υλοποίηση με πύλες ΌΧΙ-ΚΑΙ & ΟΥΤΕ

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

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

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

  • F=(CD+E)(A+B΄)

    Παράδειγμα (2)

  • Υλοποίηση με πύλες ΟΥΤΕ

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

  • Κυκλώματα ΟΥΤΕ Πολλαπλών Επιπέδων

    F = (ΑΒ + E)(C + D)

  • Η Συνάρτηση Αποκλειστικό Ή

    Αποκλειστικό Ή (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 εισόδους.

  • Η Συνάρτηση Αποκλειστικό Ή Η συνάρτηση XOR πολλών μεταβλητών είναι περιττή:

    παίρνει τιμή 1 μόνο όταν περιττός αριθμός εισόδων είναι ίσος με 1.

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

    δυαδικές αριθμητικές τιμές τους έχουν περιττό αριθμό άσσων.

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

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

    Τα κυκλώματα αυτά χρησιμοποιούνται στην ανίχνευση λαθών κατά τη μετάδοση ή λειτουργία των κυκλωμάτων.

    Το bit ισοτιμίας είναι περιττή πληροφορία η οποία όμως μπορεί να χρησιμοποιηθεί για την ανίχνευση μονού

    αριθμού λαθών.

  • Η μεγάλη εικόνα • Κάθε μέθοδος απλοποίησης (Karnaugh που είδαμε και τις υπόλοιπες

    που θα δούμε πιο κάτω) μας δίνει ένα ελάχιστο (όχι απαραίτητα μοναδικό) κύκλωμα για υλοποίηση με πύλες ΝΟΤ, ΑΝD και ΟR.

    • Αν θέλω ελάχιστο αριθμό πυλών πρέπει να : • Κάνω αλγεβρικές απλοποιήσεις επί της απλοποιημένης μορφής

    της συνάρτησης ώστε να χρησιμοποιήσω πύλες NAND, NOR, XOR, XNOR.

    • Διαμοιράζομαι πύλες μεταξύ διαφόρων συναρτήσεων που σκοπεύω να υλοποιήσω ταυτόχρονα.

  • Αλγεβρικές απλοποιήσεις μετά το 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))'

    • Νέο λογικό διάγραμμα :

  • Διαμοίραση υποσυναρτήσεων

    • Μετά από απλοποίηση έχουμε καταλήξει στις συναρτήσεις : 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) διαμοιράζεται

  • Απλοποίηση και πραγματικός κόσμος • Μέχρι ώρας είδαμε την απλοποίηση κυκλωμάτων θεωρώντας μόνο τη λογική τους

    λειτουργία. • Στο πραγματικό κόσμο, υπάρχει και μια άλλη διάσταση : η χρονική. • Θυμηθείτε ότι οι πύλες μοιάζουν με συστάδες διακοπτών, καθένας φτιαγμένος

    από τρανζίστορ. • Κάθε τέτοιος διακόπτης χρειάζεται κάποιο χρόνο ώστε να αποκαταστήσει τη

    λειτουργία του, να μεταφέρει δηλαδή το σήμα από τη μία άκρη του στην άλλη. • Ως εκ τούτου, κάθε πύλη έχει καθυστέρηση διάδοσης, οριζόμενη ως ο χρόνος που

    μεσολαβεί από την αλλαγή της εισόδου έως την αλλαγή της εξόδου που αυτή θα προκαλέσει.

    • Η καθυστέρηση διάδοσης μπορεί να είναι διαφορετική για κάθε είδος μετάβασης της εξόδου. Αλλη δηλαδή η τιμή της για 0->1 και άλλη για 1->0.

  • Στο πραγματικό κόσμο μπορεί να μη μας συμφέρει καν η απλοποίηση ! • Ας υποθέσουμε το κύκλωμα που ορίζεται από το παρακάτω πίνακα Κ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). • Παρατηρείστε ότι αυτή συμβαίνει κατά τη μετάβαση από τον

    ελαχιστόρο m5 στον m7. • Στατικές αιχμές της κατάστασης 1, εμφανίζονται κατά τις

    μεταβάσεις μεταξύ ελαχιστόρων που ανήκουν σε άλλες ομάδες

  • Λύση : μη απλοποιημένη συνάρτηση

    • Αν συμπεριλάβουμε το πρώτο συνεπαγωγό που καλύπτει τη μετάβση από το m5 στο m7 το πρόβλημα της στατικής αιχμής στη κατάσταση 1 λύνεται.

  • Mέθοδος Quine - McCluskey

    • Eίσοδος : Συνάρτηση F σε κανονική μορφή άθροισμα γινομένων • Αλγόριθμος

    • Χωρίζονται οι ελαχιστόροι της F, σε ομάδες ανάλογα με το πλήθος των μεταβλητών που είναι 1 όταν επαληθεύονται.

    • Κάθε όρος κάθε ομάδας συγκρίνεται με όλους της αμέσως επόμενης ομάδας. Αν διαφέρουν μόνο σε 1 μεταβλητή, προκύπτει νέος συγχωνευμένος όρος χωρίς αυτή τη μεταβλητή, που τοποθετείται σε νέο πίνακα, εφόσον δεν υπάρχει ήδη εκεί.

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

    με τη μέθοδο ελάχιστης κάλυψης (περιγράφεται πιο κάτω) ή τη μέθοδο Petrick (http://en.wikipedia.org/wiki/Petrick's_method).

  • Παράδειγμα • 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 είναι πρώτοι συνεπαγωγοί της συνάρτησης . Είναι όμως όλοι ουσιώδεις ?

  • Ελάχιστη κάλυψη

    • Στόχος : Να επιλέξω τον ελάχιστο αριθμό πρώτων συνεπαγωγών ώστε να καλυφθεί η συνάρτηση.

    • Αλγόριθμος • Φτιάξε ένα πίνακα. Γραμμές του οι πρώτοι συνεπαγωγοί. Στήλες του οι

    ελαχιστόροι της συνάρτησης. • Tο στοιχείο i, j σημειώνεται αν ο αντίστοιχος ελαχιστόρος περιέχεται στο

    πρώτο συνεπαγωγό. • Βρες όλες τις στήλες με ένα μόνο σημάδι. Οι αντίστοιχοι συνεπαγωγοί είναι

    ουσιώδεις και συνεπώς οπωσδήποτε πρέπει να περιληφθούν στην απλοποιημένη μορφή της συνάρτησης.

    • Αν έχουν καλυφθεί με αυτούς όλοι οι ελαχιστόροι έχεις την απλοποιημένη συνάρτηση.

    • Αλλιώς επέλεγε επιπλέον συνεπαγωγούς για να καλύψεις τους ελαχιστόρους.

  • Μέθοδος ελάχιστης κάλυψης για το παράδειγμά μας

    Ολοι οι συνεπαγωγοί είναι ουσιώδεις σε αυτό το παράδειγμα !

  • Παράδειγμα 2

    • F (x, y, z, w, v) = Σ (1, 2, 5, 6, 7, 8, 9, 10, 13, 17, 18, 21, 22, 29) • Mετά την απλοποίηση

    είναι F = A + B + C + D + Ε + F + G + H + I

    • Είναι όλοι oι παραπάνω συνεπαγωγοί ουσιώδεις ?

    F

    G

    H

    I

  • Παράδειγμα 2

    • Παρατηρούμε ότι οπωσδήποτε πρέπει να συμπεριλάβω τους Ι, Η, 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

    F

    G

    H

    I

  • Hardware Description Languages (HDLs) Γλώσσες περιγραφής υλικού

    • Γιατί υπάρχουν ? • Οι γλώσσες προγραμματισμού δε μας καλύπτουν • Το υλικό έχει μια ενγενή παραλληλία • Στις γλώσσες που ξέρουμε υποθέτουμε εκτέλεση σε μια

    ακολουθιακή μηχανή. • Η εκτέλεση στο υλικό δεν είναι ακολουθιακής φύσης.

    • Γιατί χρειάζονται ?

    • Μεταφερσιμότητα μεταξύ τεχνολογιών • Κοινό υπόβαθρο συνεννόησης μεταξύ σχεδιαστών. • Εύκολη μετάβαση από περιγραφή σε υλοποίηση

  • Γλώσσες περιγραφής υλικού

    • Τι επιπλέον προσφέρουν ? • Αναπαραστάσεις σε διάφορες μορφές που χρησιμοποιεί ένας

    σχεδιαστής υλικού : λογικά διαγράμματα, συναρτήσεις Boole, FSMs …

    • Eξομοίωση (Simulation) • Σύνθεση (Synthesis)

  • Eξομοίωση

    • Λογική Εξομοίωση (Logic Simulation) • Πιστοποίηση της σωστής δομής και συμπεριφοράς ενός

    κυκλώματος με τη χρήση υπολογιστή και κατάλληλου s/w, πριν τη πραγματική του υλοποίηση.

    • Simulator (Εξομοιωτής) • Είσοδοι : 1) περιγραφή κυκλώματος σε HDL

    2) διανύσματα εισόδου (stimuli) • Stimulus file (test bench) • Eξοδος : Τιμές εξόδων του κυκλώματος.

    • Σε τι είναι γραμμένο ένα stimulus file ? • Φυσικά, σε HDL !!!

  • Σύνθεση

    Logic synthesis • Αυτοματοποιημένη διαδικασία παραγωγής του δικτυώματος

    (netlist) ενός κυκλώματος που έχουμε περιγράψει σε HDL, για κάποια συγκεκριμένη τεχνολογία. To netlist είναι η λίστα των σχεδιαστικών κυττάρων που χρησιμοποιούμε καθώς και η διασύνδεσή τους για τη στοχευόμενη λειτουργικότητα.

    • Synthesizer / Synthesis tool • Είσοδοι : 1) περιγραφή κυκλώματος σε υποσύνολο της HDL

    2) επιθυμητά χαρακτηριστικά λειτουργίας.

    • Eξοδος : Δικτύωμα του κυκλώματος.

  • Παραλληλία στις HDLs • Κλασσικές γλώσσες προγραμματισμού :

    – Α=Β; C=A; => C=Β – C=A; A=B; => C= A – H σειρά αναγραφής των εντολών ΕΧΕΙ ΣΗΜΑΣΙΑ γιατί ο

    προγραμματιστής λαμβάνει υπόψη του το ακολουθιακό μοντέλο εκτέλεσης

    • Αρχή της παραλληλίας στις ΗDLs : Α=Β; C=A; => C=Β C=A; A=B; => C=B H σειρά αναγραφής των εντολών ΔΕΝ ΕΧΕΙ ΣΗΜΑΣΙΑ γιατί

    περιγράφουμε H/W που εκ φύσεως είναι παράλληλο.

  • Verilog

    • C like. Λιγότερες δηλώσεις, λιγότερος κώδικας, αντίστοιχο functionality.

    • Πρωτοεισήχθηκε από την Gateway Design System Corp. 1985 (μετέπειτα Cadence)

    • IEEE standard 1985. • Open Verilog International (OVI). • Προτεινόμενο σύγγραμμα : "Τhe Verilog Hardware Description

    Language", 3rd Ed., D. E. Thomas & P. R. Moorby, KAP, 1996. • Χρησιμοποιεί περίπου 100 keywords, π.χ. and, or, module … • Case sensitive, τα κενά αγνοούνται. • Οτιδήποτε ακολουθεί το // είναι comment.

  • Verilog - 2

    • H περιγραφή ενός κυκλώματος σε Verilog, μπορεί να : – είναι πλήρως δομική (structural description) – βασίζεται στη συμπεριφορά του κυκλώματος (behavioral) – συνδυάζει σε οποιονδήποτε βαθμό τα δύο παραπάνω.

    • Ενας σχεδιασμός όσο μεγάλος ή μικρός είναι στη Verilog αποτελεί ένα module.

    • Η περιγραφή ενός module μπορεί να χτίζεται με τη χρήση αντιγράφων άλλων modules.

    • Δημιουργείται έτσι μια σχεδιαστική ιεραρχία με το πλέον υψηλό να είναι το top level module.

  • Το πρώτο παράδειγμα

    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

    Η πρώτη μεταβλητή είναι πάντοτε η έξοδος

  • Πρόσθεση Χρονοκαθυστερήσεων

    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

    # Χ = χρονοκαθυστέρηση Χ χρονικών μονάδων εξομοίωσης

  • 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

  • Testbench & Simulation

    # 10 μονάδες καθυστέρηση

    # 20 μονάδες καθυστέρηση # 30 μονάδες καθυστέρηση

  • Equation Description – Συνδυαστικά Κυκλώματα

    – Αντί να περιγράφουμε τη δομή του κυκλώματος, περιγράφουμε τη λογική συμπεριφορά του, χρησιμοποιώντας συναρτήσεις Boole, πίνακες αληθείας …

    – Αν και μπορούμε να χρησιμοποιήσουμε τις predefined συναρτήσεις AND, OR, XOR … συνήθως χρησιμοποιούμε τις συντομογραφίες τους :

    • & = ΑΝD • | = OR • ~ = NOT / Complement • ^ = XOR • ~^ = XNOR

  • 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

  • Για τον ίδιο σχεδιασμό υπάρχουν :

    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

    BA

    CS

    COUT

    Δομικές Περιγραφές Περιγραφή Εξισώσεων

  • Ποια περιγραφή είναι καλύτερη ?

    Δομικές περιγραφές • Περιγράφουν μία μόνο υλοποίηση με απόλυτη ακρίβεια • Χρειάζονται πολύ περισσότερη ώρα εξομοίωσης

    Υψηλού επιπέδου περιγραφές

    • Δε περιγράφουν το κύκλωμα με απόλυτη ακρίβεια • Περιγράφουν όλα τα ισοδύναμα κυκλώματα • Εξομοιώνονται πολύ πιο γρήγορα

  • Eισαγωγή στη χρήση αρτηριών & ιεραρχίας (1/6)

    Ας θυμηθούμε την άσκηση :Θεωρείστε ότι σε έναν δυαδικό κώδικα είναι επιτρεπτές μόνο οι λέξεις οι οποίες δεν έχουν σε συνεχόμενες θέσεις ψηφία με τιμή "1".

    • Κατασκευάστε τον πίνακα αληθείας λογικής συνάρτησης G η οποία λαμβάνει την τιμή 1 αν μια λέξη μήκους τεσσάρων δυαδικών ψηφίων είναι επιτρεπτή σύμφωνα με τον κώδικα αυτό και την τιμή 0 αν δεν είναι.

    • Απλοποιήστε τη συνάρτηση G και σχεδιάστε το αντίστοιχο λογικό κύκλωμα.

    • Χρησιμοποιώντας ως δομικό στοιχείο το κύκλωμα του προηγούμενου υποερωτήματος και επιπλέον λογική, σχεδιάστε κύκλωμα το οποίο να ελέγχει αν μια λέξη 16 δυαδικών ψηφίων είναι επιτρεπτή σύμφωνα με τον κώδικα αυτό.

  • Για τα δύο πρώτα ερωτήματα :• Κατασκευάζουμε πίνακα αλήθειας.• Μεταφέρουμε στον Karnaugh &

    απλοποιούμε

    Eισαγωγή στη χρήση αρτηριών & ιεραρχίας (2/6)Α Β C D F0 0 0 0 10 0 0 1 10 0 1 0 10 0 1 1 00 1 0 0 10 1 0 1 10 1 1 0 00 1 1 1 01 0 0 0 11 0 0 1 11 0 1 0 11 0 1 1 01 1 0 0 01 1 0 1 01 1 1 0 01 1 1 1 0

    ABCD 00 01 11 10

    00

    01

    11

    10

    1 1 11 1

    1 1 1Οπότε παίρνουμε :F = B’D’ + A’C’ + B’C’

  • 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);

    initialbegin

    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

  • 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;

    assign F =~I[2] & ~I[0] | ~I[2] & ~I[1] | ~I[3] &~I[1];endmodule

    module test;reg [3:0] my_I;wire my_F;

    strange2 CUT (my_I, my_F);initial my_I=0;

    always #100 my_I=my_I+1;endmodule

  • Επαναχρησιμοποίηση • Όπως χρησιμοποίησα τις πύλες

    ως primitives μπορώ να χρησιμοποιώ τα modules που έφτιαξα, όσες φορές θέλω.• Στον ιδεατό κόσμο (αυτό των

    αρχείων), μόνο μια φορά χρειάζεται να περιγράψω τη κάθε λογική. Μπορώ να χρησιμοποιώ ιδεατά ΑΝΤΙΓΡΑΦΑ (instances)

    • Στον πραγματικό κόσμο θα πρέπει να κατασκευάσω κάθε αντίγραφο.

    Για το (γ) υποερώτημα :

    Eισαγωγή στη χρήση αρτηριών & ιεραρχίας (5/6)

  • 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];endmodulemodule 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);

    assign G = F1 & F2 & F3 & F4 & ~(A[3] & A[4]) & ~(A[7] & A[8]) & ~(A[11] & A[12]);endmodule

    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

  • Παράδειγμα εναλλακτικών περιγραφών & ιεραρχίας (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).

  • Παράδειγμα εναλλακτικών περιγραφών & ιεραρχίας (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);