Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική και Εφαρμογές» Αρχές Ψηφιακής Τεχνολογίας Σχεδιασμός σύνθετων συστημάτων Γιάννης Βογιατζής 28-29
Βασικές λογικές πύλες = Driver = AND = + OR = XOR = Inverter = ( ) NAND = (+) NOR = XNOR 2
Σχεδιασμός συνδυαστικής Λογικής A) Περιγραφή προβλήματος is if a is, or b and c are. z is if b or c is to, but not both, or if all are. D) Ελαχιστοποίηση εξισώσεων a bc z bc a = a + bc z = ab + b c + bc B) Πίνακας αληθείας Inputs Outputs a b c z a b c C) Εξισώσεις εξόδου = a'bc + ab'c' + ab'c + abc' + abc z = a'b'c + a'bc' + ab'c + abc' + abc E) Υλοποίηση z 3
Σχεδιασμός ακολουθιακής λογικής A) Περιγραφή προβλήματος C) Υλοποίηση D) Πίνακας καταστάσεων Κατασκευή διαιρέτη συχνότητας Τροποποίηση του ρολογιού ώστε να εμφανίζει σε κάθε τέσσερεις παλμούς ρολογιού a= B) Διάγραμμα καταστάσεων = a= = 3 a= a Combinational logic Q Q State register I I I I Inputs Outputs Q Q a I I a= a= a= a= 2 = = a= 4
Σχεδιασμός ακολουθιακής λογικής (cont.) I QQ a E) Ελαχιστοποίηση Συναρτήσεων εξόδου ) Συνδυαστική λογική I = Q Qa + Qa + QQ a I QQ a I = Qa + Q a I a QQ = QQ I Q Q 5
Παράδειγμα: Φανάρι πεζών Σε διάβαση πεζών, το φανάρι των αυτοκινήτων είναι γενικά πράσινο. Οι πεζοί πατούν το κουμπί «Π» (Πεζός) προκειμένου να περάσουν το δρόμο. Όταν πιέζεται το «Π» τότε ανάβει το πορτοκαλί για τα αυτοκίνητα το οποίο διαρκεί λεπτό. Μετά από ένα λεπτό, ανάβει κόκκινο για τα αυτοκίνητα και πράσινο για τους πεζούς το οποίο διαρκεί λεπτό. Μετά το πέρας του λεπτού, ανάβει κόκκινο για τους πεζούς που διαρκεί λεπτό (ενώ για τα αυτοκίνητα είναι ακόμη κόκκινο) Στη συνέχεια ανάβει πράσινο για τα αυτοκίνητα. Θεωρήστε ότι όταν το φανάρι είναι πορτοκαλί ή κόκκινο για τα αυτοκίνητα, δε μπορεί να πατηθεί το κουμπί «Π». διαθέτουμε μια μονάδα (ένα απαριθμητή) ο οποίος μπορεί να μηδενιστεί με ένα σήμα «rst» και να ενεργοποιήσει ένα σήμα «ΕΝΑΛΕΠΤΟ» μετά από ένα λεπτό. Ζητείται η υλοποίηση συστήματος που ικανοποιεί τα ανωτέρω. Πιο συγκεκριμένα:. Ποιες εισόδους έχει το σύστημα, 2. Πόσες (το λιγότερο) καταστάσεις έχει 3. Πόσα flip flop χρειάζονται για να υλοποιηθεί ο καταχωρητής κατάστασης; 4. Σχεδιάστε το διάγραμμα καταστάσεων για το σύστημα 5. Υλοποιήστε το σύστημα σε επίπεδο πυλών 6
Σύνθετα συστήματα inite State Machine with Datapath (SMD) eternal control inputs controller datapath control inputs eternal data inputs datapath controller net-state and control logic datapath registers datapath control outputs state register functional units eternal control outputs eternal data outputs controller and datapath Μέσα στο controller and datapath Πώς περιγράφω την κίνηση των δεδομένων στο datapath? Ενεργοποιώ κατάλληλα control σήματα 7
Παράδειγμα σύνθετου συστήματος () Γέφυρα που μετατρέπει 4-bit bus σε 8-bit bus Converts two 4-bit inputs, arriving one at a time over data_in along with a rd_in pulse, into one 8-bit output on along with a rd_out pulse. Problem Specification Sen der rd_in clock data_in(4) rd_out (8) Re cei ver 8
Παράδειγμα σύνθετου Συστήματος (2) Πόσες εισόδους; Πόσες εξόδους; Πόσες καταστάσεις; Πόσα flip flop; Δύο τμήματα: Controller Datapath Problem Specification Sen der rd_in clock data_in(4) rd_out (8) Re cei ver 9
Παράδειγμα σύνθετου συστήματος (3) Γέφυρα που μετατρέπει 4-bit bus σε 8-bit bus Converts two 4-bit inputs, arriving one at a time over data_in along with a rd_in pulse, into one 8-bit output on along with a rd_out pulse. Problem Specification SMD Sen der rd_in clock data_in(4) rd_in= Waitirst4 rd_in= WaitSecond4 Send8Start =data_hi & data_lo rd_out= rd_in= Recirst4Start data_lo=data_in rd_in= rd_in= RecSecond4Start data_hi=data_in rd_in= Send8End rd_out= rd_out (8) rd_in= Recirst4End rd_in= RecSecond4End Re cei ver Inputs rd_in: bit; data_in: bit[4]; Outputs rd_out: bit; :bit[8] Variables data_lo, data_hi: bit[4];
Παράδειγμα σύνθετου συστήματος (4) (a) Controller rd_in= Waitirst4 WaitSecond4 rd_in= Recirst4Start data_lo_ld= RecSecond4Start data_hi_ld= rd_in= Recirst4End rd_in= rd_in= rd_in= rd_in= RecSecond4End Send8Start _ld= rd_out= Send8End rd_out= rd_in clk data_in(4) rd_out to all registers _ld (b) Datapath data_hi_ld data_hi data_lo data_lo_ld
Παράδειγμα σύνθετου συστήματος (5) Datapath Πόσες εισόδους; Πόσες εξόδους; Πόσα flip flop; Controller Πόσες εισόδους; Πόσες εξόδους; Πόσες καταστάσεις; Πόσα flip flop; Πίνακας καταστάσεων Πόσες στήλες; Πόσες γραμμές; rd_in clk data_in(4) (a) Controller rd_in= Waitirst4 rd_in= WaitSecond4 rd_in= rd_in= Send8Start _ld= rd_out= to all registers _ld (b) Datapath data_hi_ld Recirst4Start data_lo_ld= rd_in= RecSecond4Start data_hi_ld= data_hi data_lo Send8End rd_out= rd_in= Recirst4End rd_in= RecSecond4End data_lo_ld rd_out 2
Παράδειγμα σύνθετου συστήματος (6) Rd_in Q2 Q Q rdin Q2* Q* Q* # #2 #3 #4 #5 #6 #7 #8 #9 # # #2 #3 #4 #5 #6 Q2 Q Q rd_in clk data_in(4) (a) Controller rd_in= Waitirst4 rd_in= WaitSecond4 rd_in= rd_in= Send8Start _ld= rd_out= to all registers _ld (b) Datapath data_hi_ld Recirst4Start data_lo_ld= rd_in= RecSecond4Start data_hi_ld= data_hi data_lo Send8End rd_out= rd_in= Recirst4End rd_in= RecSecond4End data_lo_ld rd_out 3
Παράδειγμα σύνθετου συστήματος (7) rd_in Q2 Q Q d_h_ ld # #2 #3 #4 #5 #6 #7 #8 #9 # # #2 #3 #4 #5 #6 d_l_ ld d_o_ ld rd_ out rd_in clk data_in(4) (a) Controller rd_in= Waitirst4 rd_in= WaitSecond4 rd_in= rd_in= Send8Start _ld= rd_out= Recirst4Start data_lo_ld= rd_in= RecSecond4Start data_hi_ld= Send8End rd_out= rd_in= Recirst4End rd_in= RecSecond4End rd_out to all registers _ld (b) Datapath data_hi_ld data_hi data_lo data_lo_ld 4