στους Ηλεκτρονικούς Υπολογιστές http://courseware.mech.tua.gr/ml232/ 3 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ E-mail: leo@mail.tua.gr URL: http://users.tua.gr/leo
Λογικές Πράξεις Λογικές Συναρτήσεις * Λογικές συναρτήσεις: συναρτήσεις όπου τόσο οι ανεξάρτητες μεταβλητές όσο και η εξαρτημένη μεταβλητή είναι όλες λογικές μεταβλητές, δηλαδή ( ) { } { } z = f x, x,..., x, x,, i =, 2,, x x 2 x 2 f(x) i z * Επειδή κάθε μεταβλητή xi μπορεί να λάβει 2 τιμές, η λογική συνάρτηση z των μεταβλητών ορίζεται σε σημεία που αντιστοιχούν στους 2 συνδυασμούς τους. 2 * Πίνακας αληθείας: εργαλείο συστηματικής παράστασης όλων των τιμών μιας λογικής συνάρτησης που αντιστοιχούν στους 2 συνδυασμούς των μεταβλητών της. 2 2
Συνδυαστικά Λογικά Κυκλώματα Τα Συνδυαστικά Λογικά Κυκλώματα υλοποιούν στατικές λογικές συναρτήσεις δηλαδή σχέσεις εισόδων - εξόδων του τύπου, m z = f x z x, ( ) { } { } x x 2 x f(x) z z 2 z m όπου το z εξαρτάται μόνο από το x με μια στατική (δηλ. μη χρονικά εξαρτώμενη) σχέση εισόδου / εξόδου. Υπάρχουν 2 προβλήματα που σχετίζονται με τα συνδυαστικά λογικά κυκλώματα: ανάλυση: Δεδομένου ενός ψηφιακού κυκλώματος να κατανοηθεί η λειτουργία του (δηλ. η μαθηματική λογική συνάρτησή του και ο πίνακας αληθείας του). σύνθεση: Δεδομένων των προδιαγραφών λειτουργίας ενός λογικού κυκλώματος να βρεθεί η μαθηματική λογική συνάρτησή του και το κύκλωμα που την υλοποιεί. 3
Παραδείγματα Ανάλυσης Δεδομένων των παρακάτω λογικών κυκλωμάτων να βρεθεί οι αντίστοιχες μαθηματικές λογικές συναρτήσεις που υλοποιούν και οι πίνακας αληθείας. A B C B AB A B C B AB AB + C AB + C Οι παραπάνω Πίνακες Αληθείας αποτελούνται από 2 =3 = 8 σειρές, όπου =3 ο αριθμός των εισόδων, και μας δείχνουν την έξοδο για κάθε περίπτωση εισόδου. P Q R P+ Q P Q R P Q P+ Q R + ( ) ( P+ Q) R 4
Παραδείγματα Σύνθεσης Δεδομένων των λειτουργικών προδιαγραφών που συνοψίζονται σε ένα πίνακα αληθείας να ευρεθούν οι σχετικές μαθηματικές λογικές συναρτήσεις και τα αντίστοιχα λογικά κυκλώματα που τις υλοποιούν Να ευρεθεί το ψηφιακό κύκλωμα που υλοποιεί τον παρακάτω πίνακα αληθείας Να ευρεθεί το ψηφιακό κύκλωμα που η έξοδός του z είναι αληθής μόνο όταν οι 2 είσοδοί του (x,y) είναι ίσες Α Β x ( A, B ) = = x= A B z = x y+ x y x y x y ( x=, y = ) ( x=, y = ) x y z x = A B 5
Πρόβλημα Σύνθεσης Στο σχήμα απεικονίζεται μιά διάταξη «συναγερμού» αυτοκινήτου που χρησιμοποιείται για την ανίχνευση ορισμένων ανεπιθύμητων καταστάσεων. Οι 3 διακόπτες χρησιμοποιούνται για την ανίχνευση της κατάστασης της θύρας του οδηγού, την κατάσταση λειτουργίας του κινήτήρα και τα φώτα. Να σχεδιασθεί το λογικό κύκλωμα που με είσοδο αυτά τα 3 σήματα ενεργοποιεί κατάλληλα τον συναγερμό όταν συμβαίνει κάποια από τις παρακάτω ανεπιθύμητες καταστάσεις : Tα φώτα είναι ανοικτά (ΟΝ) ενώ κινητήρας είναι ανενεργός (OFF) Η θύρα οδηγού είναι ανοικτή (OPEN) ενώ ο κινητήρας είναι ενεργός (ΟΝ). +5 V Ope Closed +5 V ON OFF +5 V ON OFF Κινητήρας Θύρα Οδηγού Φώτα D I L Λογικό Κύκλωμα Προς Συναγερμό z = L I + D I 6
Τυπικά Συνδυαστικά Κυκλώματα: Διακόπτες Ελέγχου (Cotrol Switches) a b 5 a b 5 Γραμμές Εισόδου 2 a2 3 a3 b2 b3 6 7 Γραμμές Εξόδου Είσοδος 2 3 a2 a3 b2 b3 6 7 Έξοδος 4 a4 GND Είσοδος Ελέγχου: : διέλευση δεδομένων εισόδου πρός την έξοδο : αποκοπή δεδομένων εισόδουπρός την έξοδο b4 8 Αν στην έξοδο έχουμε όλο δεν γνωρίζουμε αν είναι αυτά δεδομένα ή απλά δεν διέρχονται δεδομένα δια του διακόπτη. 4 a4 GND Είσοδος Ελέγχου b4 8 7
Τυπικά Συνδυαστικά Κυκλώματα: Μάσκες (Masks) Παρόμοια δράση με αυτή του διακόπτη αλλά επεκτείνεται το δικαίωμα επιλογής σε κάθε γραμμή της εισόδου. Παραμένει το μειονέκτημα του ότι αν σε μία γραμμή εξόδου έχουμε δεν γνωρίζουμε αν είναι αυτά δεδομένα ή απλά δεν διέρχονται δεδομένα δια του αντίστοιχου διακόπτη της εν λόγω γραμμής. Είσοδος a 2 a2 3 a3 b b2 b3 5 6 7 Έξοδος 4 a4 b4 8 GND Είσοδοι Ελέγχου (μάσκα επιλογής) 8
Τυπικά Συνδυαστικά Κυκλώματα: Πολυπλέκτες (Multiplexers) Μέσω των γραμμών ελέγχου είναι δυνατή η επιλογή μίας από τις 2 γραμμές εισόδου έτσι ώστε να διέλθει στην έξοδο D (επίσης διατίθεται και η D ). Multiplexer Multiplexer 2 Γραμμές Δεδομένων Εισόδου S S 8 2 D D 4=2 2 Γραμμές Δεδομένων Εισόδου S S 2 S 3 S 4 S S 8 D D D C C 2 C 3 ENB C C C 2 C 2 C 3 ENB Είσοδοι Ελέγχου 2 Είσοδοι Ελέγχου 9
A B C A B C=A (B C)= =(A B) C Πολυπλέκτης 4 εισόδων Multiplexer S S S 2 S 3 S S 8 G G G 2 G 4 S D D S D S A B C D A+B+C+D= =A+[B+(C+D)] C C 2 C 3 ENB C C
Πολυπλέκτης 4 εισόδων Multiplexer S S S 2 S 3 S S 8 S 2 G 4 G G G 2 D D D S 2 S 2 C C 2 C 3 ENB C C
Τυπικά Συνδυαστικά Κυκλώματα: Αποπολυπλέκτες (Demultiplexers) Μέσω των γραμμών ελέγχου είναι δυνατή η επιλογή μίας από τις 2 γραμμές εξόδου (S, S 2,, S 2 -, S 2 ) στην οποία θα διέλθει η είσοδος D. Demultiplexer S S 2 Είσοδος D 2 Γραμμές Δεδομένων Εξόδου S 2 - S 2 Είσοδοι Ελέγχου 2
Τυπικά Συνδυαστικά Κυκλώματα: Αποκωδικοποιητές (Decoders) Σε κάθε συνδυασμό εισόδου ενεργοποιείται μίας από τις 2 γραμμές εξόδου. Χρησιμοποιούνται για να εντοπίζουν κελιά μνήμης Decoder Decoder Γραμμές Δεδομένων Εισόδου S S D D 2 Γραμμές Δεδομένων Εξόδου S S D D S -2 S - D 2-2 D 2- D 2 D 3 3
Τυπικά Συνδυαστικά Κυκλώματα: Αποκωδικοποιητές (Decoders) Σε κάθε συνδυασμό εισόδου ενεργοποιείται μίας από τις 2 γραμμές εξόδου. Decoder S S S = 2 =2 S G G D D D 2 = G 2 G 4 D 2 D 3 4
Τυπικά Συνδυαστικά Κυκλώματα: Κωδικοποιητές (Ecoders) Σε κάθε ενεργοποίηση μίας από τις 2 γραμμές εισόδου αντιστοιχίζεται ένας συνδυασμός εξόδων. Χρησιμεύει στην κωδικοποίηση των χαρακτήρων του πληκτρολογίου κατά τον κώδικα ASCIΙ. Ecoder 2 Γραμμές Δεδομένων Εισόδου Γραμμές Εξόδου 5
Τυπικά Συνδυαστικά Κυκλώματα: Αθροιστές Βασικός μηχανισμός άθροισης. Πράξη μεταξύ 2 bits Α, Β : + Α bit ( ή ) B bit ( ή ) Half - Adder C S Κρατούμενο Άθροισμα ΗΑ Α Β C S _ A B S =AB + AB = A B A B C = AB Α Β XOR S C Λογικό κύκλωμα που υλοποιεί την πρόσθεση 2-bit και αποκαλείται Ημιαθροιστής (Half Adder - HA) τ τ τ 6
Τυπικά Συνδυαστικά Κυκλώματα: Αθροιστές (συνεχ.) Απλή 2-μπιτη πρόσθεση : α 2 α b 2 b + Η πρώτη πρόσθεση που εκτελείται είναι αυτή της δεξιάς στήλης: α b + k d Το κρατούμενο k θα πρέπει να προστεθεί στην αμέσως πιο αριστερά στήλη, δηλαδή: k α 2 α b 2 b + d Συμπέρασμα: απαιτείται η πρόσθεση των 3 bit, (k, a 2, b 2 ). Φανερή η ανάγκη κατασκευής λογικού κυκλώματος που θα προσθέτει 3 bit (π.χ. Α,Β,Γ). Υλοποίηση: Α+Β, με ΗΑ-: Α Β + c s Μετά, μέσω ΗΑ-2: s. Γ + c 2 s 2 Για το c +c 2 δεν είναι αναγκαίος ένας ΗΑ αλλά απλά μια πύλη OR Το όλο λογικό κύκλωμα λέγεται αθροιστής (Full Adder - FA). Γ Β Α τ HA S C τ HA FA S 2 C 2 τ S C 7 2τ 3τ
Τυπικά Συνδυαστικά Κυκλώματα: Αθροιστές (συνεχ.) α α 2 Πρόσθεση 2-μπιτων αριθμών α 2 α b 2 b + d 3 d 2 d b 2 b HA FA S τ +2τ 3τ +2τ 5τ C τ 4τ FA 2 7τ... FA (-) (2-) τ (3-2) τ +3τ +3τ FA c 2 d 3 s 2 d 2 HA c s Για την πρόσθεση αριθμών bit, χρησιμοποιούμε ένα ΗΑ και (-) FA. d Ο συνολικός χρόνος που χρειάζεται για την πράξη είναι ο χρόνος του υπολοίπου (3-2)τ. Επειδή ο χρόνος αυξάνει γραμμικά με το υπάρχουν άλλοι τύποι αθροιστών που προβλέπουν τα κρατούμενα και οδηγούν σε ταχύτερους υπολογισμούς. 8
Ακολουθιακά Λογικά Κυκλώματα Υπενθυμίζουμε ότι τα Συνδυαστικά Λογικά Κυκλώματα υλοποιούν στατικές λογικές συναρτήσεις δηλαδή σχέσεις εισόδων - εξόδων του τύπου ( ) {,} m {,} z = f x z x δηλαδή το z εξαρτάται μόνο από το x με μια στατική (δηλ. μη χρονικά εξαρτώμενη) σχέση εισόδου / εξόδου, δηλαδη ( ) = ( ) ( ) z t f x t Στα Ακολουθιακά (sequetial) Λογικά Κυκλώματα η μεταβολή της εξόδου δεν εξαρτάται μόνο από αυτή της εισόδου αλλά και από την τιμή της ιδίας. ( + ) = ( ), ( ) ( ) z t f x t z t 9
Ακολουθιακά Λογικά Κυκλώματα Στα Συνδυαστικά Λογικά Κυκλώματα οι σχέσεις εισόδων - εξόδων αποδίδεται από το δομικό διάγραμμα: x f(x) z Στα Ακολουθιακά (sequetial) Λογικά Κυκλώματα, η έξοδος z(t+) του συστήματος εξαρτάται από τη τρέχουσα είσοδο x(t) και την τρέχουσα έξοδο z(t). Δηλαδή η έξοδος «αναδρά» στον (ανατροφοδοτεί τον) εαυτό της δρώντας ως (μερική) είσοδος. ( + ) = ( ), ( ) ( ) z t f x t z t Λογικό Κύκλωμα Επομένως, ένα ακολουθιακό λογικό κύκλωμα είναι ένα σύστημα που έχει μνήμη και γι αυτό χρησιμοποιείται για την υλοποίηση συσκευών μνήμης. Η βασικότερη και απλούστερη διάταξη μνήμης είναι το RS Flip-Flop. 2
To RS Flip-Flop Είναι ένα λογικό κύκλωμα με 4 ακροδέκτες: S(t) S (set), R (reset): είσοδος Q, Q : έξοδος. G (t) Q (t) ΕΙΣΟΔΟΣ ΕΞΟΔΟΣ http://www.mekaizmalar.com/sr_flip_flops.html Tο Flip-Flop μπορεί να υλοποιήσει την έννοια του bit δεδομένου ότι μπορεί να φυλάσσει δεδομένα (π.χ. στην έξοδο Q) ενώ έχει άμεσα διαθέσιμο το Q =Q που απαιτείται σε διάφορους χειρισμούς. Υπάρχουν τέσσερις δυνατές καταστάσεις: SET: S=, R= RESET: S=, R= STORE: S=, R= Μη αποδεκτή: S=, R= R(t) 2 G 2 (t) Q(t) 2
Πρόβλημα (Θέμα 2/2) Στο παρακάτω σχήμα, οι έξοδοι Q των δύο (2) RS Flip-Flop αντιστοιχούν στα bit b και b 2 του 2-μπιτου αριθμού b 2 b. Να σχεδιασθεί και συνδεθεί με τα Flip-Flop το κύκλωμα που δίνει το c 2 (b 2 b ). b 2 b b 2 b + S R Q Q b 2 b 2 d 2 d 3 d 2 d S Q b d 3 R Q b d 22
στους Ηλεκτρονικούς Υπολογιστές ΑΝΑΚΕΦΑΛΑΙΩΣΗ 23
ΑΝΑΚΕΦΑΛΑΙΩΣΗ Γλώσσες & Προγράμματα Εφαρμογών Γλώσσες Προγραμματισμού Λογισμικό: Σύνολο προγραμμάτων που μπορούν να εκτελεσθούν από τον Η/Υ Λειτουργικό Σύστημα Γλώσσα Μηχανής ΥλικόΤεχνικό: Σύνολο συσκευών που απαρτίζουν τον Η/Υ Μικρολειτουργίες & Μικροπρογραμματισμός Ψηφιακή Λογική 24
ΑΝΑΚΕΦΑΛΑΙΩΣΗ Τι είναι ένας Η/Υ? «Ένας Η/Υ είναι μία μηχανή η οποία, υπό τον έλεγχο ενός αποθηκευμένου προγράμματος που υλοποιεί κάποιο αλγόριθμο επεξεργασίας δεδομένων, δέχεται και επεξεργάζεται αυτόματα τα δεδομένα και παρέχει τα αποτελέσματα αυτής της επεξεργασίας» ΔΕΔΟΜΕΝΑ (data) Η/Υ ΠΛΗΡΟΦΟΡΙΑ (iformatio) «ακατέργαστα» δεδομένα ΕΠΕΞΕΡΓΑΣΙΑ μέσω κατάλληλου αλγορίθμου (προγράμματος) «δομημένα» δεδομένα 25
ΑΝΑΚΕΦΑΛΑΙΩΣΗ Δεδομένα Εισόδου Κωδικοποίηση Δεδομένα Εισόδου σε Δυαδική Μορφή Επεξεργασία Δεδομένα Εξόδου σε Δυαδική Μορφή Αποκωδικοποίηση Δεδομένα Εξόδου α β Ηλεκτρονική υλοποίηση μίας συνάρτησης f(α,β) f γ γ (, ) γ = f α β ( ) = δ Γ2 δ ( ) δ ( ) Γ = g Γ 2 g ( A, B ) 2 2 2 A A 2 B 2 ( ) = δ α 2 δ ( ) B ( ) = δ β 2 Η ηλεκτρονική υλοποίηση μέσω λογικών πράξεων είναι πολύ πιο εύκολη και αξιόπιστη απ ότι αυτή των αριθμητικών πράξεων 26
ΑΝΑΚΕΦΑΛΑΙΩΣΗ Άρα Για να υλοποιήσουμε μία συνάρτηση f(α,β) (ή ένα πρόγραμμα) ηλεκτρονικά πρέπει ) Να κωδικοποιήσουμε την πληροφορία 2) Να κάνουμε μία σειρά από Boolea πράξεις που αποτυπώνουν την συνάρτηση/πρόγραμμα και οι οποίες μπορούν να υλοποιηθούν με συνδυαστικά/ακολουθιακά λογικά κυκλώματα 3) Να αποκωδικοποιήσουμε την εξαγόμενη πληροφορία 27
ΑΝΑΚΕΦΑΛΑΙΩΣΗ Συστήματα Αρίθμησης (Δεκαδικό, Δυαδικό, Οκταδικό, Δεκαεξαδικό) Κωδικοποίηση: Μετατροπή δεκαδικού σε δυαδικό, Bit/byte Πράξεις στο Δυαδικό (Πρόσθεση, Αφαίρεση, Πολλαπλασιασμός) Παράσταση αρνητικών αριθμών με πρόσημο-μέτρο Συμπλήρωμα ως προς δύο Υπερχείλιση & Υποχείλιση Κλασματικοί αριθμοί (Σταθερή Υποδιαστολή), Αρνητικοί κλασματικοί, Πόλωση κατά Κ Αριθμητική Κινητής Υποδιαστολής (floatig poit arithmetic, sigle/double precisio) Κωδικοποίηση Χαρακτήρων Μέθοδοι Επαλήθευσης Ακρίβειας Δεδομένων 28
ΑΝΑΚΕΦΑΛΑΙΩΣΗ ADC & DAC Διακριτοποίηση ως προς τον χρόνο (samplig rate, συχνότητα δειγματοληψίας) Διακριτοποίηση ως προς την τιμή της συνάρτησης (βήμα κβαντισμού, quatizatio level) Εφαρμογές Ψηφιακά Συστήματα (η υλοποίηση των αλγορίθμων με ηλεκτρονικό υλικό) Λογικές Μεταβλητές και Πράξεις Απλές και Παράγωγες Λογικές Πράξεις & Πύλες Ηλεκτρονική Υλοποίηση πυλών (Τrasistor) Συνδυαστικά / Ακολουθιακά Κυκλώματα στον δομημένο προγραμματισμό Λογικά διαγράμματα Παραδείγματα στην Matlab 29
Για τις εξετάσεις: Θα σταλούν οδηγίες και βαθμολογία. Καλή επιτυχία! 3
Λ.Αλεξόπουλος ΕΥΧΑΡΙΣΤΙΕΣ Ιωάννης Μελάς Παναγιώτης Παύλου και PC Lab Το κέντρο Η/Υ ΕΜΠ 3