Λογική Σχεδίαση 2 & Εργαστήριο — Ιανουάριος 2025¶
Μεταγραφή από τα αρχεία: IMG_20250623_224012.jpg, IMG_20250623_224127.jpg, IMG_20250623_224145.jpg, IMG_20250623_224107.jpg, IMG_6287.jpg, 20250625.png, IMG_6286.jpg, IMG_8366.jpg.
IMG_20250623_224012.jpg¶
Λογική Σχεδίαση II, Ιαν. 2025, 1/6.
Λογική Σχεδίαση II — Εξεταστική Ιανουαρίου 2025
Διάρκεια εξέτασης: 140 λεπτά. Ελάχιστη Παραμονή: 90 λεπτά Οι απαντήσεις σας να δοθούν πάνω στις κόλες των θεμάτων.
[Σημείωση μεταγραφής: τα πεδία ονοματεπωνύμου, ΑΜ και έτους σπουδών παραλείπονται.]
(3 μονάδες)
Θέμα 1
1) Καλείστε να αντικαταστήσετε ένα κύκλωμα πολλαπλασιασμού πρόσθεσης που υπολογίζει την πράξη \(A \times B + C\) με μια ROM που να επιτελεί την ίδια λειτουργία. Το \(A \in [-16, 15]\), το \(B \in [-8, 7]\) και το \(C \in [-128, 127]\). Υπολογίστε ποιο είναι το μέγεθος της ROM που θα χρειαστεί, αναλυτικά ως αριθμό θέσεων και δυαδικά ψηφία ανά θέση και συνδυαστικά σε kBytes. Δώστε 5 διευθύνσεις (σε δυαδικό) στις οποίες το περιεχόμενο της μνήμης είναι \(00_{H}\). Εξηγείστε.
IMG_20250623_224127.jpg¶
Λογική Σχεδίαση II, Ιαν. 2025, 2/6
(3 μονάδες)
Θέμα 2
Σχεδιάστε ΜΟΝΟ την βαθμίδα i (δηλαδή το flip flop της θέσης i καθώς και τις διασυνδέσεις στις εισόδους κα… τις εξόδους του) ενός καταχωρητή πολλαπλών λειτουργιών των n δυαδικών ψηφίων. Στον καταχωρητ… αποθηκεύονται φυσικοί αριθμοί. Η λειτουργία του καταχωρητή καθορίζεται από μια είσοδο ελέγχου S των 2-bit σύμφωνα με τον παρακάτω πίνακα:
[Λείπει από τη φωτογραφία: τα τελευταία γράμματα των γραμμών 1 και 3 (κομμένα στο δεξί άκρο της φωτογραφίας).]
| S | Λειτουργία |
|---|---|
| \(0_H\) | Παράλληλη φόρτωση των n-bit δεδομένων A: \(Q^{t+1} = A_{n-1}A_{n-2} \dots A_0\) |
| \(1_H\) | Ο καταχωρητής παραμένει σταθερός. |
| \(2_H\) | Ολίσθηση αριστερά αν η τρέχουσα τιμή του καταχωρητή είναι περιττή. Αλλιώς ο καταχωρητής παραμένει σταθερός. |
| \(3_H\) | Ολίσθηση δεξιά αν η τρέχουσα τιμή του καταχωρητή είναι άρτια. Αλλιώς ο καταχωρητής μηδενίζεται. |
Μπορείτε να χρησιμοποιήσετε μόνο D Flip-flop, πολυπλέκτες 2-σε-1, λογικές πύλες 2-εισόδων 1-εξόδου και αναστροφείς.
IMG_20250623_224145.jpg¶
Λογική Σχεδίαση II, ιαν. 2025
Θέμα 3
Σχεδιάστε έναν μετρητή που μετράει από το 0 μέχρι 5. Δεν έχετε στη διάθεσή σας πολυπλέκτες.
(1 μονάδ…)
[Λείπει από τη φωτογραφία: η κατάληξη της λέξης «μονάδα» στο δεξί άκρο της φωτογραφίας.]
IMG_20250623_224107.jpg¶
Θέμα 4
Λογική Σχεδίαση ΙΙ, Ιαν. 2025, 4/6.
(3 μονάδες)
Να συνθέσετε ένα σύγχρονο ακολουθιακό κύκλωμα που διαθέτει μια είσοδο συνεχούς διοχέτευσης Α του ενός bit, ένα ρολόι (clk), ένα σήμα reset (rst) και αναγνωρίζει την ακολουθία ‘1101’ στην είσοδο Α. Όταν αναγνωρίζεται η ακολουθία, η έξοδος γίνεται 1, σε κάθε άλλη περίπτωση η έξοδος είναι 0. Να χρησιμοποιήσετε αποκλειστικά D flip flop, αναστροφείς και πύλες AND και OR. Η λύση σας πρέπει να περιλαμβάνει:
- το κατά Moore διάγραμμα μετάβασης καταστάσεων. Η κωδικοποίηση των καταστάσεων να χρησιμοποιείται μοναδικό σημαντικό (one-hot encoding) (1 μονάδα) και
- το κύκλωμα που υλοποιεί την ανωτέρω λειτουργία. (2 μονάδες)
Επιπλέον πηγές χωρίς μεταγραφή εδώ (χειρόγραφες λύσεις ή διπλότυπες φωτογραφίες· λύσεις →
2025-01.solutions.md):IMG_6287.jpg,IMG_6286.jpg,IMG_8366.jpg,20250625.png
Λύσεις (🟡 community)
Κατάσταση: 🟡 community Πηγή: φωτογραφίες χειρόγραφων λύσεων φοιτητή (χωρίς επίσημο κλειδί)
Προσοχή
Στη λύση του Θέματος 1 το εύρος του A×B γράφεται [-128, 105]· με A∈[-16,15] και B∈[-8,7] προκύπτει [-120, 128]. Το εύρος του A×B+C γράφεται [-256, 232]· με τα όρια της εκφώνησης προκύπτει [-248, 255]. Τα 9 bit εξόδου ισχύουν και στις δύο περιπτώσεις. Η IMG_6286.jpg γράφει [128, 105] + [-128, 127] = [0, 232] με 8+1 bit, που δεν καλύπτει τις αρνητικές τιμές· η IMG_8366.jpg δίνει 9 bit. Οι 20250625_191159.jpg και 20250625_191210.jpg αντιστοιχούν στο Θέμα 3 της συνεδρίας 2025-01· στο 2025-06.md εμφανίζονται ως πηγές της λάθος συνεδρίας. Η λύση στο 191159 είναι κομμένη στο πάνω άκρο και έχει δυσανάγνωστα σημεία.
Λύσεις — Λογική Σχεδίαση ΙΙ — Ιανουάριος 2025¶
Χειρόγραφες λύσεις φοιτητή για το Θέμα 1 (ROM για A×B+C) και το Θέμα 3 (μετρητής 0 έως 5). Δεν είναι επίσημη λύση.
IMG_6286.jpg¶
\(2^0=1\), \(2^1=2\), \(2^2=4\), \(2^3=8\), \(2^4=16\), \(2^5=32\), \(2^6=64\), \(2^7=128\), \(2^8=256\), \(2^9=512\)
Άσκηση
Έξοδος: \(A \times B + C\)
\(A \in [-16,15]\), \(B \in [-8,7]\), \(C \in [-128,127]\)
[Σχήμα: υπογραμμίσεις και αγκύλη με ενδείξεις «εξόδου» / «εισόδου» (μερικώς δυσανάγνωστες)]
\(A \in [-16,15] \rightarrow\) 4 bit + 1 bit πρόσημου = 5 bit
\(B \in [-8,7] \rightarrow\) 3 bit + 1 bit = 4 bit
\(C \in [-128,127] \rightarrow\) 7 bit + 1 bit = 8 bit
\(5 + 4 + 8 = 17\) bit εισόδου
\([-16,15] \times [-8,7] + [-128,127]\)
\([128, 105] + [-128,127] =\)
\([0, 232] =\) 8 bit + 1 πρόσημου = 8 bit εξόδου
Μέγεθος ROM σε Kbytes
αριθμός θέσεων → \(2^{17}\) θέσεις
δυαδικά ψηφία ανά θέση → bit εξόδου
\(2^{17} \times 8 \text{ bit} =\) [δυσανάγνωστο] \(131.072 \times 9 = 1.179.648\)
\(\dfrac{1.179.648}{8} = 147.456\) bytes
\(147.456 \cdot 10^{6}\) kbytes
\(1 \text{ bit} = 8 \text{ bytes}\)
Περιεχόμενο μνήμης είναι \(00_H \rightarrow 16\)
IMG_8366.jpg¶
- \(A: [-16, 15] \rightarrow 32 \Rightarrow 2^5 = 5\) bits
- \(B: [-8, 7] \rightarrow 16 \Rightarrow 2^4 = 4\) bits
- \(C: [-128, 127] \rightarrow 256 \Rightarrow 2^8 = 8\) bits
Θέλω: \(A \times B + C\)
\(A \times B: [-128, 105]\)
\(A \times B + C: [-256, 232] \Rightarrow 256 + 232 + 1 = 489\) τιμές
Άρα θέλω 9 bits για να χωράω το [δυσανάγνωστο] AD.
[Σχήμα (επάνω δεξιά): βέλη από A4 A3 A2 A1 A0 (5 bit), B3 B2 B1 B0 (4 bit) και C7 C6 C5 C4 C3 C2 C1 C0 (8 bit) προς κουτί με την ένδειξη 17.]
[Σχήμα: τσιπ μνήμης με διευθύνσεις A16…A0, έξοδο δεδομένων D8…D0 και σήματα ελέγχου CS̄ και OE̅· κάτω από τις διευθύνσεις γράφονται A4 A3 A2 A1 A0 B3 B2 B1 B0 C7 C6 C5 C4 C3 C2 C1 C0.]
20250625_191159.jpg¶
[κομμένο: πάνω άκρο] αριθμό εξόδων. Σαν έχουμε 4 εξόδους [δυσανάγνωστο] bit ανά λέξη 4 bit.
• Για να υπολ. το μέγεθος της ROM σε bytes: Μέγεθος ROM σε bit = Αριθμός λέξεων × Αριθμός bit ανά λέξη = 8 × 4 = 32. Διαιρούμε με το 8 για να το βρούμε σε bytes: Μέγεθος ROM σε bytes: Μέγεθος σε bit / 8 = 32 / 8 = 4 bytes
[Σχήμα: τμήμα διαγράμματος καταστάσεων στο δεξί περιθώριο, κομμένο· διακρίνονται ετικέτες 1 και 0]
Σχεδιάστε έναν μετρητή που μεταβαίνει από το 0 μέχρι το 5. Δεν έχετε [δυσανάγνωστο].
Λύση: Ορίζουμε τις εξόδους Q₂Q₁Q₀ για την τρέχουσα κατάσταση. Στον επόμενο παλμό [δυσανάγνωστο] πρέπει να προκύψουν D₂D₁D₀ για την επόμενη κατάσταση.
Πίνακας καταστάσεων:
| Τρέχουσα (Q₂Q₁Q₀) | Επόμενη (D₂D₁D₀) |
|---|---|
| 000 (0) | 001 (1) |
| 001 (1) | 010 (2) |
| 010 (2) | 011 (3) |
| 011 (3) | 100 (4) |
| 100 (4) | 101 (5) |
| 101 (5) | 000 (0) |
| 110 (6) | 000 (0) |
| 111 (7) | 000 (0) |
Πίνακας Αληθείας για D₂, D₁, D₀:
| Q₂Q₁Q₀ | D₂D₁D₀ |
|---|---|
| 000 | 001 |
| 001 | 010 |
| 010 | 011 |
| 011 | 100 |
| 100 | 101 |
| 101 | 000 |
| 110, 111 | 000 |
Απλοποιούμε μέσω K-Map.
D₀ = ¬Q₂¬Q₁[δυσανάγνωστο]Q₀ + [δυσανάγνωστο]¬Q₂Q₁¬Q₀ + [δυσανάγνωστο]¬Q₀ + [δυσανάγνωστο]Q₂[δυσανάγνωστο]Q₁[δυσανάγνωστο]Q₀
Μια πιο καθαρή μορφή: D₀ = ¬Q₀(¬Q₂[δυσανάγνωστο]Q₁ + Q₂¬Q₁) + ¬Q₂Q₁¬Q₀
Σημείωση: η φωτογραφία περιέχει χειρόγραφες απαντήσεις φοιτητή.
20250625_191210.jpg¶
\(D_1 = \neg Q_2 Q_0 + \neg Q_2 Q_1 \neg Q_0\) Μια πιο καθαρή μορφή:
\(D_1 = \neg Q_2 (Q_0 + Q_1 \neg Q_0)\)
\(D_2 = Q_1 Q_0 + Q_2 \neg Q_1 \neg Q_0\) Μια πιο καθαρή μορφή:
\(D_2 = Q_1 Q_0 + Q_2 \neg Q_1 \neg Q_0\)
Χρησιμοποιούμε 3 D flip-flops (για \(Q_2, Q_1, Q_0\))
- ~~D flip-flops~~ λογικές πύλες (AND, OR, NOT) για την υλοποίηση των \(D_2, D_1, D_0\).
[Σχήμα: χειρόγραφο λογικό κύκλωμα με πύλες AND, OR, NOR και αντιστροφέα (NOT), με ετικέτες εισόδων D2, Q1, Q0· τροφοδοτεί τρία D flip-flops με εξόδους Q2, Q1, Q0 και εισόδους ρολογιού C συνδεδεμένες σε κοινή γραμμή με σύμβολο γείωσης.]
Σχεδίασε το απλούστερο δυνατό ακολουθιακό κύκλωμα που περιγράφεται από το παρακάτω διάγραμμα καταστάσεων, χρησιμοποιώντας D flip-flops.
Σημείωση: η φωτογραφία περιέχει χειρόγραφες απαντήσεις φοιτητή.