ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. VHDL για Ακολουθιακά Κυκλώματα 1

Σχετικά έγγραφα
VHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 Συµπληρωµατική ΔΙΑΛΕΞΗ 14: Περιγραφή Ακολουθιακών Κυκλωµάτων στη VHDL

VHDL για Σχεδιασµό Συνδυαστικών και Ακολουθιακών Ψηφιακών Κυκλωµάτων

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Ακολουθιακός Κώδικας

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

Κυκλωμάτων» Χειμερινό εξάμηνο

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών

Σχεδίαση Ψηφιακών Συστημάτων

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συντρέχων Κώδικας

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων

ΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙ ΙΟ ΓΙΑ ΣΧΕ ΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Δομική περιγραφή και περιγραφή Μηχανών Πεπερασμένων Καταστάσεων

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Καταχωρητές και χρονισμός με ρολόι

ΑΣΚΗΣΗ 2: Σχεδίαση και προσομοίωση κυκλωμάτων καταχωρητών και μετρητών

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων 15/11/2010. Σχεδιασμός Ακολουθιακών Κυκλωμάτων 1

Σχεδιασμός Ψηφιακών Συστημάτων

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

Εισαγωγή Η VHDL υποστηρίζει τους εξής τρείς βασικούς και διαφορετικούς τρόπους περιγραφής

Σχεδίαση Ψηφιακών Συστημάτων

Library, package και subprograms

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Ανάλυση Ακολουθιακών Κυκλωμάτων 1

Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL. Βασικές εντολές και η περιγραφή συνδυαστικών κυκλωµάτων. Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 2 -

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Προχωρημένα Θέματα Σχεδιασμού με VHDL

ΗΜΥ 210: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2008

Εισαγωγή στη VHDL Υλοποίηση στο Quartus

ΠΑΡΑΡΤΗΜΑ Β. Verification

Εισαγωγή στη Γλώσσα VHDL

Σχεδιασμός Ψηφιακών Συστημάτων

Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL. Γενικά χαρακτηριστικά, σύνταξη και τύποι. Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 1 -

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Πακέτα και Συστατικά Στοιχεία (Υποκυκλώματα)

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Καθιερωµένα Γραφικά Σύµβολα. ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο 2005

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 1

VHDL. ΗΜΥ-210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Απλό παράδειγµα: Entity. Μοντελοποίηση. Απλό παράδειγµα:αρχιτεκτονική. Στοιχεία γλώσσας VHDL

VHDL Εισαγωγικές έννοιες

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συναρτήσεις, Διαδικασίες και Δομές Ελέγχου Λειτουργίας Κυκλωμάτων (testbenches)

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο Νοε-09. Διδάσκουσα: Μαρία Κ. Μιχαήλ

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

Σχεδίαση Ψηφιακών Συστημάτων

Ελίνα Μακρή

Προσοµοίωση Συστηµάτων µε VHDL. (Peter Ashenden, The Students Guide to VHDL)

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Αυγ-13 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops. ΗΜΥ 210: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2009.

Στοιχεία Μνήμης, JKκαιD (Flip-Flops) Μετρητής Ριπής (Ripple Counter)

Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.

Γλώσσα Περιγραφής Υλικού VHDL Μέρος Α: Σωστή Σύνθεση

Αρχιτεκτονικές Υπολογιστών

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 13: Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων (Κεφάλαιο 6.

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

ΒΑΣΙΚΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 10: Συµπληρωµατική Διάλεξη Flip-Flops (Basics) και VHDL)

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Μετρητές 1

Σχεδιασμός Ψηφιακών Συστημάτων

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

Structural VHDL. Structural VHDL

Σύνθετοι τύποι και λειτουργίες. (Peter Ashenden, The Students Guide to VHDL)

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Τύποι Δεδομένων και Τελεστές

Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο VHDL (revisited)

Σχεδίαση κυκλωμάτων με VHDL: 2o μέρος

ΑΣΚΗΣΗ 9. Tα Flip-Flop

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών. Εργαστήριο Σχεδίασης Ολοκληρωμένων Κυκλωμάτων

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 18: Διαδικασία Σχεδίασης Ψηφιακών Συστηµάτων - Επανάληψη

inputs outputs Σχήμα 3.1: Σχηματική παράσταση της λειτουργίας του testbench

VHDL Introduction. Subtitle

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.


Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

(Peter Ashenden, The Students Guide to VHDL)

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση. Ενότητα 13: Εισαγωγή στην VHDL

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Μετρητής Ριπής (Ripple Counter) Μετρητές (Counters) Μετρητής Ριπής (συν.

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΚΕΦΑΛΑΙΟ 6 ΒΑΣΙΚΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ. 6.1 Εισαγωγή

Οι Βιβλιοθήκες IEEE και παραδείγµατα functions

ΛΥΣΕΙΣ 3 ης ΓΡΑΠΤΗΣ ΕΡΓΑΣΙΑΣ

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

100 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

Σχεδίαση Ψηφιακών Συστημάτων

Μοντελοποίηση Επιπέδου Πύλης. (Peter Ashenden, The Students Guide to VHDL)

Πανεπιστήµιο Κύπρου DEPARTMENT OF COMPUTER SCIENCE

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 16: Μετρητές (Counters)

Εργαστήριο Ψηφιακών Κυκλωμάτων

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ.

Πρόλογος...13 I ΣΧΕ ΙΑΣΜΟΣ ΣΕ ΕΠΙΠΕ Ο ΚΥΚΛΩΜΑΤΟΣ Εισαγωγή... 19

Ψηφιακή Σχεδίαση. Δρ. Μηνάς Δασυγένης Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Κεφάλαιο 6. Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα

Α. ΣΚΟΔΡΑΣ ΠΛΗ21 ΟΣΣ#2. 14 Δεκ 2008 ΠΑΤΡΑ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ 2008 Α. ΣΚΟΔΡΑΣ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ ΜΕΛΕΤΗΣ

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Οντότητες και συντρέχουσες δηλώσεις

Ενσωματωμένα Συστήματα

Transcript:

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων VHDL για Σχεδιασμό Ακολουθιακών Κυκλωμάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Περίληψη VHDL Processes Εντολές If-Then Then-Else και CASE Περιγραφή Flip-Flop Flop με VHDL Περιγραφή Ακολουθιακού Κυκλώματος (βάσει πίνακα/διαγράμματος καταστάσεων) με VHDL Συγχρονισμός μεταξύ Processes Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών MKM - 2 VHDL Process Ένα σύνολο από εντολές VHDL το οποίο «εκτελείται» όταν ένα signal (από ένα συγκεκριμένο σύνολο) αλλάζει τιμή. Ο «κορμός» ( body ) ενός process υλοποιεί ένα σειριακό (sequential)) πρόγραμμα, δηλ. οι τιμές των signals ανανεώνονται μόνο όταν ολοκληρωθεί η εκτέλεση του προγράμματος. Μπορεί επίσης να χρησιμοποιήσει variables, των οποίων η τιμή ανανεώνεται αμέσως. MKM - 3 Αρχιτεκτονική VHDL architecture name_arch of name is Signal/Variable declaration Component declaration Process 1 Process 2 end name_arch; Το κάθε process περιέχει ακολουθιακές εντολές (sequential statements), αλλά όλα τα processes δύναται να εκτελεστούν ταυτόχρονα MKM - 4 VHDL για Ακολουθιακά Κυκλώματα 1

VHDL Process P1: process (<sensitivity list>) <variable declarations> <sequential statements> end process P1; Μέσα σε ένα process: Ανάθεση μεταβλητών (variables) Προαιρετική σήμανση με := και άμεση ενημέρωση. Ανάθεση σημάτων (signals) με <= και η ενημέρωση γίνετε στο τέλος του process. Signals Vs Variables σε ένα Process Θεωρείστε ότι A, B, και C είναι ακέραιοι με A=1, B=5, και C=10. A, B, C: signals A, B, C: variables process process B <= A; B := A; C <= B; C := B; B = 1 και C = 5 B = 1 και C = 1 ( χρησιμοποιεί την ( χρησιμοποιεί την αρχική τιμή του νέα τιμή B (=5) όταν του B (=1) όταν υπολογίζει το C ) υπολογίζει το C ) MKM - 5 MKM - 6 Εντολή If-Then Then-Else [if_label:] if boolean_expression then { sequential_statement; t t t } { elsif boolean_expression then { sequential_statement; } } [ { sequential_statement; } ] end if [ if_label ]; Σύμβαση: [ ] -- προαιρετικό { } επανάληψη δυνατή Εντολή CASE [case_label:] case expression is { when choice => { sequential statement; } } [ when others => { sequential statement; } ] end case [case_label]; MKM - 7 MKM - 8 VHDL για Ακολουθιακά Κυκλώματα 2

Περιγραφή Flip-Flop Flop με VHDL: Θετικά Ακμοπυροδοτούμενο D-FF με Ασύγχρονη Αρχικοποίηση ήλωση Οντότητας: -- Positive Edge-Triggered D Flip-Flop Flop with Reset: -- VHDL Process Description library ieee; use ieee.std_logic_1164.all; entity dff is port(clk, RESET, D: in std_logic; Q, Q_n: out std_logic); RESET Q end dff; D dff Q_n MKM - 9 CLK Περιγραφή Flip-Flop Flop με VHDL: Θετικά Ακμοπυροδοτούμενο D-FF με Ασύγχρονη Αρχικοποίηση Αρχιτεκτονική: architecture t pet_pr of dff is -- Implements positive edge-triggered bit state storage -- with asynchronous reset. signal state: std_logic; Q <= state; Q_n <= not state; process (CLK, RESET) Καθορίζει τον τύπο πυροδότησης του FF RESET Q if (RESET = '1') then state <= '0'; D dff Q_n if (CLK'event and CLK = '1') then state <= D; end pet_pr; CLK Q(t+1) = D(t).RESET MKM - 10 Ακολουθιακό Κύκλωμα σε VHDL Ανιχνευτής Ακολουθίας Θυμηθείτε το παράδειγμα του ανιχνευτή της ακολουθίας 0101, με μία είσοδο (X) και μία έξοδο (Z). ιάγραμμα Καταστάσεων: 1/0 0/0 1/1 0/0 1/0 0/0 Α Β C D 1/0 0/0 MKM - 11 Ανιχνευτής Ακολουθίας σε VHDL (συν.) Χρησιμοποιούμε 3 ξεχωριστά processes, τα οποία εκτελούνται παράλληλα. Ο συγχρονισμός μεταξύ των διαφόρων processes επιτυγχάνεται από την αλληλοεπίδραση κοινών signals. 3 processes: Στοιχεία Μνήμης (storage cct) state_register Λογική Εισόδων FFs (next state logic) next_state_func Λογική Εξόδων (primary output logic) output_func MKM - 12 VHDL για Ακολουθιακά Κυκλώματα 3

Ανιχνευτής Ακολουθίας σε VHDL (συν.) Ορίζουμε ένα scalar enumeration type για αναπαράσταση των 4 ων καταστάσεων: type state_type is (A, B, C, D); Ακολούθως, δηλώνουμε signals ή variables για την παρούσα και την επόμενη κατάσταση: signal state, next_state : state_type; state και next_state μπορούν να πάρουν μόνο την τιμή A, B, C, ή D. Προσπάθεια ανάθεσης οποιασδήποτε άλλης τιμής θα δώσει λάθος στην συμβολομετάφραση. ήλωση Οντότητας & Αρχιτεκτονικής -- Sequence Recognizer: VHDL Process Description library ieee; use ieee.std_logic_1164.all i all; entity seq_rec is port(clk, RESET, X: in std_logic; Z: out std_logic); end seq_rec; architecture process_3 of seq_rec is type state_type is (A, B, C, D); signal state, next_state : state_type; type; end; MKM - 13 MKM - 14 Process για Στοιχεία Μνήμης (State Register) -- Process 1 - state_register: implements positive edge-triggered -- state storage with asynchronous reset. state_register: process (CLK, RESET) if (RESET = '1') then state <= A; if (CLK'event and ClK = '1') then state <= next_state; Πόσα FFs; Εξαρτάται από τον αριθμό των τιμών που μπορούν να πάρουν τα signals state & next_state! Για αυτή την περίπτωση, υπάρχουν 4 δυνατές καταστάσεις (A, B, C, D) και, επομένως, θα χρησιμοποιηθούν 2 FFs. MKM - 15 Process για Συναρτήσεις Επόμενης Κατάστασης (Next State Functions) -- Process 2 - next_state_function: implements -- next state as function of input X and state. next_state_func: process (X, state) case state is when A => next_state <= A; when B => next_state <= C; when C => next_state <= A; next_state <= D; when D => next_state <= C; end case; Πίνακας Καταστάσεων next_state Z state X=0 X=1 X=0 X=1 A B A 0 0 B Β C 0 0 C D A 0 0 D B C 0 1 MKM - 16 VHDL για Ακολουθιακά Κυκλώματα 4

Process για Συνάρτηση Εξόδου (Output State Function) -- Process 3 - output_function: -- implements output as function of -- input X and state. output_func: process (X, state) case state is when A => when B => when C => when D => Z <= 0'; Z <= 1'; end case; Υπονοεί μοντέλο Mealy Πίνακας Καταστάσεων next_state Z state X=1 X=0 X=1 X=0 A B A 0 0 B Β C 0 0 C D A 0 0 D B C 0 1 Συγχρονισμός μεταξύ των processes state_register: process (CLK, RESET) state ανανεώνεται βάσει των CLK και RESET next_state_func: process (X, state) next_state ανανεώνεται βάσει των X και state output_func: process (X, state) Z ανανεώνεται βάσει των X και state MKM - 17 MKM - 18 Συγχρονισμός (συν.) Θεωρείστε την ακόλουθη περίπτωση: χρόνος t 0 χρόνος t 1 χρόνος t 2 state t = D X=0 0 X=1 1 X=1 next_state = B next_state =? Z=0 Z=? Χρησιμοποιεί τις τιμές των state και X στον χρόνο t 0 για να υπολογίσει το next_state Συγχρονισμός (συν.) Θεωρείστε την ακόλουθη περίπτωση: χρόνος t 0 χρόνος t 1 χρόνος t 2 state t = D X=0 0 X=1 1 X=1 next_state = B Z=0 Χρησιμοποιεί τις τιμές των state και X στον χρόνο t 0 για να υπολογίσει το next_state αφού CLK MKM - 19 MKM - 20 VHDL για Ακολουθιακά Κυκλώματα 5