ΗΥ 120 Αλγοριθμικες μηχανες καταστασεως Algorithmic State Machines – ASM 2nd part
Υλοποιηση του Ελεγκτη με Πολυπλεκτες Ενα δευτερο παραδειγμα Υλοποιηση του Ελεγκτη με Πολυπλεκτες Ενα δευτερο παραδειγμα Παραδειγμα #2
Υλοποιηση του Ελεγκτη με Πολυπλεκτες Ενα δευτερο παραδειγμα Υλοποιηση του Ελεγκτη με Πολυπλεκτες Ενα δευτερο παραδειγμα
Θεματα χρονισμου Δινεται το πιο κατω διαγραμμα ASM AVAIL Start 1 A←0 1 Εισοδος IDLE AVAIL Exit Start 1 A←0 1 Q0 Exit Exit MUL0 MUL1
Παραδειγμα Σχεδιασης: Πολλαπλασιαστης Δυαδικων Πολλαπλασιαστης θετικων δυαδικων αριθμων Παραδειγμα πολλαπλασιασμου «με το χερι» 23 10111 Πολλαπλασιαστεος 19 10011 Πολλαπλασιαστης 10111 00000 437 110110101 Γινομενο
Εναλλακτικος τροπος πολ/σμου 23 10111 Πολλαπλασιαστεος 19 10011 Πολλαπλασιαστης 000 00000 Αρχικο μερικο γινομενο 207 10111 Προσθεση πολλαπλασιαστεου επειδη το 1ο bit του πολ/στη ειναι 1 207 10111 Μερικο γινομενο μετα την προσθεση και πριν την ολισθηση 0207 010111 Μερικο γινομενο μετα την ολισθηση 23 10111 Προσθεση πολ/στεου επειδη το 2ο bit του πολ/στη ειναι 1 437 1000101 Μερικο γινομενο μετα την προσθεση και πριν την ολισθηση 1000101 Μερικο γινομενο μετα την ολισθηση 01000101 Μερικο γινομενο μετα την ολισθηση επειδη το 3ο bit του πολ/στη ειναι 0 001000101 Μερικο γινομενο μετα την ολισθηση επειδη το 4ο bit του πολ/στη ειναι 0 10111 Προσθεση πολλαπλασιαστεου επειδη το 5ο bit του πολ/στη ειναι 1 110110101 Μερικο γινομενο μετα την προσθεση και πριν την ολισθηση 0437 0110110101 Μερικο γινομενο μετα την τελικη ολισθηση Εδω εχουμε ενδιαμεση και προσωρινη υπερχειλιση
Χονδρικο διαγραμμα του Πολ/στη n-bit Πολ/στεος Πολ/στης Σηματα ελεγχου log2n = o μικροτερος ακεραιος αριθμος που υπερβαινει τον log2n
Χονδρικο διαγραμμα του Πολ/στη n-bit Πολ/στεος 10111 10011 00000 010111 1000101 01000101 001000101 110110101 0110110101 + + Πολ/στης + Σηματα ελεγχου
Εξαρτηματα του πολ/στη Καταχωρητης Β n-bit για αποθηκευση του πολ/στεου Καταχωρητης ολισθησης Q n-bits για αποθηκευση του πολ/στη και του λιγότερο σημαντικου μερους του γινομενου Καταχωρητης ολισθησης Α n-bits για αποθηκευση των μερικων γινομενων και του περισσοτερο σημαντικου μερους του γινομενου Flip-flop C με συγχρονο clear για προσωρινη αποθηκευση κρατουμενου (υπερχειλισης) Μετρητη P των log2n -bits o οποιος μετρα προς τα κατω απο το n-1 εως το 0, για να σταματησει την λειτουργια του πολ/στη. Πρεπει να εχει παραλληλη φορτωση. Μοναδα ελεγχου η οποια εχοντας ως εισοδους το σημα εναρξης GO, το σημα μηδενισμου Z του καταχωρητη Ρ (περας διαδικασιας) και την τιμη του τρεχοντος bit του πολ/στη Q0 διδει τα καταλληλα σηματα ελεγχου για φορτωση των παραγοντων και του αριθμου των bits, για προσθεση, για ολισθηση και για μηδενισμο του flip-flop C.
Διαγραμμα ASM του πολ/στη Z Q0 C← 0, A← 0 P ← n-1 A ← A+B C ← Cout C← 0, C║A║Q ← sr C║A║Q, P ← P-1 IDLE MUL0 G 1 MUL1 10111 10011 00000 010111 1000101 01000101 001000101 110110101 0110110101 Οι καταχωρητες Β και Q φορτωνονται πριν την εναρξη λειτουργιας του πολ/στη C║A║Q = καταχωρητης που προκυπτει απο τον συνδυασμο των καταχωρητων C, A και Q sr R = shift right του R
Σηματα ελεγχου του δυαδικου Πολ/στη
Σηματα ελεγχου του δυαδικου πολ/στη Z Q0 C← 0, A← 0 P ← n-1 A ← A+B C ← Cout C← 0, C║A║Q ← sr C║A║Q, P ← P-1 IDLE MUL0 G 1 MUL1
Εξαγωγη διαγραμματος καταστασεων απο το διαγραμμα ASM G=0 IDLE 00 MUL0 01 MUL1 10 G=1 Z=1 Z=0 IDLE 00 Κωδικοποιηση καταστασεων M1 M0 IDLE = 0 0 MUL0 = 0 1 MUL1 = 1 0 1 G MUL0 01 MUL1 10 1 Z Ισοδυναμο διαγραμμα καταστασεων Διαδοχη καταστασεων στο διαγραμμα ASM
Πινακας καταστασεων του υποσυστηματος ελεγχου Παρουσα Επομενη Εξοδοι κατασταση Εισοδοι κατασταση ελεγκτη Ονομα Μ1 Μ0 G Z M1 M0 IDLE MUL0 MUL1 0 0 0 X 0 0 1 0 0 IDLE 0 0 1 X 0 1 1 0 0 MUL0 0 1 X X 1 0 0 1 0 1 0 X 0 0 1 0 0 1 MUL1 1 0 X 1 0 0 0 0 1 --- 1 1 X X X X X X X IDLE 00 MUL0 01 MUL1 10 G=1 Z=1 Z=0 Απο τον πινακα καταστασεων μπορουμε να σχεδιασουμε το κυκλωμα του ελεγκτη χρησιμοποιωντας JK flip-flops (οποτε πρεπει να συμπληρωθει ο πιο πανω πινακας με τις στηλες των εισοδων των flip-flops, και να βρεθουν με την βοηθεια χαρτων Karnaugh οι εξισωσεις εισοδων των flip-flop,κ.ο.κ.) ή D flip-flops και αποκωδικοποιητη οποτε γραφουμε κατευθειαν τις εξισωσεις εισοδων τους: DM0 = M0(t+1) = IDLE•G + MUL1•Z , και DM1 = M1(t+1) = MUL0
Υλοποιηση με D flip-flops και decoder DM0 = IDLE•G + MUL1•Z , και DM1 = MUL0
Διαγραμμα ASM Ισοδυναμα κυκλωματα D Q > Clock Κατασταση Κουτι καταστασης Exit Entry 1 x 1 Entry Exit 0 Exit 1 Κουτι αποφασης 2 3 Entry 2 Entry 1 Exit Exit Entry 1 Entry 2 Συμβολη x 1 Entry Exit 0 Exit 1 Control Κουτι υπο-συνθηκη 4
Υλοποιηση του ελεγκτη με ενα D flip-flop ανα κατασταση Z Q0 C← 0, A← 0 P ← n-1 A ← A+B C ← Cout C← 0, C║A║Q ← sr C║A║Q, P ← P-1 IDLE MUL0 G 1 MUL1
Υλοποιηση του ελεγκτη με ενα D flip-flop ανα κατασταση: Εναλλακτικος τροπος DIDLE = IDLE G' + MUL1 Z D Q > IDLE MUL0 MUL1 G Z Clock Initialize Load Q0 Shift_dec Clear_C IDLE 00 MUL0 01 MUL1 10 G=1 Z=1 Z=0 G=0 DMUL0 = IDLE G + MUL1 Z' DMUL1 = MUL0
Συγκριση κυκλωματων ελεγκτη D Q > IDLE MUL0 MUL1 G Z Clock Initialize Load Q0 Shift_dec Clear_C