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

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

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

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

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

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

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

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

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

Structural VHDL. Structural VHDL

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

Library, package και subprograms

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VHDL Introduction. Subtitle

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Introduction to IP Cores

(Peter Ashenden, The Students Guide to VHDL)

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τµήµα Ηλεκτρονικής & Μηχανικών Υπολογιστών Εργαστήριο Μικροεπεξεργαστών & Υλικού Πολυτεχνειούπολη Χανίων Τ.Κ.

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

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

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

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

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

Εισαγωγή στην πληροφορική

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

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

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

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

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

7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

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

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

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

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

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

Εισαγωγή στην πληροφορική

ΗΥ-225. Verilog HDL. Τα βασικά...

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


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

Υπολογιστικά Συστήματα

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

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

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

Διάλεξη 5η: Εντολές Επανάληψης

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

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

Transcript:

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

Εισαγωγή Very High Speed Integrated Circuits Hardware Description Language ιαφορές από γλώσσες προγραμματισμού: παράλληλη εκτέλεση εντολών προσδιορισμός καθυστερήσεων περιγραφή συστήματος ως διασύνδεση διαφορετικών δομικών μονάδων (components) 2

Βασική δομή ενός VHDL αρχείου Δήλωση Οντότητας ήλωση οντότητας (entity declaration): δήλωση σημάτων εισόδου, εξόδου Σώμα Αρχιτεκτονικής Process statements Αναθέσεις σημάτων Στιγμιότυπα οντοτήτων Σώμα Αρχιτεκτονικής (architecture body): περιγραφή της οντότητας, μπορεί να αποτελείται από διασυνδεδεμένες δομικές μονάδες (components), διαδικασίες (processes) και αναθέσεις σημάτων, τα οποία λειτουργούν παράλληλα 3

ήλωση οντότητας Mode in: είσοδος out: έξοδος που δεν διαβάζεται εσωτερικά buffer: έξοδος που διαβάζεται και εσωτερικά inout: είσοδος/έξοδος Τύποι bit/ bit_vector std_logic/std_logic_vector Boolean/integer/real/character time std_logic: ορίζεται στο package std_logic_1164 της IEEE βιβλιοθήκης, προτιμάται από το bit type, περιγράφει ένα ψηφιακό σύστημα με ακρίβεια αφού παίρνει τιμές 0, 1, - (don t care), Z (high impedance μία γραμμή δεν οδηγείται), κ.α. 4

ήλωση οντότητας Προαιρετικές Καθορίζουν τοπικές σταθερές (χρονισμούς μεγέθη) 5

ήλωση οντότητας Άθροιση δύο 4-bit αριθμών entity adder is port ( a, b: in std_logic_vector (3 downto 0); sum : out std_logic_vector (4 downto 0)); end adder; 6

Σώμα αρχιτεκτονικής Καθορίζει πώς λειτουργεί το κύκλωμα και πώς υλοποιείται 7

Επίπεδα σχεδιασμού Behavioral Dataflow Structural Το κομμάτι του behavioral που μπορεί να περάσει από σύνθεση RTL - Register Transfer Level 8

Structural περιγραφή Τα συστήματα περιγράφονται ως διασύνδεση components. Υπονοείται μία ιεραρχική δομή. Για κάθε χρησιμοποιούμενο component πρέπει να γίνει: ήλωση του component στο σώμα αρχιτεκτονικής όπου θα χρησιμοποιηθεί Instantiation του component, όπου γίνεται και η διασύνδεσή του με το περιβάλλον σύστημα Ηδήλωσητουcomponent είναι όμοια με την δήλωση της αντίστοιχης οντότητας 9

Structural περιγραφή Τα συστήματα περιγράφονται ως διασύνδεση components. Υπονοείται μία ιεραρχική δομή. Για κάθε χρησιμοποιούμενο component πρέπει να γίνει: ήλωση του component στο σώμα αρχιτεκτονικής όπου θα χρησιμοποιηθεί Instantiation του component, όπου γίνεται και η διασύνδεσή του με το περιβάλλον σύστημα Πέρασμα παραμέτρων στις θύρες με βάση το όνομα ή με βάση τη θέση (το πρώτο port αντιστοιχεί στο πρώτο σήμα, το δεύτερο port αντιστοιχεί στο δεύτερο σήμα, κ.ο.κ.). Η θέση των σημάτων πρέπει να είναι στην ίδια σειρά με τα component s ports. 10

Structural περιγραφή architecture Structural of TrafiicLights is component AND2 port (in1, in2: in std_logic; out1: out std_logic); end component; component OR2 port (in1, in2: in std_logic; out1: out std_logic); end component; component NOT1 port (in1: in std_logic; out1: out std_logic); end component; signal VEH_AT_MAIN_INVERT, INT: std_logic; begin U0: NOT1 port map (out1=>veh_at_main_invert, in1=>veh_at_main); U1: AND2 port map (VEH_AT_MAIN, VEH_AT_LOCAL, INT); U2: OR2 port map (VEH_AT_MAIN_INVERT, INT, RED); end Structural; 11

Dataflow περιγραφή Τα συστήματα περιγράφονται με concurrent statements. Υπάρχουν τρεις βασικές κατηγορίες assignments: Απλά assignments (όπως αυτά που χρησιμοποιούνται μέσα σε processes, με τη διαφορά ότιεδώεκτελούνταιπαράλληλα, και για αυτό ονομάζονται concurrent) Υπό συνθήκη (conditional) assignments Assignments επιλεγμένων σημάτων (selected signals) 12

Απλά assignments Target_signal <= expression; Sum <= (A xor B) xor Cin; Carry <= (A and B); Z <= (not X) or Y after 2 ns; 13

Conditional assignments Target_signal <= expression when Boolean_condition else expression when Boolean_condition else : expression; Το target signal θα πάρει την τιμή της πρώτης έκφρασης για την οποία η Boolean condition θα είναι αληθής. Η δομή when-else είναι χρήσιμη για την περιγραφή λογικών συναρτήσεων που έχουν μορφή πίνακα αλήθειας. 14

Conditional assignments Target_signal <= expression when Boolean_condition else expression when Boolean_condition else : expression; Παράδειγμα (2-to-1 mux): entity MUX_2_1 is port (A, B: in std_logic; SEL: in std_logic; Z: out std_logic); end MUX_2_1; architecture concurr_mux21 of MUX_2_1 is begin Z <= A when SEL = 0 else B; end concurr_mux21; 15

Selected signals assignments with choice_expression select target_name <= expression when choices, expression when choices, : expression when choices; Όπως και η δομή when-else είναι χρήσιμη για την περιγραφή μιας συνάρτησης σαν πίνακα αλήθειας. Είναι ισοδύναμη των case δομών μέσα σε processes 16

Selected signals assignments with choice_expression select target_name <= expression when choices, expression when choices, : expression when choices; Παράδειγμα (2-to-1 mux): entity MUX_2_1 is port (A, B: in std_logic; SEL: in std_logic; Z: out std_logic); end MUX_2_1; architecture concurr_mux21b of MUX_2_1 is begin with SEL select Z <= A when 0, B when 1 ; end concurr_mux21b; 17

Behavioral περιγραφή Ηβασικήδομήσεbehavioral περιγραφές είναι η process Η δομή process δηλώνεται μέσα σε μία αρχιτεκτονική και εκτελείται παράλληλα με άλλες δομές (concurrent) Οι εντολές εσωτερικά στη δομή εκτελούνται ακολουθιακά Στη δομή process υπάρχει μία λίστα με σήματα στα οποία είναι «ευαίσθητη» ηδιαδικασίαprocess Κάθε αλλαγή στην τιμή αυτών των σημάτων προκαλεί την άμεση εκτέλεση της διαδικασίας Εναλλακτικά μπορεί να συμπεριληφθεί μία εντολή WAIT Μεταβλητές/ σταθερές ορίζονται στο τμήμα δηλώσεων της, πριν το begin 18

Ηδομήprocess Μία process χωρίς wait statement εκτελείται για πάντα 19

Wait statements Καθορίζουν πότε αντιδρούν οι processes σε αλλαγές στις τιμές σημάτων To wait statement αναγκάζει μία process να σταματήσει και ορίζει υπό ποια συνθήκη θα ξεκινήσει πάλι. wait_statement <= [label:] wait [on signal_name {, }] [until bool_expr] [for time_expr]; Λίστα ευαισθησίας Λογική Συνθήκη Χρονικός περιορισμός Μπορούμε να συμπεριλάβουμε κάθε συνδυασμό ή και κανέναν από αυτούς σε ένα wait statement 20

Wait statements Λίστα ευαισθησίας Ξεκινάει με την λέξη on και καθορίζει μία λίστα από σήματα στα οποία αντιδρά η process Εάν συμβεί ένα γεγονός (αλλαγή τιμής) σε ένα σήμα που ανήκει σε λίστα ευαισθησίας τότε η process ξεκινάει αμέσως half_add : process begin sum<=a xor b; carry<= a and b; wait on a,b; end process; half_add : process (a, b) begin sum<=a xor b; carry<= a and b; end process; Ένα wait statement με μία λίστα ευαισθησίας είναι ισοδύναμο με μία process που εμπεριέχει λίστα ευαισθησίας Το παραπάνω παράδειγμα περιγράφει συνδυαστική λογική. Συνήθως, τα processes χρησιμοποιούνται για την περιγραφή ακολουθιακής λογικής. 21

if statements Παράδειγμα (2-to-1 mux): entity MUX_2_1 is port (A, B, SEL: in std_logic; Z: out std_logic); end MUX_2_1; architecture behav_mux21 of MUX_2_1 is begin P1: process(a, B, SEL) begin if SEL= 0 then Z<=A; else Z<=B; end if; end process P1; end behav_mux21; 22

case statements Χρησιμοποιείται, όπως και η if, μέσα σε processes if, case: αυτό που περιγράφουν συντίθεται loop statements (π.χ. for, while): μπορούν να χρησιμοποιηθούν σε κάποιες περιπτώσεις. Γενικά αποφεύγονται, γιατί αν δεν χρησιμοποιηθούν με συγκεκριμένο τρόπο, το αποτέλεσμα της σύνθεσης είναι απρόβλεπτο. 23

case statements Παράδειγμα (2-to-1 mux): entity MUX_2_1 is port (A, B, SEL: in std_logic; Z: out std_logic); end MUX_2_1; architecture behav_mux21 of MUX_2_1 is begin P2: process(a, B, SEL) begin case SEL is when 0 => Z<=A; when 1 => Z<=B; end case; end process P2; end behav_mux21; 24