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



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

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

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

Structural VHDL. Structural VHDL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

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

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

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

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

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

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

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

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

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

Library, package και subprograms

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

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

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

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

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

Πανεπιστήµιο Θεσσαλίας

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

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

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

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

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

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

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

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

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

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

(Peter Ashenden, The Students Guide to VHDL)

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

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

Κεφάλαιο 4 ο Σχεδίαση Κυκλωμάτων με χρήση της γλώσσας VHDL

ΗΥ220: Εργαστήριο σχεδίασης ψηφιακών κυκλωμάτων Χριστόφορος Κάχρης

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

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

Ενότητα 6 ΑΝΑΛΥΣΗ & ΣΥΝΘΕΣΗ ΣΥΝΔΥΑΣΤΙΚΗΣ ΛΟΓΙΚΗΣ ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ ΠΟΛΛΩΝ ΕΠΙΠΕΔΩΝ

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

Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2.

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

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Ακολουθιακή Λογική. Επιμέλεια Διαφανειών: Δ.

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

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

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

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Βασικές οµές Μοντελοποίησης. (Peter Ashenden, The Students Guide to VHDL)

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


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

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο Διάλεξη 8 η : Μηχανές Πεπερασμένων Κaταστάσεων σε FPGAs


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

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

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

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

Introduction to IP Cores

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

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

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

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

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

Ψηφιακή Λογική Σχεδίαση

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ

ΣΧΕΔΙΑΣΜΟΣ ΚΥΚΛΩΜΑΤΩΝ ΠΑΡΑΜΕΤΡΙΚΗΣ ΜΕΤΑΒΟΛΗΣ ΣΥΧΝΟΤΗΤΑΣ ΚΑΙ DUTY CYCLE ΠΑΛΜΟΥ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL

Κεφάλαιο 5 ο Προγραμματισμός Ολοκληρωμένων Κυκλωμάτων

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

H γλώσσα περιγραφής κυκλωµάτων VHDL

Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

Μοντελοποίηση Λογικών Κυκλωμάτων

1 Περίληψη Η εργασία έγινε στα πλαίσια του μαθήματος των Ψηφιακών Ηλεκτρονικών Συστημάτων με σκοπό αρχικά την εκμάθηση της γλώσσας VHDL (Very High Spe

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

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

Ψηφιακή Λογική Σχεδίαση

Σχεδιασµός Συστηµάτων µε VHDL. (Peter Ashenden, The Students Guide to VHDL)

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

Ελίνα Μακρή

ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι

Transcript:

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

Οργάνωση Παρουσίασης Περιγραφή Δομής σε VHDL (Structural Description) Μηχανές Πεπερασμένων Καταστάσεων (Finite State Machines - FSMs) Συμπληρωματική βιβλιογραφία / αναφορές ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 2

Structural VHDL Βασικές Έννοιες Περιγραφή των διασυνδέσεων των υπομονάδων του κυκλώματος Εναλλακτική περιγραφή του σχηματικού διαγράμματος (schematic diagram) Δεν απαιτείται λεπτομερής περιγραφή όλων των διασυνδέσεων Μόνο οι «βασικές διασυνδέσεις» ανάλογα με το επίπεδο της ροής του σχεδιασμού περιγράφονται ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 3

Structural VHDL Βασικές Έννοιες Δεν απαιτείται η περιγραφή της λειτουργίας των υπομονάδων Προϋποθέτει την ύπαρξη βιβλιοθήκης στην οποία βρίσκονται όλες οι χρησιμοποιούμενες υπομονάδες ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 4

Structural VHDL Παράδειγμα (1/2) ENTITY mux IS PORT (d0,d1,sel : IN std_logic; q : OUT std_logic); END; ARCHITECTURE str_mux OF mux IS -- Component Declaration COMPONENT and_comp COMPONENT or_comp PORT ( a,b: IN std_logic; PORT ( a,b: IN std_logic; c: OUT std_logic); c : OUT std_logic); END COMPONENT; END COMPONENT; COMPONENT inv_comp PORT ( a: IN std_logic; b: OUT std_logic); END COMPONENT; SIGNAL i1, i2, sel_n:std_logic ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 5

Structural VHDL Παράδειγμα (2/2) Βιβλιοθήκη -- Comp Specification FOR U1 : inv_comp USE ENTITY work.inv_comp(rtl); FOR U2, U3: and_comp USE ENTITY work.and_comp(rtl); FOR U4: or_comp USE ENTITY work.or_comp(rtl); Αρχιτεκτονική -- Component Instantiation U1: inv_comp PORT MAP (sel, sel_n); U2: inv_comp PORT MAP (d0, sel, i1); d0 U3: inv_comp PORT MAP (sel_n, d1,i2); i1 U4: inv_comp PORT MAP (i1,i2,q); sel U2 END; Sel_n U4 U1 i2 d1 U3 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 6 q

Δήλωση υπομονάδων (Component Declaration) COMPONENT <entity_name> PORT (<port_list>) END COMPONENT; Κάθε υπομονάδα πρέπει να δηλώνεται πριν χρησιμοποιηθεί Η δήλωση δίνεται στο σώμα της αρχιτεκτονικής της οντότητας που χρησιμοποιείται ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 7

Δήλωση υπομονάδων (Component Declaration) COMPONENT <entity_name> PORT (<port_list>) END COMPONENT; Η port_list πρέπει να είναι ίδια με αυτή της οντότητας της υπομονάδας Για αποφυγή λαθών προτείνεται η αντιγραφή της οντότητας της υπομονάδας κατά τη δήλωση αυτής ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 8

Δήλωση υπομονάδων - Παράδειγμα ENTITIY ex IS ARCHITECTURE rtl OF ex IS PORT ( a, b: IN std_logic; q: OUT std_logic);. END; END; ENTITY top IS PORT ( ); END; ARCHITECTURE correct OF top IS ARCHITECTURE error OF top IS COMPONENT ex COMPONENT ex PORT ( a, b: IN std_logic; PORT ( b, a: IN std_logic; q: OUT std_logic); q: OUT std_logic); END COMPONENT; END COMPONENT; END; Σφάλμα στη σειρά δήλωσης END; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 9

Προσδιορισμός Υπομονάδας (Component Specification) FOR <label> : <component_name> USE ENTITY <library>.<component_name> (<architecture_name>); Ο προσδιορισμός της υπομονάδας συνίσταται στον καθορισμό : της βιβλιοθήκης που ανήκει η υπομονάδα της αρχιτεκτονικής που θα χρησιμοποιηθεί Ο προσδιορισμός υπομονάδας δεν υποστηρίζεται από τα εργαλεία σύνθεσης Απλώς αγνοείται!!! Τα εργαλεία σύνθεσης απαιτούν η υπομονάδα να βρίσκεται σε path ορατό σε αυτά ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 10

Προσδιορισμός υπομονάδας -Παράδειγμα ENTITY ex IS PORT ( ); END; ARCHITECTURE behv OF ex IS. END; ARCHITECTURE struct OF ex IS END; ENTITY top IS PORT ( ); END; architecture ARCHITECTURE rtl OF top IS FOR U1 : ex USE ENTITY work.ex(behv); END; component library ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 11

Απεικόνιση θυρών (Port Map) PORT MAP (<port_list>); Περιγράφει τη διασύνδεση των θυρών της υπομονάδας με τα υπόλοιπα σήματα του κυκλώματος Η διασύνδεση λαμβάνει χώρα σύμφωνα με τη σειρά που οι θύρες δηλώνονται στην οντότητα της υπομονάδας ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 12

Απεικόνιση θυρών Παράδειγμα ENTITY ex IS PORT ( a, b: IN std_logic; q: OUT std_logic); END ex; ARCHITECTURE rtl OF ex IS END rtl; Θα κάνουμε απεικόνιση: a=>c, b=>d, q=>q1 ENTITY top IS PORT ( c, d: IN std_logic; q1: END top; OUT srd_logic); ARCHITECTURE rtl OF top IS COMPONENT ex PORT ( a,b,in: IN std_logic; q: OUT std_logic); END COMPONENT; FOR U1 : ex USE ENTITY work.ex(rtl) U1: ex PORT MAP (c, d, q1); END; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 13

Μη συνδεδεμένες είσοδοι / έξοδοι Δεν επιτρέπονται μη συνδεδεμένες είσοδοι!!! Επιτρέπονται μη συνδεδεμένες έξοδοι Η διάταξη δήλωσης των θυρών πρέπει να λαμβάνεται υπόψη ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 14

Μη συνδεδεμένες είσοδοι / έξοδοι ARCHITECTURE rtl of top is COMPONENT ex PORT ( a,b: IN std_logic; q1,q2: OUT std_logic); END; FOR U1: ex USE ENTITY work.ex(rtl); U1: ex PORT MAP ( a=>a, b=>b, q1=>dout, q2=>open); -- CORRECT U1: ex PORT MAP (a, b, dout); -- CORRECT q2 is open U1: ex PORT MAP (a=>a, b=>b, q1=>open, q2=>d); -- CORRECT U1: ex PORT MAP (a, b, d); -- ERROR q2 is open instead of q1 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 15

Generics Περιγράφουν παραμέτρους της υπομονάδας Δυνατότητα ανάπτυξης παραμετρικής VHDL ENTITY and_g IS GENERIC ( Ttdelay: time; n: positive); PORT ( a: IN bit_vector(n-1 DOWNTO 0); c: OUT bit); END; ARCHITECTURE behv OF and_g IS END; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 16

Generics ENTITY ex IS PORT ( i1,i2,i3,i4,i5: o1,o2: END; IN bit; OUT bit); ARCHITECTURE behv OF ex IS COMPONENT and_g GENERIC (Tdelay : time; n : positive); PORT ( a: IN bit_vector(n-1 DOWNTO 0); c: OUT bit); END COMPONENT; FOR U1, U2: and_g USE ENTITY work.and_g(behv); U1: and_g GENERIC MAP (n=>2, Tdelay=>8ns) PORT MAP (a(0)=>i1, a(1)=>i2, c=>o1); U2: and_g GENERIC MAP (n=>3, Tdelay=>12ns) PORT MAP (a(0)=>i3, a(1)=>i4, a(3)=>i5c=>o2); END; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 17

Generate Χρησιμοποιείται όταν μια υπομονάδα χρησιμοποιείται πολλές φορές σε μια αρχιτεκτονική Πιο ευέλικτος και μικρός κώδικας ENTITY ex IS PORT ( a,b: IN std_logic_vector (4 DOWNTO 0); q: OUT std_logic_vector (4 DOWNTO 0)); END; ARCHITECTURE rtl OF ex IS FOR U1 : c1 USE ENTITY work.c1(rtl); COMPONENT c1 PORT ( a,b: IN std_logic; Gen_1: FOR i IN 0 TO 4 GENERATE c: OUT std_logic)); U: c1 PORT MAP (a(i), b(i), q(i)); END COMPONENT; END GENERATE Gen_1; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ END; 18

Μηχανές Πεπερασμένων Καταστάσεων Υλοποιούν τη λογική ελέγχου (control logic) Αποτελούνται από συνδυαστικό κύκλωμα και F/Fs Περιγράφονται από ένα διάγραμμα εναλλαγής καταστάσεων (State Transition Diagram STD) ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 19

Μηχανές Πεπερασμένων Καταστάσεων Για τη σωστή λειτουργία απαιτείται οι είσοδοι να έχουν σταθεροποιηθεί πριν την άφιξη του ρολογιού Η καθυστέρηση καθορίζεται από το μέγιστο χρόνο υπολογισμού της νέας κατάστασης Ο μέγιστος χρόνος απόκρισης του συνδυαστικού κυκλώματος ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 20

Μηχανές Πεπερασμένων Καταστάσεων Λειτουργία δύο φάσεων Φάση 1: Υπολογισμός της της νεάς κατάστασης Φάση 2: Δειγματοληψία της νέας κατάστασης Η υλοποίηση μιας FSM σε υλικό (κύκλωμα) είναι πάντοτε γρηγορότερη από την υλοποίηση αυτής σε επεξεργαστή μέσω προγράμματος ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 21

Κατηγορίες FSMs Mealy FSMs : Οι έξοδοι είναι συνάρτηση των εισόδων και της τρέχουσας κατάστασης ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 22

Κατηγορίες FSMs Moore FSMs : Οι έξοδοι είναι συνάρτηση μόνο της τρέχουσας κατάστασης Οι Moore FSΜs απαιτούν ένα κύκλο ρολογιού παραπάνω Ένας κύκλος υπολογισμού της κατάστασης και ένας κύκλος για τον υπολογισμό της εξόδου ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 23

Moore FSMs Clocked Process Combinational Process ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 24

ENTITY demo IS PORT ( clk,in1,reset: IN std_logic; out1: OUT std_logic_vector(0 to 3)); END demo; ARCHITECTURE moore OF demo IS TYPE state_type IS (s0,s1,s2,s3); SIGNAL state: state_type; d: PROCESS(CLK,RESET) IF reset = '1' THEN state<=s0; ELSIF clk'event AND clk='1' THEN CASE state IS WHEN s0=> IF in1='1' THEN state<=s1; WHEN s1=> IF in1='0' THEN state<=s2; WHEN s2=> IF in1='1' THEN state<=s3; WHEN s3=> IF in1='0' THEN state<=s0; END CASE; END PROCESS; output_p: PROCESS (state) CASE state IS WHEN s0=> out1<="0000"; WHEN s1=> out1<="1001"; WHEN s2=> out1<="1100"; WHEN s3=> out1<="1111"; END CASE; END PROCESS; END moore; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 25

Moore FSM 3 Processes P0 P1 P2 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 26

ARCHITECTURE moore OF demo IS TYPE state_type IS (s0,s1,s2,s3); SIGNAL current_state, next_state: state_type; P0: PROCESS (current_state,in1) CASE current_ state IS WHEN s0=> IF in1='1' THEN next_state<=s1; WHEN s1=> IF in1='0' THEN next_state <=s2; WHEN s2=> IF in1='1' THEN next_state <=s3; WHEN s3=> END CASE; END PROCESS; IF in1='0' THEN next_state <=s0; P1: PROCESS (clk,reset) IF reset = '1' THEN current_state<=s0; ELSIF clk'event AND clk='1' THEN current_state<=next_state END PROCESS; P2: PROCESS (current_state) CASE current_state IS WHEN s0=> out1<="0000"; WHEN s1=> out1<="1001"; WHEN s2=> out1<="1100"; WHEN s3=> out1<="1111"; END CASE; END PROCESS; END moore; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 27

Κωδικοποίηση Καταστάσεων Δεν απαιτείται από τα περισσότερα εργαλεία σύνθεσης Προτείνεται να αφήνεται στα εργαλεία σύνθεσης η κωδικοποίηση των καταστάσεων Οδηγεί τις περισσότερες φορές σε βέλτιστα κυκλώματα ως προς επιφάνεια / χρόνο Στην περίπτωση που αυτό κρίνεται σκόπιμο η δήλωση γίνεται στο σώμα της αρχιτεκτονικής ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 28

Κωδικοποίηση Καταστάσεων ARCHITECTURE moore OF demo IS TYPE state_type IS ARRAY (1 DOWNTO 0) OF bit; CONSTANT s0 : state_type := 00 ; CONSTANT s1 : state_type := 01 ; CONSTANT s2 : state_type := 10 ; CONSTANT s3 : state_type := 11 ;.. ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 29

Mealy FSM Combinational Process Clocked Process ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 30

ENTITY demo IS PORT ( clk,in1,reset: IN std_logic; out1: OUT std_logic_vector (3 downto 0); END demo; ARCHITECTURE mealy OF demo IS TYPE state_type IS (s0,s1,s2,s3); SIGNAL state: state_type; demo_process: PROCESS(CLK,RESET) IF reset = '1' THEN state<=s0; ELSIF clk'event AND clk='1' THEN CASE state IS WHEN s0=> IF in1='1' THEN state<=s1; WHEN s1=> IF in1='0' THEN state<=s2; WHEN s2=> IF in1='1' THEN state<=s3; WHEN s3=> IF in1='0' THEN state<=s0; END CASE; END PROCESS; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 31

output_p: PROCESS (state, in1) CASE state IS WHEN s0=> IF in1= 1 THEN out1<= 0000 ; ELSE out1<= 0000 ; WHEN s1=> IF in1= 0 THEN out1<= 1100 ; ELSE out1<= 1001 ; WHEN s2=> WHEN s3=> END CASE; END PROCESS; END mealy; IF in1= 1 THEN out1<= 1111 ; ELSE out1<= 1001 ; IF in1= 0 THEN out1<= 0000 ; ELSE out1<= 1111 ; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 32

Glitch-Free FSMs Λόγω του ότι οι έξοδοι προέρχονται από συνδυαστική λογική οι FSMs είναι πιθανόν να παρουσιάζουν glitches (spikes) στην έξοδό τους Τρόποι αποφυγής: 1) Άμεση ανάθεση της εξόδου σε διάνυσμα κωδικοποίησης κατάστασης (output = state) Απαιτείται η δήλωση των κωδίκων των καταστάσεων 2) Οδήγηση της εξόδου μέσω D F/F (clocked output FSM) Οι αναθέσεις των σημάτων εξόδου γίνονται εντός της clocked process ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 33

output = state ARCHITECTURE mealy OF demo IS TYPE state_type IS ARRAY (1 DOWNTO 0) OF std_logic; CONSTANT s0: state_type :="00"; CONSTANT s1: state_type := 01"; CONSTANT s2: state_type :="10"; CONSTANT s3: state_type :="11"; SIGNAL state: state_type; demo_process: PROCESS (clk,reset) IF reset = '1' THEN state<=s0; ELSIF clk'event AND clk='1' THEN CASE state IS WHEN s0=> IF in1='1' THEN state<=s1; WHEN s1=> IF in1='0' THEN state<=s2; WHEN s2=> IF in1='1' THEN state<=s3; END CASE; END PROCESS; out1<=state; END mealy; Ανάθεση διανύσματος κατάστασης στην έξοδο ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 34

Βιβλιογραφία / άλλες πηγές P. Ashenden, The Designer s Guide to VHDL, Morgan Kaufman Publishers, 1996 S. Sjoholm and L. Lennart, VHDL for Designers, Prentice Hall, 1997 B. Cohen, VHDL Coding Styles and Methodologies, Kluwer Academic Publishers, 1999 Z. Navabi, VHDL-Analysis and Modeling of Digital Systems, Mc Graw-Hill, 1993 VHDL cookbooks of the synthesis tools ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 35

Βιβλιογραφία / άλλες πηγές On-line μαθήματα σε ASIC/VHDL design: http://www.dacafe.com/asics.htm http://www.ecs.umass.edu/ece/vspgroup/burleso n/courses/558/ http://mikro.e-technik.uni-ulm.de/vhdl/anlengl.vhd/html/vhdl-all-e.html http://www.eas.asu.edu/~yong598d/vhdl_links. html ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 36

Βιβλιογραφία / άλλες πηγές Tutorials/Papers: http://www.vhdl.org/fmf/wwwpages/fmf_ecl_m odels_paper.html http://www.bluepc.com/download.html#downloa dtop http://www.symphonyeda.com/products.htm http://www.angelfire.com/electronic/in/vlsi/vhdl.ht ml#vhdl ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 37

Βιβλιογραφία / άλλες πηγές Freeware VHDL/Synthesis tools: http://www-asim.lip6.fr/recherche/alliance/ http://www.bluepc.com/download.html#downloa dtop http://www.symphonyeda.com/products.htm http://www.ececs.uc.edu/~paw/savant/ http://www.aldec.com/downloads/ ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 38

Βιβλιογραφία / άλλες πηγές Άλλες πηγές: http://www.ieee.org http://www.acm.org http://www.vhdl.org http://tech-www.informatik.uni-hamburg.de/vhdl/ http://www.eeglossary.com/vhdl.htm http://www.ent.ohiou.edu/~starzyk/network/class /ee514/intro.html ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 39