ΗΜΥ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 ης άσκησης στο εργαστήριο Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & A.Π. - 2
ΣΗΜΑΝΤΙΚΟ: 1. Στο επόμενο εργαστήριο θα αξιολογηθείτε για το υπόλοιπο 5% των ασκήσεων. Φέρτε μαζί σας ολοκληρωμένα τα αρχεία της Άσκησης 7. Το quiz θα περιλαμβάνει ακολουθιακά κυκλώματα, καταχωρητές και μηχανές πεπερασμένων καταστάσεων. 2. Πλησιάζει η παράδοση των Εργασιών για Βελτίωση Βαθμού!!!! Ενημερώστε τον διδάσκοντα για την εργασία σας! Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & A.Π. - 3
Στόχοι Εργαστηρίου Με την ολοκλήρωση αυτού του εργαστηρίου, θα πρέπει να είστε σε θέση: 1. Να υλοποιείτε κυκλώματα με behavioral and mixed architectures στην VHDL. 2. Να γνωρίζετε τις διαφορές μεταξύ Μηχανών Πεπερασμένων Καταστάσεων τύπου Moore & Mealy. 3. Nα σχεδιάζετε κυκλώματα που περιγράφουν Μηχανές Πεπερασμένων Καταστάσεων στο Quartus. 4. Να δημιουργείτε κατάλληλα αρχεία προσομοίωσης για έλεγχο γενικά των ακολουθιακών κυκλωμάτων. Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & A.Π. - 4
Τρόποι Περιγραφής στην VHDL Δομής (Structural) Το ψηφιακό σύστημα περιγράφεται ως συνδέσεις μεταξύ διακριτών στοιχείων Ροής Δεδομένων (Dataflow) Το ψηφιακό σύστημα περιγράφεται ως ταυτόχρονες αναθέσεις τιμών σε σήματα Συμπεριφορά (Behavioral) Το ψηφιακό σύστημα περιγράφεται ως σειρά από εντολές Υβριδικός (Mixed) Χρήση πολλαπλών τρόπων περιγραφής για ένα σύστημα Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & Α.Π. - 5
Behavioral VHDL Μια αρχιτεκτονική τύπου behavioral περιγράφει την υλοποίηση της οντότητας ως μια σειρά από εντολές Οι εντολές αυτές υποχρεωτικά περιγράφονται μέσα σε process (διαδικασία) H περιγραφή behavioral μπορεί να χρησιμοποιηθεί για να υλοποιήσει τόσο συνδυαστικά όσο και ακολουθιακά κυκλώματα Τα processes είναι τρομερά χρήσιμα για την υλοποίηση FSM (Μηχανές Πεπερασμένων Καταστάσεων) Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & Α.Π. - 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; Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & Α.Π. - 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 μπαίνει σε αναμονή μέχρι την επόμενη αλλαγή σε κάποιο σήμα στην λίστα. Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & Α.Π. - 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 Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & Α.Π. - 9
Σημαντικό για την VHDL Structure Dataflow Behavioral Όλες οι εντολές της VHDL (port map, ανάθεση, process) στο παράδειγμα εκτελούνται παράλληλα. Δεν έχει σημασία η σειρά στον κώδικα μας. Αν και η εντολή process εκτελείται παράλληλα, το περιεχόμενο της είναι σειριακό. Η behavioral περιγραφή είναι πιο κοντά στην λεκτική περιγραφή που θα δίναμε εμείς για το κύκλωμα, ενώ οι structure και dataflow αντιστοιχούν σε περιγραφή του πραγματικού κυκλώματος. Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & Α.Π. - 10
Μηχανές Πεπερασμένων Καταστάσεων FSM τύπου Moore FSM τύπου Mealy Οι μηχανές πεπερασμένων καταστάσεων περιγράφουν συστήματα που έχουν προκαθορισμένη συμπεριφοράπου εξαρτάται από την παρούσα κατάστασητου συστήματος και τις τιμές στις εισόδους του. Ο έλεγχος και η μετάβαση σε επόμενη κατάσταση γίνεται σε διακριτά χρονικά διαστήματα που δίνονται από ένα ρολόι => Τα FSM είναι Ακολουθιακά Κυκλώματα Υπάρχουν δύο δημοφιλείς τύποι FSM : Moore & Mealy Η διαφορά είναι στο «τι καθορίζει τις τιμές στις εξόδους» Output for Moore => State, Output for Mealy => State, Inputs Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & Α.Π. - 11
Παράδειγμα Μηχανών Moore & Mealy FSM τύπου Moore FSM τύπου Mealy ΠΡΟΒΛΗΜΑ: Θέλω ένα κύκλωμα ελέγχου φωτισμού. Μόλις εκκινήσω το σύστημα θέλω τα φώτα να ανάβουν και να μπορώ να τα αναβοσβήνω με την χρήση κατάλληλων κομβίων σε διάφορα σημεία στο χώρο. Μπορώ να υλοποιήσω το σύστημα μας με όποιο από τους δύο τρόπους περιγραφής FSM θέλω. To αποτέλεσμα είναι το ίδιο, αλλά αλλάζει ο τρόπος που σχεδιάζω το κύκλωμα. Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & Α.Π. - 12
Υλοποίηση FSM τύπουmoore Χρειαζόμαστε F-F για να κρατούμε το State του συστήματος. Υλοποιούμε δυο συνδυαστικά κυκλώματα: Λογική που αποκωδικοποιεί το επόμενο State χρησιμοποιώντας το παρόν State και τις Εισόδους Λογική που αποκωδικοποιεί τις τιμές στις Εξόδους χρησιμοποιώντας το παρόν State Ανεξάρτητη λογική για τις Εξόδους και την Επόμενη Κατάσταση Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & Α.Π. - 13
Υλοποίηση FSM τύπουmealy Χρειαζόμαστε F-F για να κρατούμε το State του συστήματος. Υλοποιούμε ένα συνδυαστικό κύκλωμα: Λογική που αποκωδικοποιεί το επόμενο State και τις τιμές στις Εξόδους χρησιμοποιώντας το παρόν State και τις Εισόδους Ένα συνδυαστικό κύκλωμα με αυξημένες λειτουργίες Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & Α.Π. - 14
Παραδείγματα Υλοποίησης σε VHDL Έχουν ανεβεί στην ιστοσελίδα και μπορείτε να τα χρησιμοποιήσετε ως template για τις δικές σας υλοποιήσεις. Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & Α.Π. - 15
Εργαστηριακή Άσκηση 7 Σχεδιάστε ένα σειριακό κύκλωμα παραγωγής συμπληρώματος ως προς 2 με μια είσοδο και μια έξοδο μόνο. Το κύκλωμα πρέπει να δέχεται μια σειρά από bits από την είσοδο και να επιστρέφει στην έξοδο το συμπλήρωμα ως προς 2 της εισόδου. Το κύκλωμα πρέπει να δέχεται και reset για παύση και επαναφορά στην αρχική κατάσταση αναμονής. Αναλύστε το πρόβλημα και υπολογίστε το FSM, πίνακα αληθείας και εξισώσεις για το πιο πάνω σύστημα. Υλοποιήστε το πιο πάνω κύκλωμα σε.bdf και σε behavioral VHDL. Συγκρίνετε την απόδοση των δυο υλοποιήσεων! Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & A.Π. - 16
Στόχοι Εργαστηρίου Με την ολοκλήρωση αυτού του εργαστηρίου, θα πρέπει να είστε σε θέση: 1. Να υλοποιείτε κυκλώματα με behavioral and mixed architectures στην VHDL. 2. Να γνωρίζετε τις διαφορές μεταξύ Μηχανών Πεπερασμένων Καταστάσεων τύπου Moore & Mealy. 3. Nα σχεδιάζετε κυκλώματα που περιγράφουν Μηχανές Πεπερασμένων Καταστάσεων τόσο στο Quartus, όσο και στο breadboard. 4. Να δημιουργείτε κατάλληλα αρχεία προσομοίωσης για έλεγχο γενικά των ακολουθιακών κυκλωμάτων. Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & A.Π. - 17
Μαθησιακά Αποτελέσματα Με την ολοκλήρωση αυτού του εργαστηρίου θα πρέπει να μπορείτε να: Υλοποιείτε κυκλώματα που περιέχουν FSM. Ορίζετε διαφορετικούς σχεδιασμούς ως Top-Level Entity, να δημιουργείτε σύμβολα από δικούς σας σχεδιασμούς και να είστε σε θέση να ρυθμίζετε σωστά τις σχετικές παραμέτρους στο Quartus II. Σχεδιάζετε κυκλώματα και να χρησιμοποιείτε behavioral και mixed VHDL architectures. Γνωρίζετε τις διαφορές μεταξύ μηχανών Moore και Mealy και να μπορείτε να τις σχεδιάσετε βάσει προκαθορισμένων προδιαγραφών. Νοέμβριος 15 Εργαστήριο Ψηφιακών Συστημάτων Γ.Ζ. & A.Π. - 18