ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL Διδάσκoντες: Δρ. Γιώργος Ζάγγουλοςκαι Δρ. Παναγιώτα Δημοσθένους Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Ατζέντα 1. Στόχοι 12 ου Εργαστηρίου 2. Περιγραφή Συμπεριφοράς Behavioral Architecture 3. Υβριδική Περιγραφή Mixed Architecture 4. Μηχανές Πεπερασμένων Καταστάσεων Moore & Mealy 5. Ανάλυση 7 ης εργαστηριακής άσκησης 6. Σχεδιασμός 7 ης άσκησης στο εργαστήριο Γ.Ζ. & Π.Δ - 2
ΣΗΜΑΝΤΙΚΟ: 1. Στο επόμενο εργαστήριο θα αξιολογηθείτε για το υπόλοιπο 5% των ασκήσεων. Το quiz θα περιλαμβάνει ακολουθιακά κυκλώματα, καταχωρητές και μηχανές πεπερασμένων καταστάσεων. 2. Πλησιάζει η παράδοση των Εργασιών για Βελτίωση Βαθμού!!!! Ενημερώστε τον διδάσκοντα για την εργασία σας! Γ.Ζ. & Π.Δ - 3
Στόχοι Εργαστηρίου Με την ολοκλήρωση αυτού του εργαστηρίου, θα πρέπει να είστε σε θέση: 1. Να υλοποιείτε κυκλώματα με behavioral and mixed architectures στην VHDL. 2. Να γνωρίζετε τις διαφορές μεταξύ Μηχανών Πεπερασμένων Καταστάσεων τύπου Moore & Mealy. 3. Nα σχεδιάζετε κυκλώματα που περιγράφουν Μηχανές Πεπερασμένων Καταστάσεων στο Quartus. 4. Να δημιουργείτε κατάλληλα αρχεία προσομοίωσης για έλεγχο γενικά των ακολουθιακών κυκλωμάτων. Γ.Ζ. & Π.Δ - 4
Τρόποι Περιγραφής στην VHDL Δομής (Structural) Το ψηφιακό σύστημα περιγράφεται ως συνδέσεις μεταξύ διακριτών στοιχείων Ροής Δεδομένων (Dataflow) Το ψηφιακό σύστημα περιγράφεται ως ταυτόχρονες αναθέσεις τιμών σε σήματα Συμπεριφορά (Behavioral) Το ψηφιακό σύστημα περιγράφεται ως σειρά από εντολές Υβριδικός (Mixed) Χρήση πολλαπλών τρόπων περιγραφής για ένα σύστημα Γ.Ζ. & Π.Δ - 5
Behavioral VHDL Μια αρχιτεκτονική τύπου behavioral περιγράφει την υλοποίηση της οντότητας ως μια σειρά από εντολές Οι εντολές αυτές υποχρεωτικά περιγράφονται μέσα σε process (διαδικασία) H περιγραφή behavioral μπορεί να χρησιμοποιηθεί για να υλοποιήσει τόσο συνδυαστικά όσο και ακολουθιακά κυκλώματα Τα processes είναι τρομερά χρήσιμα για την υλοποίηση FSM (Μηχανές Πεπερασμένων Καταστάσεων) Γ.Ζ. & Π.Δ - 6
Behavioral Architecture of Decoder2-4 architecture DEC2x4_BEHAVORIAL of DEC2x4 is begin process (A,B,EN) variable Abar,Bbar : BIT; begin Abar := not A; Bbar := not B; if (EN= 1 ) then Z(0) <= not (Abar and Bbar); Z(1) <= not (Abar and B); Z(2) <= not (A and Bbar); Z(3) <= not (A and B); else Z<= 1111 ; end if; end process; end DEC2x4_BEHAVORIAL; Γ.Ζ. & Π.Δ - 7
Behavioral Architecture of Decoder2-4 architecture DEC2x4_BEHAVORIAL of DEC2x4 is begin process (A,B,EN) variable Abar,Bbar : BIT; begin Abar := not A; Bbar := not B; if (EN= 1 ) then Z(0) <= not (Abar and Bbar); Z(1) <= not (Abar and B); Z(2) <= not (A and Bbar); Z(3) <= not (A and B); else Z<= 1111 ; end if; end process; end DEC2x4_BEHAVORIAL; Μια process έχει και αυτή τμήμα δηλώσεων. Εδώ δηλώνουμε variables και όχι signals!!!!! Τα signals είναι πραγματικές συνδέσεις στο κύκλωμα μας, ενώ τα variables είναι εσωτερικές μεταβλητές μιας «αφηρημένης» περιγραφής (δλδ. ενός process) Οι εντολές που βρίσκονται εντός του process, αν και περιγράφονται σειριακά, εκτελούνται χωρίς καθυστέρηση. Οι εντολές ενός process εκτελούνται κάθε φορά που έχουμε αλλαγή στα σήματα που αναφέρονται στις παρενθέσεις δίπλα από to process. Όταν τελειώσει η εκτέλεση, η process μπαίνει σε αναμονή μέχρι την επόμενη αλλαγή σε κάποιο σήμα στην λίστα. Γ.Ζ. & Π.Δ - 8
Mixed Architecture of a Full Adder architecture FA_Mixed of FULL_ADDER is component XOR2 port (IN1,IN2: in BIT; \OUT\: out BIT); end component; signal S1:BIT; begin X1: XOR2 port map (A,B,S1); --structural process (A,B,EN) --behavioral Σειριακή Ανάθεση variable T1,T2,T3:BIT; begin T1:= A and B; T2:= B and Cin; T3:= A and Cin; Cout<= T1 or T2 or T3; end process; Sum <= S1 xor Cin; --dataflow end FA_Mixed; Παράλληλη Ανάθεση Structure Dataflow Behavioral Γ.Ζ. & Π.Δ - 9
Σημαντικό για την VHDL Structure Dataflow Behavioral Όλες οι εντολές της VHDL (port map, ανάθεση, process) στο παράδειγμα εκτελούνται παράλληλα. Δεν έχει σημασία η σειρά στον κώδικα μας. Αν και η εντολή process εκτελείται παράλληλα, το περιεχόμενο της είναι σειριακό. Η behavioral περιγραφή είναι πιο κοντά στην λεκτική περιγραφή που θα δίναμε εμείς για το κύκλωμα, ενώ οι structure και dataflow αντιστοιχούν σε περιγραφή του πραγματικού κυκλώματος. Γ.Ζ. & Π.Δ - 10
Μηχανές Πεπερασμένων Καταστάσεων FSM τύπου Moore FSM τύπου Mealy Οι μηχανές πεπερασμένων καταστάσεων περιγράφουν συστήματα που έχουν προκαθορισμένη συμπεριφοράπου εξαρτάται από την παρούσα κατάστασητου συστήματος και τις τιμές στις εισόδους του. Ο έλεγχος και η μετάβαση σε επόμενη κατάσταση γίνεται σε διακριτά χρονικά διαστήματα που δίνονται από ένα ρολόι => Τα FSM είναι Ακολουθιακά Κυκλώματα Υπάρχουν δύο δημοφιλείς τύποι FSM : Moore & Mealy Η διαφορά είναι στο «τι καθορίζει τις τιμές στις εξόδους» Output for Moore => State, Output for Mealy => State, Inputs Γ.Ζ. & Π.Δ - 11
Παράδειγμα Μηχανών Moore & Mealy FSM τύπου Moore FSM τύπου Mealy ΠΡΟΒΛΗΜΑ: Θέλω ένα κύκλωμα ελέγχου φωτισμού. Μόλις εκκινήσω το σύστημα θέλω τα φώτα να ανάβουν και να μπορώ να τα αναβοσβήνω με την χρήση κατάλληλων κομβίων σε διάφορα σημεία στο χώρο. Μπορώ να υλοποιήσω το σύστημα μας με όποιο από τους δύο τρόπους περιγραφής FSM θέλω. To αποτέλεσμα είναι το ίδιο, αλλά αλλάζει ο τρόπος που σχεδιάζω το κύκλωμα. Γ.Ζ. & Π.Δ - 12
Υλοποίηση FSM τύπουmoore Χρειαζόμαστε F-F για να κρατούμε το State του συστήματος. Υλοποιούμε δυο συνδυαστικά κυκλώματα: Λογική που αποκωδικοποιεί το επόμενο State χρησιμοποιώντας το παρόν State και τις Εισόδους Λογική που αποκωδικοποιεί τις τιμές στις Εξόδους χρησιμοποιώντας το παρόν State Ανεξάρτητη λογική για τις Εξόδους και την Επόμενη Κατάσταση Γ.Ζ. & Π.Δ - 13
Υλοποίηση FSM τύπουmealy Χρειαζόμαστε F-F για να κρατούμε το State του συστήματος. Υλοποιούμε ένα συνδυαστικό κύκλωμα: Λογική που αποκωδικοποιεί το επόμενο State και τις τιμές στις Εξόδους χρησιμοποιώντας το παρόν State και τις Εισόδους Ένα συνδυαστικό κύκλωμα με αυξημένες λειτουργίες Γ.Ζ. & Π.Δ - 14
Παραδείγματα Υλοποίησης σε VHDL Έχουν ανεβεί στην ιστοσελίδα και μπορείτε να τα χρησιμοποιήσετε ως template για τις δικές σας υλοποιήσεις. Γ.Ζ. & Π.Δ - 15
Εργαστηριακή Άσκηση 7 Σχεδιάστε ένα σύγχρονο μετρητή ο οποίος θα δίνει στην έξοδο τις τιμές 0, 2, 4, 6, 8, 10 με τον αριθμό 10 να παραμένει στην έξοδο για διπλάσιο χρονικό διάστημα σε σχέση με όλους τους άλλους. Το κύκλωμα πρέπει να δέχεται σήμα clock από την έξοδο του συμβόλου clk_div με συχνότητα 1Ηz. Πρέπει επίσης να δέχεται και επαναφορά στην αρχική κατάσταση 0 μέσω του σήματος Reset. Αναλύστε το πρόβλημα και υπολογίστε το FSM συμπληρώνοντας πίνακα αληθείας. Τέλος βρείτε τις 7 εξισώσεις για το πιο πάνω σύστημα (3 για την επόμενη κατάσταση και 4 για την έξοδο). Υλοποιήστε το πιο πάνω κύκλωμα σε.bdf και σε behavioral VHDL. Συγκρίνετε την απόδοση των δυο υλοποιήσεων! Γ.Ζ. & Π.Δ - 16
Στόχοι Εργαστηρίου Με την ολοκλήρωση αυτού του εργαστηρίου, θα πρέπει να είστε σε θέση: 1. Να υλοποιείτε κυκλώματα με behavioral and mixed architectures στην VHDL. 2. Να γνωρίζετε τις διαφορές μεταξύ Μηχανών Πεπερασμένων Καταστάσεων τύπου Moore & Mealy. 3. Nα σχεδιάζετε κυκλώματα που περιγράφουν Μηχανές Πεπερασμένων Καταστάσεων τόσο στο Quartus, όσο και στο breadboard. 4. Να δημιουργείτε κατάλληλα αρχεία προσομοίωσης για έλεγχο γενικά των ακολουθιακών κυκλωμάτων. Γ.Ζ. & Π.Δ - 17
Μαθησιακά Αποτελέσματα Με την ολοκλήρωση αυτού του εργαστηρίου θα πρέπει να μπορείτε να: Υλοποιείτε κυκλώματα που περιέχουν FSM. Ορίζετε διαφορετικούς σχεδιασμούς ως Top-Level Entity, να δημιουργείτε σύμβολα από δικούς σας σχεδιασμούς και να είστε σε θέση να ρυθμίζετε σωστά τις σχετικές παραμέτρους στο Quartus II. Σχεδιάζετε κυκλώματα και να χρησιμοποιείτε behavioral και mixed VHDL architectures. Γνωρίζετε τις διαφορές μεταξύ μηχανών Moore και Mealy και να μπορείτε να τις σχεδιάσετε βάσει προκαθορισμένων προδιαγραφών. Γ.Ζ. & Π.Δ - 18