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

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

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

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

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

Library, package και subprograms

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Structural VHDL. Structural VHDL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

VHDL Introduction. Subtitle

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

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

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

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

(Peter Ashenden, The Students Guide to VHDL)

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

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

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

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

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

Στοιχειώδης προγραμματισμός σε C++

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

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

Σχεδίαση µε CAD tools

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

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

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

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

Καράγιωργας Νικόλαος Α.Μ. 90 Τριανταφυλλόπουλος Σταύρος Α.Μ. 92 Μεταπτυχιακό Πρόγραµµα ΟΣΥΛ. Η δηµοφιλέστερη γλώσσα σχεδιασµού Hardware!

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

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

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

ΑΤΕΙ ΚΑΛΑΜΑΤΑΣ ΠΑΡΑΡΤΗΜΑ ΣΠΑΡΤΗΣ. ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ της φοιτήτριας: ΓΕΩΡΓΟΥΑΑΚΗ ΑΛΕΞΑΝΔΡΑ του ΣΤΑΥΡΟΥ

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

constant number_of_bytes : integer := 4; constant number_of_bits : integer := 8 * number_of_bytes;

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 2

Introduction to IP Cores

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

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

Σχεδίαση Υπολογιστικών

Βασικά Στοιχεία της Java

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

Μονοδιάστατοι Πίνακες

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Σχεδίαση σε VHDL και υλοποίηση σε FPGA Μονάδας Παραγωγής Μουσικού Σήματος

Προπτυχιακός φοιτητής Σχολής Θετικών Επιστημών τμήματος Φυσικής ΑΠΘ

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Συστήματα VLSI. Εισαγωγή. Γιώργος Δημητρακόπουλος. Δημοκρίτειο Πανεπιστήμιο Θράκης. Άνοιξη 2014

Βασικά Στοιχεία της Java

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4

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

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

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

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

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

Transcript:

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

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

Οντότητα - Entity Καθορίζει την επικοινωνία (interface) του component με το περιβάλλον Αποτελείται από τις δηλώσεις: του ονόματος του entity που είναι ίδιο με το όνομα του component των σημάτων εισόδου/εξόδου ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 3

Οντότητα - Entity Σύνταξη: ENTITY <identifier_name> IS PORT ( [signal] <identifier> : [mode] <type_indication> ; [signal] <identifier> : [mode] <type_ indication >) ; END [<identifier_name>] ; ΣΗΜΕΙΩΣΗ Στη συνέχεια τα παραδείγματα προϋποθέτουν ότι χρησιμοποιείται τις αρχικές δηλώσεις: LIBRARY ieee; USE ieee.std_logic_1164.all; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 4

Οντότητες - Παραδείγματα Όνομα ENTITY vhdl_comp IS PORT (signal a,b : in std_logic; signal c : out std_logic); END vhdl_comp ; Δηλώσεις σημάτων εισόδου / εξόδου Εναλλακτική περιγραφή: ENTITY vhdl_comp IS PORT (a,b : in std_logic ; -- Είσοδος c : out std_logic) ; -- Έξοδος END ; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 5

Καταστάσεις Σημάτων Εισόδου/Εξόδου in : Σήμα εισόδου Ανάγνωση σήματος out : Σήμα εξόδου Εγγραφή σήματος inout : Σήμα εισόδου/εξόδου Ανάγνωση και εγγραφή σήματος Σήμα διπλής κατεύθυνσης (bi-directional) buffer : Διάβασμα, επανεγγραφή και αποθήκευση τιμής Είναι πάντοτε σήμα εξόδου και όχι διπλής κατεύθυνσης Επιτρέπεται μόνο μία ανάθεση εντός της αρχιτεκτονικής ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 6

Καταστάσεις Σημάτων Εισόδου/Εξόδου Entity In_Port Var:=in_port; In_port <= 5; (Illegal) Entity Out_Port Var:=in_port; (Illegal) In_port <= 5; Entity InOut_Port Inout_port <=7; Var:=Inout_port; Entity Buffer Buffer<=7; Buffer<=12; (Illegal) ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 7

Αρχιτεκτονική Υπομονάδας Καθορίζει τη λειτουργία του component Αποτελείται από : τις δηλώσεις εσωτερικών σημάτων, μεταβλητών κ.λ.π. την περιγραφή της λειτουργίας του component ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 8

Αρχιτεκτονική Υπομονάδας Σύνταξη: Όνομα αρχιτεκτονικής ARCHITECTURE <architecture_name> OF <entity_identifier> IS [declarative_part] BEGIN <architecture_statement_part> end [<architecture_name>] ; Δήλωση σημάτων, μεταβλητών, σταθερών, attributes κ.λ.π. Περιγραφή λειτουργίας Όνομα του entity στο οποίο ανήκει ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 9

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

Αρχιτεκτονική Υπομονάδας Παράδειγμα: ENTITY nand IS PORT ( a, b : IN std_logic; c : OUT std_logic); END nand ; Entitiy Arch. 1 Arch. 2 Arch. 3 ARCHITECTURE nand_struct OF nand IS ARCHITECTURE nand_behav OF nand IS BEGIN c <= a NAND b ; END nand ; SIGNAL int : std_logic; BEGIN int <= a AND b; c <= NOT int ; END nand ; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 11

Αθροιστής ενός ψηφίου LIBRARY ieee; USE ieee std_logic_1164.all; Δήλωση βιβλιοθηκών και πακέτων ENTITY HA IS PORT ( a, b : IN std_logic; c, s : OUT std_logic); END HA; ARCHITECTURE rtl OF HA IS BEGIN s <= a XOR b; c <= a AND b; a END rtl; b Περιγραφή οντότητας Περιγραφή αρχιτεκτονικής s c ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 12

Σήματα Η λειτουργία του υλικού είναι «παράλληλη» από τη φύση της Κάθε φορά που αλλάζει το δυναμικό των ηλεκτρικών σημάτων αλλάζουν ταυτόχρονα και οι λογικές τιμές αυτών Ανάγκη ύπαρξης κατάλληλων δομών που να μοντελοποιούν την παράλληλη λειτουργία του υλικού Δηλώσεις ταυτοχρονισμού (Concurrent statements) Concurrent objects - Signals Τα σήματα στη VHDL μοντελοποιούν φυσικές ηλεκτρικές συνδέσεις!!! ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 13

Ανάθεση Τιμής Σήματος Σύνταξη: Signal Assignment: <target_identifier> <= <expression> ; Signal Assignment with delay: <target_identifier> <= <expression> AFTER 10 ns; Παράδειγμα: a<= 0 ; a<=b AFTER 10ns; c<= a NOR b; a<= NOT b AFTER 5 ns;!!!οι αναθέσεις τιμών με χρονική καθυστέρηση (after) δεν συνθέτονται!!! Xρησιμοποιούνται για μοντελοποίηση και εξομοίωση ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 14

Σειρά ανάθεσης τιμών σε σήματα Οι συντρέχουσες δηλώσεις ενεργοποιούνται από συμβάντα (event-driven) και εκτελούνται ταυτόχρονα Ανεξάρτητα από τη σειρά εμφάνισης στο VHDL κώδικα ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 15

Σειρά ανάθεσης τιμών σε σήματα Παράδειγμα: ARCHITECTURE example OF ex IS BEGIN a <= b; b <= c; END example; ARCHITECTURE example OF ex IS BEGIN b <= c; a <= b; END example; C B A Ίδιο κύκλωμα ανεξάρτητα από τη σειρά ανάθεσης τιμών ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 16

Δήλωση When When Statement: <target> <= <expres.> [AFTER <expres.> ] WHEN <expres.> ELSE <expres.> [AFTER <expres.> ] ; Πρέπει πάντοτε να ανατίθεται τιμή στο target σήμα Χρήση else στο τέλος αν υπάρχουν επιπλέον τιμές της συνθήκης που δεν εμφανίζονται Η VHDL 93 επιτρέπει να μην υπάρχει το τελευταίο else αλλά αυτό δεν είναι συνθέσιμο Γενικά το μεγαλύτερο μέρος της VHDL 93 δεν υποστηρίζεται από τα εργαλεία σύνθεσης ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 17

Δήλωση When ARCHITECTURE rtl OF ex IS BEGIN q <= a WHEN data = 00 ELSE b WHEN data = 11 ELSE c; END; ARCHITECTURE rtl OF three_state IS BEGIN dbus <= data WHEN enable = 1 ELSE Z ; END; a b c q enable data dbus data Όταν το data είναι std_logic_vector: dbus <= data WHEN (enable = 1 ) ELSE (OTHERS => Z ); ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 18

Δήλωση When Επιτρέπεται η χρήση περισσότερων του ενός σημάτων στην συνθήκη Προσδίδει μεγαλύτερη ευελιξία και χρησιμότητα ΠΡΟΣΟΧΗ!!! Η σειρά με την οποία εμφανίζονται οι συνθήκες στον κώδικα είναι σημαντική Ο κώδικας εντός του when (concurrent statement) είναι ακολουθιακός => Η σειρά εμφάνισης των συνθηκών είναι σημαντική q <= a WHEN en= 0 ELSE b WHEN data= 11 ELSE c WHEN enable= 1 ELSE d; Εάν η δεύτερη και τρίτη γραμμή είναι αληθείς τότε το σήμα q παίρνει την τιμή του c ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 19

Δήλωση with With Statement: <with> <expression> SELECT <target> <= <expression> WHEN <chose>; ENTITY example IS PORT ( a,b,c : IN std_logic; data : IN std_logic_vector (1 DOWNTO 0); q : OUT std_logic); END example; ARCHITECTURE rtl OF example IS BEGIN WITH data SELECT q <= a WHEN 00, b WHEN 11, c WHEN OTHERS; END; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 20

Δήλωση with With Statement: <with> <expression> SELECT <target> <= <expression> WHEN <chose>; Όλες οι καταστάσεις του σήματος που οδηγείται πρέπει να απαριθμούνται Χρήση when others Λιγότερο ευέλικτη σε σύγκριση με τη δήλωση when Η δήλωση with επιτρέπει μόνο μια έκφραση (expression) ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 21

Δήλωση assert Χρησιμοποιείται για τον έλεγχο συνθηκών και επιστρέφει (στο χρήστη ή στον εξομοιωτή) ένα error όταν η συνθήκη δεν ικανοποιείται Χρήση κυρίως στα testbenches ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 22

Δήλωση assert assert <condition> report <message> severity <error_level> assert in0/= X and in1/= X report in is not connected severity error; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 23

Αντικείμενα Κλάσεις - Τύποι Δεδομένων Κλάση Αντικείμενο Τύπος Δεδομένων Signal a: std_logic; Κάθε αντικείμενο ανήκει σε μια κλάση και έχει έναν τύπο δεδομένων Κλάση -- Τρόπος χειρισμού αντικειμένου Τύπος Δεδομένων -- Είδος δεδομένων του αντικειμένου Κλάσεις: Σήματα, Μεταβλητές, Σταθερές ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 24

Τύποι δεδομένων ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 25

Τύπος Απαρίθμησης (Enumerated Type) Καθορίζει ένα σύνολο τιμών που μπορεί να πάρει ένα αντικείμενο Χρησιμοποιούνται σε μεγάλο βαθμό για τη δήλωση των καταστάσεων μιας FSM Παράδειγμα: TYPE bit IS ( 0, 1 ); TYPE states IS (IDLE, RECEIVE, SEND); Ένα αντικείμενο τύπου bit (παραπάνω) μπορεί να πάρει μόνο τις τιμές 1 και 0. ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 26

Numerical Types Ακέραιος: Καθορίζει ένα σύνολο ακέραιων τιμών TYPE my_int IS RANGE 0 TO 15; H VHDL εμπεριέχει ένα προκαθορισμένο ακέραιο τύπο-integer- TYPE integer IS RANGE -2147483647 TO 2147483647; Είναι χρήσιμο να δηλώνεται το ακριβές εύρος του ακεραίου για λόγους μνήμης Πραγματικός: Καθορίζει ένα σύνολο πραγματικών αριθμών TYPE real IS RANGE -1.0e38 TO 1.0e38; ΠΡΟΣΟΧΗ!!! Δεν υποστηρίζεται από κανένα εργαλείο σύνθεσης ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 27

Physical Types Η VHDL υποστηρίζει τύπους για τη μοντελοποίηση φυσικών μεγεθών όπως ο τύπος time TYPE time IS RANGE -2147483647 TO 2147483647 units fs; ps=1000 fs; ns=1000 ps;. END units; Υποστηρίζει επίσης αντιστάσεις και πυκνωτές ΠΡΟΣΟΧΗ!!! Δεν υποστηρίζονται από κανένα εργαλείο σύνθεσης Χρησιμοποιούνται μόνο για εξομοίωση και για καθορισμό των προδιαγραφών (simulation and specification models) ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 28

Array Types Ο τύπος πίνακα (array) καθορίζει μια συλλογή τιμών του ίδιου τύπου. Διακρίνονται σε constraint και unconstraint. Constraint: Ο αριθμός των στοιχείων και το όνομα (index) του κάθε στοιχείου είναι προκαθορισμένα και αμετάβλητα TYPE byte IS array (7 DOWNTO 0) OF bit; CONSTANT seven : byte := 00000111 Κάθε αντικείμενο τύπου byte αποτελείται από 8 στοιχεία Κάθε στοιχείο έχει ένα προκαθορισμένο «όνομα» seven(0), seven(4) ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 29

Array Types Ο τύπος πίνακα (array) καθορίζει μια συλλογή τιμών του ίδιου τύπου. Διακρίνονται σε constraint και unconstraint. Unconstraint: Ο αριθμός και το όνομα κάθε στοιχείου δεν καθορισμένα TYPE bit_vector IS array (natural range < >) OF bit; CONSTANT eight: bit_vector (3 DOWNTO 0) := 0011 ; ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 30

ΙΕΕΕ-1076 Προκαθορισμένοι τύποι Το πρότυπο IEEE-1076 περιλαμβάνει τους ακόλουθους τύπους δεδομένων TYPE bit IS ( 0, 1 ); TYPE bit_vector IS array (integer RANGE < >) OF bit; TYPE integer IS RANGE minint TO maxint; SUBTYPE positive IS integer RANGE 0 TO maxint; SUBTYPE natural IS integer RANGE 0 TO maxint; TYPE boolean IS (true, false); ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 31

ΙΕΕΕ-1076 Προκαθορισμένοι τύποι Περιορισμοί: Μη δυνατότητα περιγραφής three-state Μη δυνατότητα οδήγησης σήματος από περισσότερα του ενός σήματα Μη μοντελοποίηση αδιάφορων καταστάσεων (don t care) Ανάπτυξη των τύπων std_logic_vector και std_ulogic_vector ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 32

Τύποι δεδομένων std_ulogic / std_logic Std_ulogic: U -- Un-initialized X -- Forcing unknown 0 -- Forcing 0 1 -- Forcing 1 Z -- High impendance W -- Weak unknown L -- Weak 0 H -- Weak 1 - -- don t care Std_logic Ίδιες τιμές με std_ulogic Επίλυση συγκρούσεων (conflicts) όταν ένα σήμα οδηγείται από περισσότερους του ενός σήματα / οδηγούς (drivers) ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 33

Τύποι δεδομένων std_ulogic / std_logic ENTITY ex IS Entity ex is PORT ( d,c,en1.en2: IN std_logic; port( d,c,en1,en2: dbus: in std_logic; OUT std_logic); END; dbus: out std_logic); end; ARCHITECTURE rtl OF ex IS Architecture BEGIN rtl of ex is begin dbus <= d WHEN en1= 1 ELSE Z ; dbus<= <= d wc hen WHEN enable1='1' en2= 1 else ELSE 'Z'; Z ; END; dbus<= c w hen enable2='1' else 'Z'; end ; EN1 D EN2 C DBUS ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 34

Τύποι δεδομένων std_ulogic / std_logic ENTITY ex IS PORT ( d,c,en1.en2: IN std_logic; OUT std_logic); Entity ex is port( d,c,en1,en2: in std_ulogic; dbus: dbus: out std_ulogic); end; END; Architecture ARCHITECTURE rtl of ex rtl is OF ex IS begin BEGIN dbus<= d w hen enable='1' else 'Z'; dbus<= c w hen enable2='1' else 'Z'; end ; dbus <= d WHEN en1= 1 ELSE Z ; dbus <= d WHEN en2= 1 ELSE Z ; END; ERROR ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 35

Ανάθεση Σήματος Παράδειγμα ARCHITECTURE concurrent OF ex IS SIGNAL z, a, b, c, d :std_logic; BEGIN z <= a AND b; z <= c AND d; END concurrent; a b c d? z Resolution function Τα σήματα είναι std_logic Κάθε συντρέχουσα ανάθεση δημιουργεί έναν οδηγό (driver) στο σήμα στο οποίο γίνεται η ανάθεση ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 36

Mixed Types Η VHDL είναι strongly typed language Όλες οι μεταβλητές και τα σήματα πρέπει να είναι κάποιου τύπου Οι πράξεις, αναθέσεις κ.λ.π. πρέπει να γίνονται σε μεταβλητές \ σήματα του ιδίου τύπου SIGNAL a: std_logic := 0 ; SIGNAL b, c : bit := 0 ; c <= a AND b; Compilation error ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 37

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

Βιβλιογραφία / άλλες πηγές 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 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 39

Βιβλιογραφία / άλλες πηγές 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 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 40

Βιβλιογραφία / άλλες πηγές 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 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 41

Βιβλιογραφία / άλλες πηγές 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/ ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 42

Βιβλιογραφία / άλλες πηγές Άλλες πηγές: 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 ΑΣΗΜΑΚΗΣ-ΒΟΥΡΒΟΥΛΑΚΗΣ-ΚΑΚΑΡΟΥΝΤΑΣ-ΛΕΛΙΓΚΟΥ 43