6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή
Εισαγωγή Η σχεδίαση ενός ψηφιακού συστήµατος ως ακολουθιακή µηχανή είναι εξαιρετικά δύσκολη Τµηµατοποίηση σε υποσυστήµατα µε δοµικές µονάδες: Καταχωρητές Αποκωδικοποιητές Πολυπλέκτες Αριθµητικά Κυκλώµατα Λογική Ελέγχου 2
Σηµειογραφία Οι καταχωρητές θεωρούνται οι βασικές δοµικές µονάδες ενός συστήµατος σε επίπεδο µεταφοράς καταχωρητών RTL Λειτουργίες µεταφοράς καταχωρητών Ολίσθηση Μέτρηση Μηδενισµός Φόρτωση Ροή πληροφορίας Σχεδίαση Συστήµατος Καταχωρητές Λειτουργίες Έλεγχος ροής Αλλαγή περιεχοµένων Μεταφορά Αύξηση - Μείωση 3
Λειτουργίες Οι λειτουργίες ελέγχονται από σήµατα ελέγχου που καθορίζουν την ακριβή ακολουθία τους και που εξαρτώται από προηγούµενα αποτελέσµατα Καταχωρητής Α Μονάδα ελέγχου Συνδυαστικό κύκλωµα Καταχωρητής C Καταχωρητής Β Η µονάδα ελέγχου είναι µία ακολουθιακή µηχανή καταστάσεων µε πολλές εξόδους 4
Μεταφορά Πληροφορίας R1 R1 00001111 10110011 00001111 00001111 R2 R2 R2 <= R1 Όλες οι µεταφορές γίνονται σε ακµές ρολογιού οι οποίες δεν συµπεριλαµβάνονται στους συµβολισµούς. Υπό συνθήκη µεταφορά: "If (T1=1) then R2 <= R1" Η συνθήκη ελέγχεται από την µονάδα ελέγχου Η µεταφορά συµβαίνει στην επόµενη ακµή ρολογιού Υπό συνθήκη πολλαπλή µεταφορά: "If (T1=1) then (R2 <= R1, R1 <= R2)" 5
Λειτουργίες Μεταφορές Αριθµητικές Ολισθήσεις Συνδυασµοί Λογικές 6
Πράξεις Καταχωρητών Ένα ψηφιακό κύκλωµα µπορεί να οριστεί από τους καταχωρητές που περιέχει και τις πράξεις που εκτελούνται πάνω στα δεδοµένα. Ο όρος καταχωρητής µε την ευρύτερη του έννοια περιλαµβάνει καταχωρητές αποθήκευσης, καταχωρητές ολίσθησης, µετρητές και µεµονωµένα flip flops. 7
κατάστασης Αθροιστές πολυπλέκτες αποκωδικοποιητές ολισθητές Σύγχρονο ακολουθιακό κύκλωµα που υλοποιεί κάποιον αλγόριθµο υλικού Διάγραµµα µηχανής κατάστασης (ASM Chart) 8
Διαγράµµατα ASM Περιγράφουν την αλληλουχία γεγονότων στον χρόνο Μοιάζουν µε συµβατικά διαγράµµατα καταστάσεων Κατάσταση Απόφαση Συνθήκη 9
Κουτί κατάστασης Όνοµα κατάστασης Κωδικός Μηδενισµός Καταχωρητή (συµβαίνει στην επόµενη ακµή ρολογιού) Ενεργοποίηση σήµατος Υποδεικνύει την ενεργοποίηση του κατάλληλου σήµατος πριν την ερχόµενη ακµή 10
Κουτί Απόφασης Περιγράφει την επίδραση µίας εισόδου στο υποσύστηµα ελέγχου 11
Κουτί Συνθήκης Μοίαζει µε κουτί κατάστασης αλλά ακολουθεί ένα κουτί απόφασης (έχει στρογγυλεµένες γωνίες) Ο µηδενισµός θα συµβεί στην επόµενη ακµή του ρολογιού Λειτουργίες µονάδας ελέγχου (µεταφορές καταχωρητών παραλείπονται) 12
ASM Block Αποτελείται από ένα κουτί κατάστασης και όσα κουτιά απόφασης/συνθήκης απαιτούνται στις εξόδους του Περιγράφει µία κατάσταση της µηχανής στην διάρκεια ενός παλµού ρολογιού 13
Αντιστοίχιση µε Διάγραµµα 14
Θέµατα Χρονισµού Τα ffs της Μονάδας Επεξεργασίας Δεδοµένων και της Μονάδας Ελέγχου χρονίζονται από το ίδιο ρολόι. Οι είσοδοι µπορούν να είναι σύγχρονοι ή ασύγχρονοι Η αλγοριθµική µηχανή κατάστασης εµπεριέχει και στοιχεία χρονισµού Κάθε µπλοκ αντιστοιχεί σε ένα κύκλο ρλογιού 15
Διάγραµµα ASMD Algorithmic State Machine and DataPath Δεν περιλαµβάνει λειτουργίες καταχωρητών στα κουτιά κατάστασης Τα κουτιά συνθήκης δείχνουν τα σήµατα τις λειτουργίες των καταχωρητών Οι ακµές σηµειώνονται µε λειτουργίες καταχωρητών ταυτόχρονες µε την µετάβαση καταστάσεων Το διάγραµµα ASMD διαµερίζει ένα σύστηµα σε Επεξεργασία Δεδοµένων και Μονάδα Ελέγχου 16
Δηµιουργία Διαγράµµατος ASMD 1. Δηµιουργία διαγράµµατος ASM µε τις καταστάσεις µόνο και τα σήµατα εισόδου που προκαλούν µεταβάσεις. 2. Μετατροπή του διαγράµµατος ASM σε ASMD σηµειώνοντας στις ακµές του ASM διαγράµµατος τις λειτουργίες των καταχωρητών. 3. Μετατροπή του διαγράµµατος ASMD µε προσθήκη των σηµάτων ελέγχου που παράγονται από τον ελεγκτή και προκαλούν τις λειτουργίες των καταχωρητών. 17
Παράδειγµα ASMD Μονάδα Επεξεργασίας Δεδοµένων Σήµα Start = 1 ξεκινάει την λειτουργία του συστήµατος Ε, F : JK Flip Flops A[3..0] : Μετρητής Α = 0 Ε = 0 Σε κάθε επόµενο κύκλο Α = Α+1 Αν Α 2 = 0 => Ε=0, µετρηση Αν Α 2 = 1 => Ε=1 Αν Α 3 = 0 => µέτρηση Αν Α 3 = 1 => F=1, τερµατισµός 18
Παράδειγµα ASMD Σήµατα Ελέγχου Είσοδοι Μπλοκ Διάγραµµα 19
Παράδειγµα ASMD Ασύγχρονο reset Τα σήµατα ελέγχου δεν περιγράφονται σε αυτό το διάγραµµα ASMD Σήµατα ελέγχου τύπου Mealy (µε συνθήκη µετά απο κουτί απόφασης) Σήµατα ελέγχου τύπου Moore (χωρίς συνθήκη αµέσως µετά από κουτί κατάστασης) Εισάγονται σε κουτιά συνθήκης 20
Παράδειγµα ASMD Συµβαίνει σύγχρονα µε το ρολόι Σύγχρονο reset 21
Ασύγχρονο reset Παράδειγµα ASMD Τα σήµατα ελέγχου τύπου Moore µπαίνουν στα κουτιά κατάστασης Τα σήµατα ελέγχου τύπου Mealy µπαίνουν στα κουτιά συνθήκης Ολοκληρωµένη ASMD µε Ασύγχρονο reset 22
Το σύστηµα ήταν σε λειτουργία πριν την S_1 και δέχθηκε το σήµα Start Παράδειγµα ASMD Χρονική ακολουθία ελέγχου Οι αλλαγές γίνονται ένα κύκλο µετά 23
Παράδειγµα ASMD Και εδώ αναµένονται κάποιες πύλες ΚΑΙ Ο µετρητής αυξάνεται µε κάθε παλµό ρολογιού όταν είναι στην S_1 Ο µετρητής µηδενίζεται όταν είναι στην S_idle και Start=1 24
Παράδειγµα ASMD Εναλλακτική Αναπαράσταση Μεταφοράς Καταχωρητή 25
Παράδειγµα ASMD Πίνακας Κωδικοποίηση µε 2 bits S_idle <= 00 S_1 <= 01 S_2 <= 11 Χρήση D-FFs Η σχεδίαση µπορεί να γίνει µε τις τεχνικές σχεδίασης ακολουθιακών κυκλωµάτων 26
Παράδειγµα ASMD Απαιτούνται χάρτες 5 µεταβλητών Οι συναρτήσεις µπορούν να εξαχθούν από τον πίνακα απευθείας DG1 = S_1 A 2 A 3 DG0 = Start S_idle+S_1 27
Παράδειγµα ASMD Μονάδα Ελέγχου Παραδείγµατος 28
Παράδειγµα 2: Πολλαπλασιαστής Ο ακολουθιακός πολλαπλασιαστής βασίζεται σε έναν ολισθητή και έναν αθροιστή Έχει µικρό κόστος σε υλικό Απαιτεί πολλαπλούς κύκλους Διαδοχικές προσθέσεις και ολισθήσεις Μήκος n+n Προσθέσεις Αριστερές Ολισθήσεις 29
Παράδειγµα 2: Πολλαπλασιαστής Βήµα 1: 1 ο µερικό γινόµενο και πρόσθεση στα 5 πιο σηµαντικά ψηφία του αποτελέσµατος Ολισθητής Αποτελέσµατος 0 0 0 0 0 Χ Χ Χ Χ Χ + 1 0 1 1 1 1 0 1 1 1 Χ Χ Χ Χ Χ 30
Παράδειγµα 2: Πολλαπλασιαστής Βήµα 2: Ολίσθηση µερικού αποτελέσµατος προς τα δεξιά Ολισθητής Αποτελέσµατος 1 0 1 1 1 Χ Χ Χ Χ Χ 0 1 0 1 1 1 Χ Χ Χ Χ 31
Παράδειγµα 2: Πολλαπλασιαστής Βήµα 3: 2 ο µερικό γινόµενο και πρόσθεση στα 5 πιο σηµαντικά ψηφία του αποτελέσµατος Ολισθητής Αποτελέσµατος 0 1 0 1 1 1 Χ Χ Χ Χ + 1 0 1 1 1 Κρατούµενο 1 0 0 0 1 0 1 0 0 0 0 32
Παράδειγµα 2: Πολλαπλασιαστής Βήµα 4: Ολίσθηση µερικού αποτελέσµατος προς τα δεξιά Ολισθητής Αποτελέσµατος 1 0 0 0 1 0 1 Χ Χ Χ Χ 1 0 0 0 1 0 1 Χ Χ Χ 33
Παράδειγµα 2: Πολλαπλασιαστής Βήµα 5-6: Το επόµενο µερικό γινόµενο είναι µηδενικό οπότε έχουµε µόνο ολίσθηση µερικού αποτελέσµατος προς τα δεξιά Ολισθητής Αποτελέσµατος 1 0 0 0 1 0 1 Χ Χ Χ 0 1 0 0 0 1 0 1 Χ Χ 34
Παράδειγµα 2: Πολλαπλασιαστής Βήµα 7-8: Το επόµενο µερικό γινόµενο είναι µηδενικό οπότε έχουµε µόνο ολίσθηση µερικού αποτελέσµατος προς τα δεξιά Ολισθητής Αποτελέσµατος 0 1 0 0 0 1 0 1 Χ Χ 0 0 1 0 0 0 1 0 1 Χ 35
Παράδειγµα 2: Πολλαπλασιαστής Βήµα 9: 5 ο µερικό γινόµενο και πρόσθεση στα 5 πιο σηµαντικά ψηφία του αποτελέσµατος Ολισθητής Αποτελέσµατος 0 0 1 0 0 0 1 0 1 Χ + 1 0 1 1 1 Κρατούµενο 0 1 1 0 1 1 0 1 0 1 Χ 36
Παράδειγµα 2: Πολλαπλασιαστής Βήµα 10: Ολίσθηση µερικού αποτελέσµατος προς τα δεξιά Ολισθητής Αποτελέσµατος 1 1 0 1 1 0 1 0 1 Χ Τελικό αποτέλεσµα 0 1 1 0 1 1 0 1 0 1 37
Παράδειγµα 2: Πολλαπλασιαστής Παρατήρηση 1 η : Κάθε φορά µόνο ένα δυαδικό ψηφίο του πολλαπλασιαστή µας χρειάζεται. Παρατήρηση 2 η : Το λιγότερο σηµαντικό µέρος του αποτελέσµατος γεµίζει σταδιακά. Αποθήκευση του πολλαπλασιαστή στο λιγότερο σηµαντικό τµήµα του αποτελέσµατος Παρατήρηση 3 η : Μετά από κάθε 2 ο βήµα το λιγότερο σηµαντικό ψηφίο του πολλαπλασιαστή είναι άχρηστο 0 0 0 0 0 Χ Χ Χ Χ Χ Ολισθητής Αποτελέσµατος 38
Παράδειγµα 2: Πολλαπλασιαστής Σήµα εκκίνησης Μερικό γινόµενο Πολλαπλασιαστέος Πολλαπλασιαστής Μετρητής βηµάτων Σήµατα κατάστασης Σήµατα ελέγχου Κρατούµενο 39
Παράδειγµα 2: Πολλαπλασιαστής Μονάδα Επεξεργασίας Δεδοµένων Ελέγχεται για µηδενισµό 40
Παράδειγµα 2: Πολλαπλασιαστής Μονάδα Επεξεργασίας Δεδοµένων 41
Παράδειγµα 2: Πολλαπλασιαστής 42
Παράδειγµα 2: Πολλαπλασιαστής Κωδικοποίηση καταστάσεων 43
Παράδειγµα 2: Πολλαπλασιαστής Σχεδίαση µε καταχωρητή ακολουθίας και αποκωδικοποιητή Χρήση καταχωρητή για τις καταστάσεις Συµπεριλαµβάνει και πύλες για την µετάβαση των καταστάσεων Χρήση αποκωδικοποιητή για παραγωγή ενός σήµατος για κάθε κατάσταση (όχι για on-hot) 44
Παράδειγµα 2: Πολλαπλασιαστής Πίνακας Δυαδική Κωδικοποίηση Αντί για χάρτες χρησιµοποιούµε αποκωδικοποιητή 45
Παράδειγµα 2: Πολλαπλασιαστής Κάθε µία έξοδος αντιστοιχεί σε µία κατάσταση η οποία είναι ενεργή όταν η έξοδος είναι στην µονάδα Περιορίζει την τυχαία λογική που παράγεται από τους χάρτες karnaugh 46
Παράδειγµα 2: Πολλαπλασιαστής Ready = T 0 47
Παράδειγµα 2: Πολλαπλασιαστής 48
Παράδειγµα 2: Πολλαπλασιαστής Load_regs = Start T 0 49
Παράδειγµα 2: Πολλαπλασιαστής Decr_P = T 1 50
Παράδειγµα 2: Πολλαπλασιαστής Add_regs = Q 0 T 1 51
Παράδειγµα 2: Πολλαπλασιαστής Shift_regs = T 2 52
Παράδειγµα 2: Πολλαπλασιαστής 53
Παράδειγµα 2: Πολλαπλασιαστής D G1 = T 1 54
Παράδειγµα 2: Πολλαπλασιαστής D G0 = T 0 Start +T 2 Zero' 55
Παράδειγµα 2: Πολλαπλασιαστής Μονάδα Ελέγχου 56
Παράδειγµα 2: Πολλαπλασιαστής Εναλλακτική Σχεδίαση: Κωδικοποίηση One-Hot Μόνο ένα flip flop είναι στην µονάδα σε οποιαδήποτε κατάσταση και χρονική στιγµή Απλή σχεδίαση Μειωµένος φόρτος σχεδίασης Δεν απαιτείται αποκωδικοποιητής 57
Παράδειγµα 2: Πολλαπλασιαστής (One-Hot) G 0 => S_idle G 1 => S_add G 2 => S_shift D G0 => G 0 Start'+G 2 Zero D G1 => G 0 Start+G 2 Zero' D G2 => G 1 58
Παράδειγµα 2: Πολλαπλασιαστής (One-Hot) 59
Σχεδίαση µε Πολυπλέκτες Οι λογικές πύλες που καθορίζουν την επόµενη κατάσταση µπορούν να αντικατασταθούν από πολυπλέκτες Πολυπλέκτες Επόµενη Κατάσταση Καταχωρητής Παρούσα Κατάσταση Αποκωδικοποιητής Κανονική Δοµή για Υλοποίηση 60
Παράδειγµα Καταστάσεις Σήµατα Ελέγχου 61
Παράδειγµα Συναρτήσεις καθορισµού της επόµενης τιµής του ff για κάθε κατάσταση Δηµιουργία σηµάτων ελέγχου S_00, S_01, S_10, S_11 Η επόµενη κατάσταση επιλέγεται κατευθείαν από τους πολυπλέκτες και από τις εισόδους ελέγχου 62
Παράδειγµα S_00 w = 0 w = 1 S_00 S_01 Από την κατάσταση 00 όπου και αν πάµε η G1 παραµένει στο 0 και η G0 εξαρτάται από το w Η µετάβαση των καταστάσεων καθορίζει τις εισόδους των πολυπλεκτών 63
Παράδειγµα S_01 x = 0 x = 1 S_11 S_10 Από την κατάσταση 01 όπου και αν πάµε η G1 πάει στο 1 και η G0 εξαρτάται από το x Η µετάβαση των καταστάσεων καθορίζει τις εισόδους των πολυπλεκτών 64
S_10 y = 1, z = 1 y = 0 y = 1 S_11 S_00 z = 0 S_10 Παράδειγµα G 1 : 1 => 0 για y = 0 1 => 1 για y = 1 D G1 = y G 0 : 0 => 0 για y = 0, yz = 10 0 => 1 για yz = 11 D G0 = yz Η µετάβαση των καταστάσεων καθορίζει τις εισόδους των πολυπλεκτών 65
Παράδειγµα S_11 y = 0, z = 0 y = 1 y = 0 S_11 S_10 z = 1 S_01 Με όµοιο τρόπο... Με συστηµατικό τρόπο µπορούµε να καθορίσουµε οποιαδήποτε µετάβαση. Πίνακας συνθηκών 66
Παράδειγµα Πίνακας συνθηκών 67
Παράδειγµα Μία οµάδα για κάθε είσοδο του/των πολυπλεκτών 68
Παράδειγµα Περίπτωση (α): Μετάβαση σταθερή και ανεξάρτητη συνθήκης 69
Παράδειγµα Περίπτωση (β): Τοποθετούµε στην είσοδο του πολυπλέκτη την συνάρτηση που δίνει µονάδα (αλλιώς θα είναι 0) 70
Παράδειγµα Περίπτωση (β): Τοποθετούµε στην είσοδο του πολυπλέκτη την συνάρτηση που δίνει µονάδα (αλλιώς θα είναι 0) 71
Παράδειγµα Περίπτωση (β): Τοποθετούµε στην είσοδο του πολυπλέκτη την συνάρτηση που δίνει µονάδα (αλλιώς θα είναι 0) 72
Παράδειγµα Περίπτωση (β): Τοποθετούµε στην είσοδο του πολυπλέκτη την συνάρτηση που δίνει µονάδα (αλλιώς θα είναι 0) 73
Παράδειγµα Περίπτωση (β): Τοποθετούµε στην είσοδο του πολυπλέκτη την συνάρτηση που δίνει µονάδα (αλλιώς θα είναι 0) 74
Παράδειγµα (2) Προδιαγραφές: Σχεδίαση ενός κυκλώµατος που θα µετράει τους άσσους σε έναν καταχωρητή. Θα γίνει χρήση πολυπλεκτών. R1 = 0 0 Καταχωρητής Άσσων (ολίσθησης) Διακοπή µέτρησης όταν R1=0 Ολισθαίνουν ένα-ένα τα δυαδικά ψηφία από τον R1 στο flip flop E. Καταχωρητής Μέτρησης (µε παράλληλη φόρτωση) 75
Παράδειγµα (2) Όταν µείνουν µηδενικά η διαδικασία διακόπτεται Αρχικά R2=0 76
Παράδειγµα (2) Πίνακας Συνθηκών Πολυπλεκτών 77
Παράδειγµα (2) 78