ΗΥ-120: Ψηφιακή Σχεδίαση
Φθινόπωρο 2003 |
Τμ. Επ. Υπολογιστών © Πανεπιστήμιο Κρήτης |
[Βιβλίο: προαιρετικά μπορείτε να διαβάσετε τις παραγράφους 1.2 - 1.4 (σελίδες 5-13), και την παράγραφο 4.3 (σελ. 148-154)].
Dec Binary Oct Hex | Dec Binary Oct Hex | Dec Binary Oct Hex 00 000000 00 00 | 16 010000 20 10 | 32 100000 40 20 01 000001 01 01 | 17 010001 21 11 | 33 100001 41 21 02 000010 02 02 | 18 010010 22 12 | 34 100010 42 22 03 000011 03 03 | 19 010011 23 13 | ... ... ... ... 04 000100 04 04 | 20 010100 24 14 | 38 100110 46 26 05 000101 05 05 | 21 010101 25 15 | 39 100111 47 27 06 000110 06 06 | 22 010110 26 16 | 40 101000 50 28 07 000111 07 07 | 23 010111 27 17 | 41 101001 51 29 08 001000 10 08 | 24 011000 30 18 | 42 101010 52 2A 09 001001 11 09 | 25 011001 31 19 | ... ... ... ... 10 001010 12 0A | 26 011010 32 1A | 46 101110 56 2E 11 001011 13 0B | 27 011011 33 1B | 47 101111 57 2F 12 001100 14 0C | 28 011100 34 1C | 48 110000 60 30 13 001101 15 0D | 29 011101 35 1D | ... ... ... ... 14 001110 16 0E | 30 011110 36 1E | 62 111110 76 3E 15 001111 17 0F | 31 011111 37 1F | 63 111111 77 3F | 64 1000000 100 40Τα ψηφιακά συστήματα λειτουργούν με δυαδικούς αριθμούς (βάση H=2). Επίσης, στην επιστήμη υπολογιστών χρησιμοποιούμε οκταδικούς (octal) αριθμούς (βάση H=8) και δεκαεξαδικούς (hexadecimal) αριθμούς (βάση H=16), επειδή η μετατροπή ανάμεσα σε αυτούς και τους δυαδικούς αριθμούς είναι απλούστατη, και, απ' την άλλη μεριά, οι οκταδικοί και δεκαεξαδικοί αριθμοί έχουν πολύ λιγότερα ψηφία από τους δυαδικούς, κι έτσι τους γράφει και τους διαβάζει πολύ ευκολότερα ο άνθρωπος. Οι οκταδικοί αριθμοί χρησιμοποιούν 8 ψηφία: τα ψηφία 0, 1, 2, 3, 4, 5, 6, και 7. Οι δεκαεξαδικοί αριθμοί χρησιμοποιούν 16 ψηφία: τα ψηφία 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, και F. Έτσι, οι πρώτοι 65 αριθμοί στο δεκαδικό (decimal), δυαδικό (binary), οκταδικό (octal), και δεκαεξαδικό (hex) είναι αυτοί που φαίνονται στον παραπάνω πίνακα.
Η μετατροπή αριθμού μεταξύ δυαδικού, οκταδικού, και δεκαεξαδικού είναι εντελώς τετριμένη, βάσει της εξής παρατήρησης: Επειδή η βάση H = 8 = 23, κάθε ψηφίο ενός οκταδικού αριθμού αντιστοιχεί ακριβώς σε μιά τριάδα από bits του ίδιου αριθμού γραμμένου στο δυαδικό, ξεκινώντας από δεξιά. Ομοίως, επειδή η βάση H = 16 = 24, κάθε ψηφίο ενός δεκαεξαδικού αριθμού αντιστοιχεί ακριβώς σε μιά τετράδα από bits του ίδιου αριθμού γραμμένου στο δυαδικό, ξεκινώντας πάλι από δεξιά.
Η μετατροπή αριθμού από το δυαδικό στο δεκαδικό μπορεί να γίνει όπως στο παράδειγμα στην αρχή της παραγράφου, προσθέτοντας δηλαδή τις δυνάμεις του 2 που αντιστοιχούν στους άσσους του αριθμού. Τέλος, η μετατροπή αριθμού από το δεκαδικό στο δυαδικό μπορεί να γίνει βάσει της παρατήρησης ότι αν ένας αριθμός είναι μονός (περιττός) τότε το λιγότερο σημαντικό (LS) bit του θα είναι άσσος, ενώ αν ο αριθμός είναι ζυγός (άρτιος) τότε το LS bit του θα είναι μηδέν. Πράγματι, αν ο αριθμός A είναι ο bn-1bn-2...b2b1b0, όπως παραπάνω, τότε διαιρώντας τον A διά 2 έχουμε:
Γιά να βρούμε το άθροισμα σε μορφή δυαδικής αναπαράστασης πρέπει να ακολουθήσουμε μιά διαδικασία ("αλγόριθμο"!) ανάλογη της πρόσθεση με "κρατούμενο" (carry) του δημοτικού σχολείου. Ξεκινάμε από τη λιγότερο σημαντική (LS) θέση (θέση 0), (a0+b0). Εάν το άθροισμα αυτό είναι 0 ή 1, τότε το ονομάζουμε s0, και αυτό αποτελεί το λιγότερο σημαντικό (LS) bit του αθροίσματος. Εάν όμως a0+b0 = 2, τότε εκφράζουμε το 2 στο δυαδικό (10), και επομένως θέτουμε s0 = 0 (αφού το άθροισμα είναι ζυγός αριθμός), και θυμόμαστε ότι μας έχει "περισσέψει" μιά ποσότητα 2·20 (όταν μας προέκυψε στη θέση 0) = 1·21 (όταν τη μεταφέρουμε στη θέση 1), την οποία και "κρατάμε" γιά να τη μεταφέρουμε στη θέση 1, ονομάζοντας την c1 (κρατούμενο - carry).
Συνεχίζοντας με τη θέση 1, πρέπει να προσθέσουμε τα bits a1 και b1 των δύο αριθμών, καθώς και το κρατούμενο c1 που προέκυψε από τη θέση 0. Καθένας από αυτούς τους τρείς αριθμούς είναι 0 ή 1 (το κρατούμενο μπορεί να ήταν "2" στη θέση 0, αλλά όταν μεταφέρθηκε στη θέση 1 έγινε το μισό ("1"), διότι η θέση 1 έχει διπλάσια "σημαντικότητα" (δύναμη του 2) από τη θέση 0). Αθροίζοντας αυτούς τους 3 αριθμούς, που καθένας τους είναι 0 ή 1, προκύπτει ένας αριθμός μεταξύ 0 και 3. Αν το άθροισμα αυτό είναι 0 ή 1, τότε το ονομάζουμε s1, και αυτό αποτελεί το bit του αθροίσματος στη θέση 1. Εάν όμως a1+b1+c1 είναι 2 ή 3, τότε το εκφράζουμε στο δυαδικό σαν έναν αριθμό των 2 bits (2 bits αρκούν!), ονομάζουμε s1 το δεξιό και c2 το αριστερό από αυτά τα 2 bits, και θυμόμαστε ότι μας έχει "περισσέψει" μιά ποσότητα 2c2·21 (όταν μας προέκυψε στη θέση 1) = c2·22 (όταν τη μεταφέρουμε στη θέση 2), την οποία και "κρατάμε" γιά να τη μεταφέρουμε στη θέση 2.
Από κει και πέρα, η διαδικασία (αλγόριθμος) της πρόσθεσης προχωρεί με τον ίδιο τρόπο. Η παρατήρηση-κλειδί ("αναλλοίωτη συνθήκη" - invariant property) είναι ότι το "κρατούμενο εισόδου" ci στη θέση i είναι πάντα 0 ή 1. Την ιδιότητα αυτή την αποδείξαμε στη θέση i=1, και την αποδεικνύουμε στη συνέχεια επαγωγικά, από τη θέση i γιά τη θέση i+1: αφού το άθροισμα (ai+bi+ci) είναι άθροισμα τριών αριθμών που καθένας τους είναι 0 ή 1, τότε το άθροισμα αυτό θα είναι μεταξύ 0 και 3, άρα μπορεί να εκφραστεί με μοναδικό τρόπο σαν δυαδικός αριθμός των 2 bits, ci+1·2i+1 + si·2i, όπου οι αριθμοί ci+1 και si είναι μεταξύ 0 και 1. Από αυτόν τον αλγόριθμο πρόσθεσης, λοιπόν, προέκυψαν τα n bits αθροίσματος si (i από 0 έως n-1) και το ένα τελικό bit κρατουμένου cn, τα οποία n+1 bits είναι όλα 0 ή 1, και γιά τα οποία ισχύει, από τον αλγόριθμο μετασχηματισμού της αρχικής μας σχέσης, ότι: A + B = cn·2n + sn-1·2n-1 + sn-2·2n-2 + ... + s2·22 + s1·21 + s0·20. Επειδή αυτή είναι μία νόμιμη αναπαράσταση του αθροίσματος A+B στο δυαδικό σύστημα, και επειδή η αναπαράσταση κάθε αριθμού στο δυαδικό σύστημα είναι μοναδική, προκύπτει ότι αυτή είναι η αναπαράσταση του αθροίσματος στο δυαδικό. Ο.Ε.Δ.
Η διαδικασία πρόσθεσης που διατυπώσαμε παραπάνω μεταφράζεται άμεσα σε ψηφιακό κύκλωμα όπως φαίνεται στο σχήμα. Το παράδειγμα εδώ αφορά την πρόσθεση δύο οκτάμπιτων δυαδικών αριθμών, A και B. Κάθε ορθογώνιο κουτί παριστά ένα κύκλωμα πρόσθεσης γιά μία θέση των bits. Το δεξιό (LS) κύκλωμα είναι απλούστερο από τα άλλα, διότι έχει να προσθέσει μόνο δύο εισόδους (του ενός bit καθεμία)· αυτό λέγεται "ημιαθροιστής" (half-adder, "HA"). Το άθροισμα που υπολογίζει το εκφράζει σαν δύο bits: το bit s0 που έχει τον ίδιο βαθμό σημαντικότητας με τις εισόδους (θέση 0), και το bit c1 που έχει βαθμό σημαντικότητας κατά 1 μεγαλύτερο αυτού των εισόδων. Τα υπόλοιπα 7 κυκλώματα είναι κάπως πιό πολύπλοκα: πρέπει να προσθέσουν τρείς εισόδους (του ενός bit) το καθένα· αυτά λέγονται "πλήρεις αθροιστές" (full-adders, "FA"). Ο ρόλος τους είναι να μετράνε πόσοι άσσοι υπάρχουν στις τρείς εισόδους τους και να εκφράζουν αυτό τον αριθμό στο δυαδικό, με 2 bits, τα ci+1 και si. Ο πίνακας αληθείας τους προκύπτει από αυτό τον ορισμό και φαίνεται στη σελίδα 152 του βιβλίου.
Παρατηρήστε ότι ο πίνακας αληθείας του αθροίσματος, s, έχει τους άσσους σε σχήμα "σκακιέρας": καμία απλοποίηση δεν είναι εφικτή! Ο λόγος είναι ότι το s ισούται με την "περιττή ισοτιμία" (odd parity) των εισόδων, δηλαδή το αν το πλήθος των άσσων στις εισόδους είναι περιττός (μονός) αριθμός. Οιαδήποτε δύο γειτονικά τετράγωνα στο χάρτη Karnaugh διαφέρουν μεταξύ τους κατά την τιμή μίας και μόνο μίας μεταβλητής εισόδου· άρα, αλλάζοντας τιμή αυτή η μία μόνο είσοδος αλλάζει και η ισοτιμία της εισόδου από άρτια σε περιττή ή από περιττή σε άρτια, κι έτσι αλλάζει και το s. Κατά βάθος, η περιττή ισοτιμία είναι η επέκταση του αποκλειστικού-Ή σε περισσότερες των δύο μεταβλητές εισόδου, και η παραπάνω ιδιότητά του είναι αυτή ακριβώς που το κάνει χρήσιμο σε διατάξεις όπως οι διακόπτες allez-retour και οι κώδικες ανίχνευσης σφαλμάτων (αν ένα οιοδήποτε bit εισόδου αλλάξει τιμή, ο κώδικας αυτός αλλάζει επίσης τιμή).
Το κρατούμενο εξόδου του κάθε αθροιστή είναι είσοδος στον επόμενο προς τα "αριστερά" (προς MS) αθροιστή. Στην αριστερότερη (MS) θέση, το κρατούμενο εξόδου πρέπει να θεωρηθεί ότι αποτελεί το επόμενο σε σημαντικότητα bit του αθροίσματος, αφού το άθροισμα δύο οκτάμπιτων αριθμών (από 0 έως 255 καθένας) ενδέχεται να απαιτεί 9 bits γιά να παρασταθεί (άθροισμα από 0 έως 510). Ο οκτάμπιτος αθροιστής που μόλις σχεδιάσαμε είναι ένα συνδυαστικό κύκλωμα, διότι οι έξοδοί του, S, εξαρτώνται μόνο από τις παρούσες τιμές των εισόδων του, A και B, δηλαδή δεν έχει μνήμη. Όταν συνθέταμε συνδυαστικά κυκλώματα είχαμε δεί τη μέθοδο του χάρτη Karnaugh, με την οποία το κύκλωμα εκφράζονταν σαν το λογικό Ή κάμποσων όρων που ο καθένας τους ήταν το λογικό ΚΑΙ εισόδων ή συμπληρωμάτων τους. Ακολουθόντας τη μέθοδο αυτή μπορεί κανείς να φτιάξει το ένα από τα κουτιά του σχήματος, όπως στη σελίδα 152 του βιβλίου. Όμως, αν προσπαθήσουμε να εφαρμόσουμε τη μέθοδο αυτή σε ολόκληρο τον (π.χ. οκτάμπιτο) αθροιστή, πρώτον ο χάρτης Karnaugh θα είναι τεραστίων διαστάσεων (216 τετράγωνα!), και δεύτερον το κύκλωμα που θα προέκυπτε θα ήταν εξωπραγματικά τεράστιο. Αντ' αυτού, το κύκλωμα που σχεδιάσαμε εδώ, στο παραπάνω σχήμα, είναι πολύ διαφορετικό: αποτελείται από πολλά υποκυκλώματα (ένα γιά κάθε θέση bit), όπου η έξοδος του ενός είναι είσοδος στο άλλο (κρατούμενα), δηλαδή πρόκειται γιά μιάν αλυσίδα πολλών κυκλωμάτων αντί γιά μόλις δύο επίπεδα πυλών (ΚΑΙ - Ή) που δίνει ο χάρτης Karnaugh. Το πλεονέκτημα της νέας μεθόδου είναι η τεράστια απλοποίηση του κυκλώματος. Το μειονέκτημα είναι η μεγαλύτερη καθυστέρηση: γιά να προκύψουν τα τελευταία 2 MS bits του αθροίσματος πρέπει πρώτα να τελειώσουν τη δουλειά τους, "σειριακά" ο ένας μετά τον άλλον, όλοι οι επιμέρους αθροιστές (ενός bit καθένας), από τη δεξιά μέχρι την αριστερή άκρη.
Ονομάσαμε πλήρη αθροιστή (full-adder, FA) το κύκλωμα που προσθέτει 3 bits, ai, bi, και ci, και εκφράζει το άθροισμά τους σε μορφή ενός δυαδικού αριθμού 2 bits, ci+1si. Εκτός από τη λύση της σελίδας 152 του βιβλίου, το κύκλωμα αυτό μπορεί να κατασκευαστεί και χρησιμοποιώντας ημιαθροιστές όπως δείχνει το σχήμα: γιά να προσθέσω τρείς αριθμούς αρκεί να προσθέσω τους δύο πρώτους και στο άθροισμά τους να προσθέσω τον τρίτο. Κανονικά, πρέπει επίσης να προσθέσω και τα κρατούμενα. Όμως, μπορεί κανείς εύκολα να αποδείξει ότι το πολύ ένας από τους δύο ημιαθροιστές του σχήματος μπορεί να βγάζει κρατούμενο 1, κάθε φορά· άρα, αντί γιά κύκλωμα πρόσθεσης των δύο επιμέρους κρατουμένων, αρκεί να χρησιμοποιηθεί μιά πύλη Ή. Γιά την άσκηση αυτή, (ii) γράψτε την απόδειξη της παραπάνω ιδιότητας· (iii) κατασκευάστε τον πίνακα αληθείας του πλήρη αθροιστή βάσει των προδιαγραφών του· και (iv) κατασκευάστε τον πίνακα αληθείας του κυκλώματος με τους δύο ημιαθροιστές και την πύλη Ή που φαίνεται στο σχήμα, συγκρίνετέ τον με το (iii), και αποδείξτε έτσι ότι το κύκλωμα αυτό υλοποιεί όντως έναν πλήρη αθροιστή.
Στο εργαστήριο, κατασκευάστε το κύκλωμα αυτό, και ελέγξτε τη σωστή λειτουργία του. Επειδή χρειάζεστε τρία bits εισόδου, αν θέλετε να χρησιμοποιήστε διακόπτες τύπου κουμπιού (αναγκαστικά SPST, αφού δεν έχουμε 3 διακόπτες SPDT), πρέπει να τους προσθέσετε και τις αντιστάσεις που δείχνει το σχήμα. Ο ρόλος των αντιστάσεων είναι να παρέχουν χαμηλή τάση (αντί "ανοικτό κύκλωμα", που δεν επιτρέπεται στις εισόδους των chips) όταν ο διακόπτης είναι ανοικτός (δεν κάνει επαφή). [Κανονικά, στην οικογένεια TTL, το κύκλωμα αυτό χρησιμοποιείται με το διακόπτη γειωμένο, και μιάν αντίσταση από 1 έως 4.7 KΩ προς τη θετική τροφοδοσία, λόγω των ασύμμετρων ρευμάτων εισόδου στις 2 καταστάσεις· εμείς, γιά να διατηρήσουμε τη θετική πολικότητα του διακόπτη όπως και στο παρελθόν, μπορούμε να χρησιμοποιήσουμε την παραλλαγή που φαίνεται, με κόστος τη μεγαλύτερη κατανάλωση ισχύος]. Οδηγήστε την έξοδο ci+1 στη LED.6 και την έξοδο si στη LED.7. Όταν τελειώσετε μην χαλάσετε το κύκλωμά σας, διότι θα το χρειαστείτε στο επόμενο πείραμα.
Στο κάτω μέρος του σχήματος φαίνεται η δενδροειδής διάταξη των τριών αθροιστών, όπου έχουμε αναλύσει τον κάθε αθροιστή σε κυκλώματα του ενός bit, όπως κάναμε παραπάνω στην παράγραφο 5.4· γιά να χωράει το σχήμα, περιοριστήκαμε σε τρίμπιτους αριθμούς, αντί 8 bits που είχαν στο επάνω μέρος του σχήματος. Προσέξτε ότι όλα τα bits της ίδιας "σημαντικότητας" (δηλαδή που είναι συντελεστές της ίδιας δύναμης του 2) --π.χ. τα k1, l1, m1, n1-- προστίθενται μεταξύ τους με πλήρεις αθροιστές (FA) αυτής της "σημαντικότητας", δηλαδή τα ενδιάμεσα αθροίσματα που παράγουν αυτά τα κυκλώματα FA έχουν την ίδια αυτή σημαντικότητα 1, και προστίθενται μεταξύ τους (ή θα μπορούσαν να προστεθούν και με τα bits ίδιας σημαντικότητας άλλων αριθμών, π.χ. p1) γιά να παράγουν το bit s1 του αθροίσματος που έχει κι αυτό την ίδια σημαντικότητα 1. Όμως, τα κρατούμενα εξόδου όλων αυτών των κυκλωμάτων FA έχουν σημαντικότητα κατά ένα μεγαλύτερη, διότι αποτελούν συντελεστές της επόμενης προς τα αριστερά δύναμης του 2, άρα πρέπει να αθροιστούν με τα bits εισόδου της αντίστοιχης σημαντικότητας 2, εδώ, δηλαδή με τα k2, l2, m2, και n2. Οι προσθέσεις αυτών των 7 bits σημαντικότητας 2 (4 bits εισόδου και 3 κρατούμενα) πρέπει να γίνουν σε κυκλώματα FA (ή HA) σημαντικότητας 2, με οιαδήποτε σειρά ή σε οιοδήποτε μίγμα προτιμάμε.
Οι ακροδέκτες του chip MC14511B φαίνονται στο σχήμα. Η ηλεκτρική τροφοδοσία του chip γίνεται από το κάτω δεξιά ποδαράκι (αριθμός 8) γιά τον αρνητικό πόλο (γείωση) και από το πάνω αριστερό (αριθμός 16) γιά το θετικό πόλο. Τα ποδαράκια 9 έως και 15 του MC14511B είναι οι 7 έξοδοί του, που προορίζονται να οδηγούν κατ' ευθείαν τις 7 LED's· συνδέστε τα στις επαφές a, b, c, d, e, f και g της πλακέτας, προσέχοντας τη διαφορετική σειρά. Το ποδαράκι 3 είναι είσοδος, και είναι το αρνητικό (συμπλήρωμα) του σήματος LT - lamp test, που προορίζεται γιά τον έλεγχο μήπως κάποια λυχνία έχει καεί: όταν ενεργοποιείται πρέπει να ανάβουν όλες οι λυχνίες --όποια δεν ανάβει έχει καεί. Εμείς δεν θα το χρησιμοποιήσουμε, δηλαδή LT=0, δηλαδή LT'=1, άρα πρέπει να τροφοδοτήσετε το ποδαράκι 3 με ψηλή τάση, δηλαδή να το συνδέσετε στο θετικό πόλο του τροφοδοτικού. Το ποδαράκι 4 είναι είσοδος, και είναι το αρνητικό του σήματος BI - blanking input, που προορίζεται γιά να σβήνει την οθόνη όποτε θέλουμε να τη σβήνουμε (ανεξαρτήτως κώδικα εισόδου)· εμείς δεν θα το χρησιμοποιήσουμε, δηλαδή BI=0, δηλαδή BI'=1, άρα και το ποδαράκι 4 πρέπει να το συνδέσετε στη θετική τροφοδοσία. Το ποδαράκι 5 είναι η είσοδος LE - latch enable, που προορίζεται γιά να αποθηκεύεται ο κώδικας εισόδου σε 4 εσωτερικά flip-flops, ούτως ώστε να παραμένει η οθόνη στεθερή στην ένδειξη που είχε επιλεγεί παλαιότερα μέσω των εισόδων, ανεξάρτητα αν οι είσοδοι αυτές τώρα έχουν αλλάξει· εμείς δεν θα το χρησιμοποιήσουμε, δηλαδή LE=0, άρα και το ποδαράκι 5 πρέπει να το συνδέσετε στην αρνητική τροφοδοσία, δηλαδή στη γείωση.
Τέλος, τα ποδαράκια 1, 2, 6, και 7 είναι οι είσοδοι του κώδικα BCD που δίνουμε γιά να ελέγχουμε τον αριθμό στην οθόνη. Το MC14511B χρησιμοποιεί το συμβολισμό DCBA γιά τα 4 αυτά bits, δηλαδή "D" (ποδαράκι 6) είναι το περισσότερο σημαντικό (MS) bit, και "A" (ποδαράκι 7) είναι το λιγότερο σημαντικό (LS) bit. Συνδέστε στα ποδαράκια CBA τις τρείς εξόδους s2s1s0 του κυκλώματός σας του προηγουμένου πειράματος 5.10, και τροφοδοτήστε την είσοδο D με 0 (δηλαδή συνδέστε την στη γείωση). Ελέξτε αν η ένδειξη 7 τμημάτων δείχνει πάντα το σωστό πλήθος πατημένων διακοπτών, γιά όλους τους συνδυασμούς κατάστασης των διακοπτών (16 συνδυασμοί).
Εν συνεχεία, συνδέστε τις 3 εξόδους s2s1s0 του κυκλώματος μέτρησης πλήθους πατημένων διακοπτών στις εισόδους DCB αυτή τη φορά, και τροφοδοτήστε την είσοδο A με 0. Αυτή η "ολίσθηση" προς τα αριστερά του αριθμού s2s1s0 ισοδυναμεί με πολλαπλασιασμό επί 2. Ελέξτε αν η ένδειξη 7 τμημάτων ισούται πάντα με το διπλάσιο του πλήθους πατημένων διακοπτών.
Μετά, αλλάξτε την είσοδο A σε 1 (σύνδεση στη θετική τροφοδοσία). Ελέξτε αν η ένδειξη 7 τμημάτων ισούται πάντα με το διπλάσιο συν ένα του πλήθους πατημένων διακοπτών· γιατί ισχύει αυτό;
Κάνετε τις συνδέσεις σας με την τροφοδοσία κλειστή. Μόλις ανάψετε την τροφοδοσία, ακουμπήστε κάθε chip με το δάκτυλο σας να δείτε αν ζεσταίνεται υπερβολικά. Αν υποπτευθείτε ότι κάποιο chip ζεσταίνεται απότομα, σβήστε αμέσως την τροφοδοσία: ίσως και να το προλάβετε πρίν καεί! Γιά το ύποπτο chip, ελέγξτε τις εξόδους του: ίσως κάποια από αυτές είναι βραχυκυκλωμένη με τάση τροφοδοσίας ή με άλλη έξοδο του ίδιου ή άλλου chip.
Όταν το κύκλωμά σας δεν βγάζει τις αναμενόμενες εξόδους, ελέγξτε πρώτα τις τάσεις τροφοδοσίας με το πολύμετρο (βολτόμετρο): είναι σωστές (0 Volt, 5 Volt); Και πάνω απ' όλα, είναι στα σωστά ποδαράκια τροφοδοσίας του chip καθεμία;
Όταν ελέγχετε την τάση ή την κατάσταση (λογική τιμή 0 ή 1) ενός ακροδέκτη, προτιμάτε να την ελέγχετε πάνω στον ίδιο τον ακροδέκτη του chip, ει δυνατόν, αντί πάνω σε κάποιο σύρμα που (υποτίθεται ότι) είναι συνδεδεμένο στον ακροδέκτη: εάν η σύνδεση είναι κακή, ο ακροδέκτης θα σας δείξει τι βλέπει ή τι βγάζει το ίδιο το chip, ενώ το σύρμα μπορεί και να μην κάνει καλή επαφή. Όταν έχετε συνδέσει, στο κύκλωμά σας, τους ακροδέκτες δύο chips μεταξύ τους, ελέγξτε πρώτα την τιμή πάνω στον έναν ακροδέκτη, και στη συνέχει πάνω στον άλλον ακροδέκτη· αν τις βρείτε διαφορετικές, σημαίνει ότι η σύνδεση δεν είναι καλή. Γιά να ελέγξτε την τάση ή την κατάσταση ενός ακροδέκτη, χρησιμοποιήστε το βολτόμετρο ή ένα σύρμα συνδεδεμένο σε μιά λυχνία, π.χ. στην "Probe LED" (οι LED "τραβάνε" σημαντικό ρεύμα, άρα υπάρχει ο κίνδυνος να επηρεάζουν την υπό μέτρηση τιμή, αλλά σε πρώτη προσέγγιση, συνήθως πιστεύουμε να μην σας εμφανίζεται τέτοιο πρόβλημα).
Με αυτές τις μεθόδους, το επόμενο βήμα όταν το κύκλωμα δεν έχει την αναμενόμενη συμπεριφορά είναι να το ελέγξτε (να το "σαρώσετε") προχωρόντας μεθοδικά είτε από τις εισόδους προς τις εξόδους, είτε ανάποδα από τις εξόδους πίσω προς τις εισόδους. Ας πούμε ότι προχωρούμε από τις εισόδους προς τις εξόδους. Οι είσοδοι που εσείς δίνετε από τους διακόπτες, φτάνουν σωστές στα ποδαράκια του chip όπου φτάνουν; Αν όχι, φταίει κάποιο σύρμα ή σύνδεση. Αν όλες οι είσοδοι μιάς πύλης ενός chip έχουν τις σωστές τιμές (πάνω στα ποδαράκια του chip), η έξοδος αυτής της πύλης (πάνω στα ποδαράκια του chip) έχει τη σωστή τιμή; Αν όχι (και οι τροφοδοσίες είναι σωστές), υποπτευόμαστε είτε ότι η έξοδος είναι βραχυκυκλωμένη με τάση τροφοδοσίας ή με άλλη έξοδο του ίδιου ή άλλου chip, είτε ότι το chip μπορεί να είναι καμένο: το δείχνουμε στον βοηθό κι εκείνος αποφασίζει. Μετά τον έλεγχο των πρώτων πυλών που τροφοδοτούνται από τις εξωτερικές εισόδους, προχωρούμε στον έλεγχο των επομένων πυλών, που τροφοδοτούνται από τις εξόδους των πρώτων, κ.ο.κ.
Αν πάλι κάνουμε του ελέγχους μας προχωρόντας από τις εξόδους πίσω προς τις εισόδους, τότε η μεθοδολογία είναι πάλι ανάλογη. Ποιά εξοδος δεν έχει τη σωστή τιμή; Ποιά πύλη τροφοδοτεί αυτή την έξοδο; Η πύλη αυτή, πάνω στα ποδαράκια του chip, έχει τη σωστή ή λάθος τιμή; Αν η έξοδος της πύλης (πάνω στα ποδαράκια του chip) είναι λάθος, τότε οι είσοδοί της (πάνω στα ποδαράκια του chip) τι τιμή έχουν; Η τιμή των εισόδων δικαιολογεί την τιμή της εξόδου; Αν το λάθος της εξόδου οφείλεται σε λανθασμένες τιμές των εισόδων, ποιός φταίει γι' αυτές; Έτσι προχωρούμε προς τα πίσω στο κύκλωμα, μέχρι να φρούμε τον αρχικό φταίχτη....
Up to the Home Page of CS-120
|
© copyright
University of Crete, Greece.
Last updated: 13 Nov. 2003, by M. Katevenis. |