ΑΣΚΗΣΕΙΣ ΜΙΚΡΟΕΛΕΓΚΤΩΝ Μέρος 1 ο : Ασκήσεις σε μνήμες Καθηγητής: Νικολαΐδης Νικ. ΑΣΚΗΣΗ 1 Να σχεδιαστεί μία μνήμη ROM που να περιέχει το κείμενο "MICRO LAB". Ο ASCII κωδικός του κενού είναι 40h, του "Α" είναι 41h και τα υπόλοιπα γράμματα έχουν συνεχόμενους κωδικούς. Ο μικρότερος αριθμός ν για τον οποίο ισχύει 2 ν 9, για τους 9 χαρακτήρες της φράσης MICRO LAB, είναι το 4. Άρα, η ROM θα έχει 4 εισόδους και 16 θέσεις μνήμης. Οι ASCII κωδικοί που πρέπει να φυλαχτούν είναι: 4Dh, 49h, 43h, 52h, 4Fh, 40h, 4Bh, 41h, 42h. Για την παράσταση του μεγαλύτερου αριθμού (52h) απαιτούνται 7 bits (52h = 1010010). Άρα, η ROM θα έχει 7 εξόδους. Ο πίνακας αλήθειας της ROM θα είναι: Α2 Α1 Α0 χαρ. ASCII (hex) 40 20 10 8 4 2 1 0 0 0 0 M 4D 1 0 0 1 1 0 1 0 0 0 1 I 49 1 0 0 1 0 0 1 0 0 1 0 C 43 1 0 0 0 0 1 1 0 0 1 1 R 52 1 0 1 0 0 1 0 0 1 0 0 O 4F 1 0 0 1 1 1 1 0 1 0 1 40 1 0 0 0 0 0 0 0 1 1 0 L 4B 1 0 0 1 0 1 1 0 1 1 1 A 41 1 0 0 0 0 0 1 1 0 0 0 B 42 1 0 0 0 0 1 0 1 0 0 1 X X X X X X X X X X X X X X X X Παρατηρούμε ότι, ρυθμίζοντας κατάλληλα τις αδιάφορες καταστάσεις Χ, οι έξοδοι και έχουν σταθερή τιμή 1 και 0 αντίστοιχα. Άρα, δε χρειάζεται να συμμετέχουν στον πίνακα μνήμης (πίνακας OR) της ROM.
4-to-16 decoder 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001... 1111 M I C R O L A B VCC Σημειώστε ότι ο αποκωδικοποιητής δ/νσεων της ROM είναι πάντοτε από ν σε 2 ν. ΑΣΚΗΣΗ 2 Να σχεδιαστεί μία μνήμη ROM που να υλοποιεί τις παρακάτω λογικές εξισώσεις: α) X = A + B!C +!BCD β) Y =!A!B!C +!BCD + BCD γ) Z = A B + C(A D) Θα πρέπει να φέρουμε τις εξισώσεις σε κανονική μορφή. Μπορούμε να εργαστούμε είτε με τις λογικές μεταβλητές, είτε με τους δυαδικούς συνδυασμούς, είτε με τα δεκαδικά αντίστοιχα. Εδώ παρατίθενται και οι 3 μέθοδοι εργασίας. α) X= A(!B!C!D +!B!CD +!BC!D +!BCD + B!C!D + B!CD + BC!D + BCD) + B!C(!A!D +!AD + A!D + AD) +!BCD(!A + A) = = A!B!C!D +A!B!CD + A!BC!D + A!BCD + AB!C!D + AB!CD + ABC!D + +!AB!C!D +!AB!CD + AB!C!D + AB!CD +!A!BCD + A!BCD = = 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111, 0100, 0101, 1100, 1101, 0011, 1011 = 0011, 0100, 0101, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111 Ασκήσεις ΜΕ Μέρος 1ο: μνήμες 2
= 8,9,10,11,12,13,14,15, 4,5,9,11, 3,11 = = 3,4,5,8,9,10,11,12,13,14,15 β) Y=!A!B!C(!D + D) +!BCD(!A + A) + BCD (!A + A) = =!A!B!C!D +!A!B!CD +!A!BCD + A!BCD +! + = = 0000, 0001, 0011, 1011, 0111, 1111 = 0000, 0001, 0011, 0111, 1011, 1111 = = 0,1,3,7,11,15 γ) Z= A B + C(A D) = A!B+!AB+C(A!D+!AD) = A!B+!AB+AC!D+!ACD = = A!B(!C!D+!CD+C!D+CD)+!AB(!C!D+!CD+C!D+CD)+AC!D(!B+B)+!ACD(!B+B) = = A!B!C!D+A!B!CD+A!BC!D+A!BCD+!AB!C!D+!AB!CD+!ABC!D+!+ +A!BC!D+ABC!D+!A!BCD+!= =!AB!C!D+!AB!CD+!ABC!D+!+ A!B!C!D+A!B!CD+A!BC!D+A!BCD+ABC!D= =0100,0101,0110,0111,1000,1001,1010,1011,1110= =4,5,6,7,8,9,10,11,14 Κατόπιν των παραπάνω, ο πίνακας αλήθειας της μνήμης ROM θα είναι: A B C D Δεκ. X Y Z 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 2 0 0 0 0 0 1 1 3 1 1 0 0 1 0 0 4 1 0 1 0 1 0 1 5 1 0 1 0 1 1 0 6 0 0 1 0 1 1 1 7 0 1 1 1 0 0 0 8 1 0 1 1 0 0 1 9 1 0 1 1 0 1 0 10 1 0 1 1 0 1 1 11 1 1 1 1 1 0 0 12 1 0 0 1 1 0 1 13 1 0 0 1 1 1 0 14 1 0 1 1 1 1 1 15 1 1 0 Ασκήσεις ΜΕ Μέρος 1ο: μνήμες 3
0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 4-to-16 decoder 0111 1000 7 8 1001 9 1010 10 1011 11 1100 12 1101 13 1110 14 1111 15 A B C D X Y Z ΑΣΚΗΣΗ 3 Να σχεδιαστεί μία μνήμη RAM 4 λέξεων των 2 bits με δικατευθυντήριες γραμμές δεδομένων (όχι ξεχωριστές γραμμές εισόδου - εξόδου). Από το κύκλωμα του βιβλίου κρατάμε μόνο τις δύο εξόδους και βραχυκυκλώνουμε κάθε είσοδο με την αντίστοιχη έξοδο, εμφανίζοντας κοινές γραμμές δεδομένων. Αυτό μπορούμε να το κάνουμε επειδή, ανάλογα με την κατάσταση της εισόδου!we, οι δύο πύλες AND θα συνδέουν σε κάθε γραμμή δεδομένων είτε μόνο στην είσοδο, είτε μόνο στην έξοδο. Οι προσθήκες στο επόμενο σχήμα φαίνονται με μαύρο χρώμα. Ασκήσεις ΜΕ Μέρος 1ο: μνήμες 4
ΑΣΚΗΣΗ 4 Να σχεδιαστεί ένα σύστημα μνήμης με μία μνήμη ROM 16 Kbits με αρχική διεύθυνση την 0000 και μία RAM 32 Kbits σε συνεχόμενες θέσεις μετά τη ROM. Το πλήθος των θέσεων μνήμης ROM θα είναι 2 KBytes και της RAM 4 KBytes, και στο 16δικό σύστημα 0800h bytes και 1000h bytes. Οι 16δικές διευθύνσεις κάθε ολοκληρωμένου θα είναι: ROM: 0000h 07FFh RAM: 0800h 17FFh και οι δυαδικές Ασκήσεις ΜΕ Μέρος 1ο: μνήμες 5
ROM RAM 5 4 3 2 Από 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Έως 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 Από 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 Έως 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 Τα bits Α15 έως Α13 έχουν σταθερή τιμή 0 και μας είναι αδιάφορα. Οι δύο μνήμες ξεχωρίζουν από τα bits Α12 και Α11. Όταν έχουν τιμή 00 θα επιλέγεται η ROM, ενώ για τις τιμές 01 και 10 θα επιλέγεται η RAM. Θα χρειαστούμε επομένως έναν αποκωδικοποιητή από 2 σε 4 και μία πύλη AND δύο εισόδων. Η πύλη δεν είναι OR επειδή οι έξοδοι του αποκωδικοποιητή είναι χαμηλής ενεργού στάθμης.......2 ROM RAM U? Decoder 2 to 4 00 (0) 01 (1) 10 (2) 11 (3) 2 ΑΣΚΗΣΗ 5 Να δημιουργηθεί μία μνήμη 8192 θέσεων των 8 bits (8 K x 8 bits) από μνήμες 4 K x 4 bits. Ασκήσεις ΜΕ Μέρος 1ο: μνήμες 6
Χρειάζονται 4 ολοκληρωμένα μνήμης, ROM ή RAM, είναι αδιάφορο. Τα δύο θα σχηματίσουν ένα ζευγάρι χωρητικότητας 4 KBytes με λέξη των 8 bits. Ακόμη ένα ζευγάρι θα χρειαστεί για να αυξηθεί το μέγεθος της μνήμης από 4 σε 8 KBytes. Σε κάθε ζευγάρι θα συνδεθούν τα 4 bits της μιας μνήμης στα 4 low bits του συστήματος και τα 4 bits της άλλης μνήμης στα 4 high bits. Αφού διπλασιάζεται το μέγεθος της μνήμης θα χρειαστούμε ακόμη μία γραμμή δ/νσης, όταν είναι 0 να ενεργοποιείται το ένα ζευγάρι και όταν είναι 1, το άλλο. Το κύκλωμα που προκύπτει μετά την παραπάνω συζήτηση θα είναι το εξής.......2 U1a U1b 2 U2a U2b 2 Ασκήσεις ΜΕ Μέρος 1ο: μνήμες 7