Λογική Σχεδίαση — Σεπτέμβριος 2026 (Ομάδα Β)¶
Μεταγραφή από τη φωτογραφία PXL_20260917_0734452402.jpg της εξέτασης Σεπτεμβρίου 2026, Ομάδα Β.
PXL_20260917_0734452402.jpg¶
UNIVERSITY OF PATRAS — ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Πέμπτη 17/9/2026 — Διάρκεια: 2hrs Εξέταση μαθήματος: «Λογική Σχεδίαση» Εξάμηνο: Εαρινό, ακαδ. έτος 2025-26 Εξεταστική περίοδος Σεπτεμβρίου Ομάδα Β
| Επώνυμο | Όνομα | ΑΜ | Υπογραφή |
|---|---|---|---|
Θέματα
- Σχεδιάστε ένα κύκλωμα μετατροπής ενός μη προσημασμένου 4bit αριθμού με κωδικοποίηση Gray και περιττό αριθμό «1» σε δυαδικό (20 μονάδες)
Υπενθύμιση: στον κώδικα Gray οι εναλλαγές των τιμών είναι κατοπτρικές, δηλ. 0→1→1→[δυσανάγνωστο]
- Σχεδιάστε σύγχρονο ψηφιακό κύκλωμα που να προσθέτει/αφαιρεί παράλληλα δύο 4bit μη προσημασμένους αριθμούς Α και Β, όπου A=A₀A₁A₂A₃ (A₀: LSB) και B=B₀B₁B₂B₃ (B₀: LSB). Χρησιμοποιήστε D-FFs ως καταχωρητές. Τα δεδομένα S (=AB) έρχονται σειριακά όπως φαίνεται στο παρακάτω σχήμα (20 μονάδες)
[Σχήμα: Ταινία σειριακών δεδομένων S με την ακολουθία ..., B₀, A₀, B₃, A₃, B₂, A₂, B₁, A₁, B₀, A₀, B₃, A₃, ...· πάνω από αυτήν βέλος «S»]
- Δίνεται το σύγχρονο ακολουθιακό κύκλωμα του διπλανού σχήματος υλοποιημένο με JK FFs.
i. Να προσδιοριστεί και να αποδειχθεί το διάγραμμα καταστάσεων του κυκλώματος. Είναι κύκλωμα με δυνατότητα αυτόματης διόρθωσης; (25 μονάδες)
ii. Να υλοποιηθεί με T FFs (10 μονάδες)
[Σχήμα: Σύγχρονο κύκλωμα με τρία JK flip-flops (FF1, FF2, FF3) και κοινό είσοδο CLK· σταθερή είσοδος «1» στο J του FF1 και «0» στο J του FF2· πύλες OR, NOR και XOR/NOR συνδεδεμένες στις εξόδους Q και Q̄ των FF, με ανατροφοδότηση από την έξοδο του FF3 προς τα πίσω· ορισμένες συνδέσεις δυσανάγνωστες]
- Στο διπλανό σχήμα δίνεται το διάγραμμα μιας μηχανής πεπερασμένων καταστάσεων. Ζητούνται:
i. Να δοθεί το σύγχρονο ακολουθιακό κύκλωμα με T FFs σύμφωνα με το μοντέλο Moore (20 μονάδες)
ii. Να ελεγχθεί η συμπεριφορά του FSM όταν βρεθεί στην κατάσταση 001 (5 μονάδες)
[Σχήμα: Διάγραμμα καταστάσεων μηχανής Moore με καταστάσεις 110, 100, 011, 010, 101 και ακμές με ετικέτες εισόδου/εξόδου (π.χ. 0/0, 1/1, 1/0, 0/1)]
Δίνονται
Πίνακας αληθείας JK FF
| J | K | \(Q_t\) | \(Q_{t+1}\) |
|---|---|---|---|
| 0 | 0 | \(Q_t\) | \(Q_t\) |
| 0 | 1 | X | 0 |
| 1 | 0 | X | 1 |
| 1 | 1 | X | \(Q_t'\) |
Πίνακας αληθείας T FF
| T | \(Q_{t+1}\) |
|---|---|
| 0 | \(Q_t\) |
| 1 | \(Q_t'\) |
Καλή επιτυχία (τα θέματα επιστρέφονται)
Λύσεις (⚪ AI, μη επαληθευμένο)
Κατάσταση: ⚪ AI, μη επαληθευμένο Πηγή: λύσεις AI (antigravity-gemini, gemini-3.7-flash, sonnet), ανεξάρτητη επανάληψη και αντιπαραβολή· καμία δεν έχει ελεγχθεί από άνθρωπο
Προσοχή
Λύση από AI — ελέγξτε την· δεν έχει επαληθευτεί από άνθρωπο. Η ένδειξη «δύο λύσεις συμφωνούν» δεν σημαίνει ότι η απάντηση είναι σωστή.
AI λύσεις — 2026-09-b¶
Οι λύσεις γράφτηκαν από μοντέλα AI και δεν έχουν ελεγχθεί από άνθρωπο. Η αρίθμηση ακολουθεί το αρχείο θεμάτων.
Θέμα 1¶
Αξιοπιστία: δύο ανεξάρτητες λύσεις συμφωνούν · εμπιστοσύνη λύτη: μέτρια
Ερμηνεία: η είσοδος \(g_3g_2g_1g_0\) είναι 4-bit Gray με περιττό πλήθος «1» (οι υπόλοιπες 8 τιμές δεν εμφανίζονται ⇒ αδιάφορες)· έξοδος το δυαδικό \(b_3b_2b_1b_0\).
Μετατροπή Gray→δυαδικό: \(b_3=g_3,\ b_2=b_3\oplus g_2,\ b_1=b_2\oplus g_1,\ b_0=b_1\oplus g_0\).
Παρατήρηση: \(b_0 = g_3\oplus g_2\oplus g_1\oplus g_0\) = ισοτιμία των \(g\). Αφού το πλήθος των «1» είναι περιττό, \(b_0=1\) πάντα (η έξοδος είναι πάντα περιττός αριθμός 1,3,…,15). Επίσης \(b_1=g_3\oplus g_2\oplus g_1\) και, επειδή \(g_3\oplus g_2\oplus g_1\oplus g_0=1\), ισχύει \(b_1 = g_0'\).
Τελικές εξισώσεις (επαληθεύτηκαν με πρόγραμμα για και τις 8 έγκυρες εισόδους): $\(b_3=g_3,\quad b_2=g_3\oplus g_2,\quad b_1=g_0',\quad b_0=1\)$
| Gray | δυαδικό |
|---|---|
| 0001 | 0001 |
| 0010 | 0011 |
| 0100 | 0111 |
| 0111 | 0101 |
| 1000 | 1111 |
| 1011 | 1101 |
| 1101 | 1001 |
| 1110 | 1011 |
Κύκλωμα: 1 XOR 2 εισόδων (για \(b_2\)), 1 αναστροφέας (για \(b_1\)), σύνδεση \(b_3=g_3\) και σταθερά 1 στο \(b_0\).
Θέμα 2¶
Αξιοπιστία: λύθηκε με βάση τις φωτογραφίες του θέματος· μία λύση AI
Στη φωτογραφία PXL_20260917_0734452402.jpg, η ταινία σειριακών δεδομένων \(S\) απεικονίζει τη ροή:
$\(\dots, B_0, A_0, B_3, A_3, B_2, A_2, B_1, A_1, B_0, A_0, B_3, A_3, \dots\)$
με βέλος κατεύθυνσης προς τα δεξιά.
1. Αρχιτεκτονική και Λειτουργία¶
Ζητείται η σειριακή λήψη των ψηφίων των δύο 4-bit αριθμών \(A = A_3 A_2 A_1 A_0\) και \(B = B_3 B_2 B_1 B_0\) (όπου \(A_0, B_0\) τα LSB), η αποθήκευσή τους σε καταχωρητές με D-FFs, και η παράλληλη πρόσθεση ή αφαίρεση.
Τα δεδομένα φτάνουν εναλλάξ σε ζεύγη bit ανά τάξη μεγέθους, ξεκινώντας από τα LSB: - Παλμός 1: \(A_0\) - Παλμός 2: \(B_0\) - Παλμός 3: \(A_1\) - Παλμός 4: \(B_1\) - Παλμός 5: \(A_2\) - Παλμός 6: \(B_2\) - Παλμός 7: \(A_3\) - Παλμός 8: \(B_3\)
2. Βαθμίδα Καταχωρητών με D-FFs¶
Χρησιμοποιείται ένας σειριακός καταχωρητής ολίσθησης 8 βαθμίδων (Serial-In Parallel-Out shift register) αποτελούμενος από 8 D Flip-Flops (\(D_0 \dots D_7\)): - Η σειριακή είσοδος \(S\) συνδέεται στην είσοδο \(D\) του πρώτου FF (\(FF_0\)). - Η έξοδος \(Q_i\) συνδέεται στην είσοδο \(D_{i+1}\) του επόμενου FF. - Μετά από 8 παλμούς ρολογιού, τα bit των αριθμών είναι διαθέσιμα παράλληλα στις εξόδους: - Αριθμός \(A\): \(A_0 = Q_7, \; A_1 = Q_5, \; A_2 = Q_3, \; A_3 = Q_1\) - Αριθμός \(B\): \(B_0 = Q_6, \; B_1 = Q_4, \; B_2 = Q_2, \; B_3 = Q_0\) - Οι έξοδοι αυτές μπορούν να μανδαλωθούν σε παράλληλο καταχωρητή αποθήκευσης 8 D-FFs με σήμα φόρτωσης (Load Enable) που ενεργοποιείται στον 8ο παλμό (μέσω σύγχρονου μετρητή modulo-8).
3. Παράλληλος Προσθέτης / Αφαιρέτης 4-bit¶
Για την παράλληλη εκτέλεση της πράξης χρησιμοποιούνται 4 Πλήρεις Αθροιστές (\(\text{FA}_0, \text{FA}_1, \text{FA}_2, \text{FA}_3\)) και ένα σήμα ελέγχου λειτουργίας \(M\) (όπου \(M = 0\) για πρόσθεση \(A + B\) και \(M = 1\) για αφαίρεση \(A - B\) σε συμπλήρωμα ως προς 2): - Κάθε είσοδος \(B_i\) περνά από πύλη XOR: \(B_i^* = B_i \oplus M\). - Για \(M = 0\): \(B_i^* = B_i\) και αρχικό κρατούμενο \(C_0 = M = 0\), οπότε εκτελείται \(A + B\). - Για \(M = 1\): \(B_i^* = \overline{B_i}\) και αρχικό κρατούμενο \(C_0 = M = 1\), οπότε εκτελείται \(A + \overline{B} + 1 = A - B\). - Οι έξοδοι αθροίσματος \(S_i\) και το τελικό κρατούμενο \(C_4\) παρέχουν το αποτέλεσμα σε 1 κύκλο μετά τη σταθεροποίηση των καταχωρητών.
Θέμα 3¶
Αξιοπιστία: λύθηκε με βάση τις φωτογραφίες του θέματος· μία λύση AI
Στη φωτογραφία PXL_20260917_0734452402.jpg, το κύκλωμα περιλαμβάνει 3 σύγχρονα JK Flip-Flops (FF1, FF2, FF3) με κοινό ρολόι CLK.
i. Προσδιορισμός και Απόδειξη του Διαγράμματος Καταστάσεων¶
Από την ανάγνωση του σχηματικού: - FF1: - \(J_1 = 1\) (σταθερά) - \(K_1 = \text{NOR}(Q_2, Q_3) = (Q_2 + Q_3)' = \overline{Q}_2 \overline{Q}_3\) - FF2: - \(J_2 = Q_1 \oplus (Q_2 + Q_3)' = Q_1 \oplus (\overline{Q}_2 \overline{Q}_3)\) - \(K_2 = 0\) (σταθερά) - FF3: - \(J_3 = Q_2\) - \(K_3 = \text{XNOR}(\overline{Q}_1, \overline{Q}_2) = (\overline{Q}_1 \oplus \overline{Q}_2)' = Q_1 \odot Q_2 = Q_1 Q_2 + \overline{Q}_1 \overline{Q}_2\)
Χαρακτηριστική εξίσωση JK Flip-Flop: \(Q^+ = J \overline{Q} + \overline{K} Q\). - \(Q_1^+ = 1 \cdot \overline{Q}_1 + (Q_2 + Q_3) Q_1 = \overline{Q}_1 + Q_2 + Q_3\) - \(Q_2^+ = J_2 \overline{Q}_2 + 1 \cdot Q_2 = Q_2 + [Q_1 \oplus (\overline{Q}_2 \overline{Q}_3)]\) - \(Q_3^+ = Q_2 \overline{Q}_3 + (Q_1 \oplus Q_2) Q_3\)
Πίνακας Μεταβάσεων Καταστάσεων:¶
| Κατάσταση \(Q_1 Q_2 Q_3\) | \(J_1 K_1\) | \(Q_1^+\) | \(J_2 K_2\) | \(Q_2^+\) | \(J_3 K_3\) | \(Q_3^+\) | Επόμενη Κατάσταση \(Q_1^+ Q_2^+ Q_3^+\) |
|---|---|---|---|---|---|---|---|
| 000 | 11 | 1 | 10 | 1 | 01 | 0 | 110 |
| 001 | 10 | 1 | 00 | 0 | 01 | 0 | 100 |
| 010 | 10 | 1 | 10 | 1 | 10 | 1 | 111 |
| 011 | 10 | 1 | 10 | 1 | 10 | 1 | 111 |
| 100 | 11 | 0 | 00 | 0 | 00 | 0 | 000 |
| 101 | 10 | 1 | 10 | 1 | 00 | 1 | 111 |
| 110 | 10 | 1 | 10 | 1 | 10 | 1 | 111 |
| 111 | 10 | 1 | 10 | 1 | 11 | 0 | 110 |
Έλεγχος Αυτόματης Διόρθωσης (Self-Correction):¶
- Ο κύριος κύκλος λειτουργίας αποτελείται από τις καταστάσεις \(\{110, 111\}\): $\(110 \longrightarrow 111 \longrightarrow 110\)$
- Για όλες τις υπόλοιπες καταστάσεις:
- \(000 \longrightarrow 110\) (είσοδος στον κύκλο σε 1 βήμα)
- \(001 \longrightarrow 100 \longrightarrow 000 \longrightarrow 110\) (είσοδος στον κύκλο σε 3 βήματα)
- \(010 \longrightarrow 111\) (είσοδος στον κύκλο σε 1 βήμα)
- \(011 \longrightarrow 111\) (είσοδος στον κύκλο σε 1 βήμα)
- \(101 \longrightarrow 111\) (είσοδος στον κύκλο σε 1 βήμα)
Συμπέρασμα: Το κύκλωμα έχει δυνατότητα αυτόματης διόρθωσης, καθώς από οποιαδήποτε αρχική ή ανεπιθύμητη κατάσταση καταλήγει στον κύριο κύκλο λειτουργίας χωρίς να παγιδεύεται σε αδιέξοδο (lock-up).
ii. Υλοποίηση με T Flip-Flops¶
Στα T Flip-Flops ισχύει \(T_i = Q_i \oplus Q_i^+\). Από τον πίνακα μεταβάσεων: | \(Q_1 Q_2 Q_3\) | \(Q_1^+ Q_2^+ Q_3^+\) | \(T_1\) | \(T_2\) | \(T_3\) | |:---:|:---:|:---:|:---:|:---:| | 000 | 110 | 1 | 1 | 0 | | 001 | 100 | 1 | 0 | 1 | | 010 | 111 | 1 | 0 | 1 | | 011 | 111 | 1 | 0 | 0 | | 100 | 000 | 1 | 0 | 0 | | 101 | 111 | 0 | 1 | 0 | | 110 | 111 | 0 | 0 | 1 | | 111 | 110 | 0 | 0 | 1 |
Μέσω χαρτών Karnaugh 3 μεταβλητών (\(Q_1, Q_2, Q_3\)): - Για το \(T_1\): minterms \(\{0, 1, 2, 3, 4\}\) $\(T_1 = \overline{Q}_1 + \overline{Q}_2 \overline{Q}_3 = \overline{Q}_1 + (Q_2 + Q_3)'\)$ - Για το \(T_2\): minterms \(\{0, 5\}\) $\(T_2 = \overline{Q}_1 \overline{Q}_2 \overline{Q}_3 + Q_1 \overline{Q}_2 Q_3 = \overline{Q}_2 (\overline{Q}_1 \overline{Q}_3 + Q_1 Q_3) = \overline{Q}_2 (Q_1 \odot Q_3)\)$ - Για το \(T_3\): minterms \(\{1, 2, 6, 7\}\) $\(T_3 = Q_1 Q_2 + Q_2 \overline{Q}_3 + \overline{Q}_1 \overline{Q}_2 Q_3\)$
Θέμα 4¶
Αξιοπιστία: λύθηκε με βάση τις φωτογραφίες του θέματος· μία λύση AI
Στη φωτογραφία PXL_20260917_0734452402.jpg, το διάγραμμα καταστάσεων περιέχει 5 καταστάσεις με κωδικοποίηση 3 bit \(Q_2 Q_1 Q_0\):
\(\{110, 100, 010, 101, 011\}\).
Οι ετικέτες μεταβάσεων έχουν τη μορφή \(x / Z\) (είσοδος / έξοδος):
- Από 110: για \(x=0 \to 110\) (\(Z=0\)), για \(x=1 \to 100\) (\(Z=1\))
- Από 100: για \(x=0 \to 010\) (\(Z=0\)), για \(x=1 \to 110\) (\(Z=0\))
- Από 010: για \(x=0 \to 110\) (\(Z=1\)), για \(x=1 \to 101\) (\(Z=1\))
- Από 101: για \(x=0 \to 011\) (\(Z=1\)), για \(x=1 \to 100\) (\(Z=1\))
- Από 011: για \(x=0 \to 010\) (\(Z=1\)), για \(x=1 \to 110\) (\(Z=0\))
Οι καταστάσεις \(000, 001, 111\) είναι μη χρησιμοποιούμενες (don't care συνθήκες \(X\)).
i. Σύγχρονο Ακολουθιακό Κύκλωμα με T FFs¶
Στα T Flip-Flops ισχύει \(T_i = Q_i \oplus Q_i^+\).
Πίνακας Διέγερσης:¶
| \(Q_2 Q_1 Q_0\) | \(x\) | \(Q_2^+ Q_1^+ Q_0^+\) | \(T_2\) | \(T_1\) | \(T_0\) | \(Z\) |
|---|---|---|---|---|---|---|
| 010 | 0 | 110 | 1 | 0 | 0 | 1 |
| 010 | 1 | 101 | 1 | 1 | 1 | 1 |
| 011 | 0 | 010 | 0 | 0 | 1 | 1 |
| 011 | 1 | 110 | 1 | 0 | 1 | 0 |
| 100 | 0 | 010 | 1 | 1 | 0 | 0 |
| 100 | 1 | 110 | 0 | 1 | 0 | 0 |
| 101 | 0 | 011 | 1 | 1 | 0 | 1 |
| 101 | 1 | 100 | 0 | 0 | 1 | 1 |
| 110 | 0 | 110 | 0 | 0 | 0 | 0 |
| 110 | 1 | 100 | 0 | 1 | 0 | 1 |
| 000, 001, 111 | 0, 1 | \(XXX\) | \(X\) | \(X\) | \(X\) | \(X\) |
Ελαχιστοποίηση με Χάρτες Karnaugh (4 μεταβλητών \(Q_2, Q_1, Q_0, x\) με don't cares):¶
- Εξίσωση για το \(T_2\): $\(T_2 = \overline{Q}_1 \overline{x} + \overline{Q}_2 \overline{Q}_0 + \overline{Q}_2 x\)$
- Εξίσωση για το \(T_1\): $\(T_1 = \overline{Q}_0 x + \overline{Q}_1 \overline{x}\)$
- Εξίσωση για το \(T_0\): $\(T_0 = Q_0 x + \overline{Q}_2 Q_0 + \overline{Q}_2 x\)$
- Συνάρτηση Εξόδου \(Z\): Καθώς στο διάγραμμα οι ετικέτες στις ακμές αντιστοιχούν σε έξοδο \(Z(Q, x)\) (μορφή Mealy), η ελαχιστοποιημένη συνάρτηση εξόδου είναι: $\(Z = \overline{Q}_1 Q_0 + \overline{Q}_2 \overline{x} + Q_1 \overline{Q}_0 x\)$ (Σημείωση: Στην εκφώνηση αναφέρεται «σύμφωνα με το μοντέλο Moore». Οι καταστάσεις 100 (\(Z=0\)), 010 (\(Z=1\)) και 101 (\(Z=1\)) έχουν σταθερή έξοδο, ενώ οι καταστάσεις 110 και 011 έχουν έξοδο που εξαρτάται από το \(x\). Η λογική μεταβάσεων των flip-flops \(T_2, T_1, T_0\) παραμένει ακριβώς η ίδια).
ii. Έλεγχος Συμπεριφοράς FSM στην Κατάσταση 001¶
Ελέγχουμε τις τιμές των συναρτήσεων διέγερσης όταν το κύκλωμα βρεθεί στην μη χρησιμοποιούμενη κατάσταση \(Q_2 Q_1 Q_0 = 001\):
- Για είσοδο \(x = 0\):
- \(T_2 = \overline{0} \cdot \overline{0} + \overline{0} \cdot \overline{1} + \overline{0} \cdot 0 = 1 + 0 + 0 = 1\)
- \(T_1 = \overline{1} \cdot 0 + \overline{0} \cdot \overline{0} = 0 + 1 = 1\)
- \(T_0 = 1 \cdot 0 + \overline{0} \cdot 1 + \overline{0} \cdot 0 = 0 + 1 + 0 = 1\)
- Επόμενη κατάσταση: $\(Q_2^+ = 0 \oplus 1 = 1, \quad Q_1^+ = 0 \oplus 1 = 1, \quad Q_0^+ = 1 \oplus 1 = 0 \implies \mathbf{110}\)$
-
Έξοδος: \(Z = \overline{0} \cdot 1 + \overline{0} \cdot \overline{0} + 0 = 1\).
-
Για είσοδο \(x = 1\):
- \(T_2 = \overline{0} \cdot \overline{1} + \overline{0} \cdot \overline{1} + \overline{0} \cdot 1 = 0 + 0 + 1 = 1\)
- \(T_1 = \overline{1} \cdot 1 + \overline{0} \cdot \overline{1} = 0 + 0 = 0\)
- \(T_0 = 1 \cdot 1 + \overline{0} \cdot 1 + \overline{0} \cdot 1 = 1 + 1 + 1 = 1\)
- Επόμενη κατάσταση: $\(Q_2^+ = 0 \oplus 1 = 1, \quad Q_1^+ = 0 \oplus 0 = 0, \quad Q_0^+ = 1 \oplus 1 = 0 \implies \mathbf{100}\)$
- Έξοδος: \(Z = \overline{0} \cdot 1 + \overline{0} \cdot \overline{1} + 0 \cdot 1 = 1\).
Συμπέρασμα: Όταν το FSM βρεθεί στην κατάσταση 001: - Με είσοδο \(x = 0\), μεταβαίνει στην έγκυρη κατάσταση 110. - Με είσοδο \(x = 1\), μεταβαίνει στην έγκυρη κατάσταση 100.
Σε αμφότερες τις περιπτώσεις, το κύκλωμα εξέρχεται άμεσα (εντός ενός μόνο κύκλου ρολογιού) από την κατάσταση 001 και εντάσσεται στον κανονικό γράφο λειτουργίας των έγκυρων καταστάσεων, επιτυγχάνοντας πλήρη αυτοδιόρθωση.