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

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

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

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

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

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

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

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

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

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

Library, package και subprograms

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

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

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

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

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

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

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

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

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

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

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

Structural VHDL. Structural VHDL

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Introduction to IP Cores

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

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

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

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

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

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

VHDL Introduction. Subtitle

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

(Peter Ashenden, The Students Guide to VHDL)

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

8 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού: Μοντέλα Συνδυαστικών Κυκλωµάτων

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

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

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

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

Βαζικές Δνόηηηες VHDL

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

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


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

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

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

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

VERILOG. Γενικά περί γλώσσας

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

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

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

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

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

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

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

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

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

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

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

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

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

Transcript:

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

Περίγραµµα διάλεξης Υποκυκλώµατα Περιγραφή δοµής στη VHDL Βιβλιοθήκες και πακέτα Σύγχρονες ή παράλληλες εντολές Επαναληπτική ανάθεση και δηµιουργία στιγµιότυπων Παραµετρική περιγραφή Η δοµή της διαδικασίας Ακολουθιακές εντολές Περιγραφή συµπεριφοράς στη VHDL 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 2

Υποκυκλώµατα Κάθε οντότητα της VHDL µπορεί να λειτουργήσει ως υποκύκλωµα ή συνιστώσα (component) σε µια οντότητα υψηλότερου επιπέδου ήλωση υποκυκλώµατος (component declaration): COMPONENT component_name PORT (local port list); END COMPONENT; ηµιουργία στιγµιότυπου υποκυκλώµατος (component instantiation): inst_label: component_name PORT MAP (port association list); Προσοχή: Απαγορεύεται η απευθείας αντιστοίχιση µιας σταθερής τιµής στη θύρα ενός υποκυκλώµατος, και αυτό θα πρέπει να γίνει µε τον ορισµό ενός κατάλληλου βοηθητικού σήµατος π.χ. PORT MAP ( 1, x, y, s) high <= 1 ; PORT MAP (high, x, y, s) 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 3

Περιγραφή δοµής στη VHDL (1) Βασίζεται στον ιεραρχικό ορισµό υποκυκλωµάτων και τη µεταξύ τους διασύνδεση στο ανώτερο επίπεδο Παράδειγµα: αθροιστής 4-bit Ξεκινάµε από τον ορισµό ενός πλήρη αθροιστή 1-bit: ARCHITECTURE dataflow OF fulladd IS s <= x XOR y XOR ci; co <= (x AND y) OR (ci AND x) OR (ci AND y); ci END dataflow; s x y co 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 4

Περιγραφή δοµής στη VHDL (2) Αθροιστής 4-bit µε περιγραφή δοµής: ARCHITECTURE structure OF adder4 IS SIGNAL c : STD_LOGIC_VECTOR(1 TO 3); COMPONENT fulladd PORT (ci, x, y : IN STD_LOGIC; s, co : OUT STD_LOGIC); END COMPONENT; stage0 :fulladd PORT MAP (ci, x(0), y(0), s(0), c(1)); stage1: fulladd PORT MAP (c(1), x(1), y(1), s(1), c(2)); stage2: fulladd PORT MAP (c(2), x(2), y(2), s(2), c(3)); stage3: fulladd PORT MAP (ci => c(3), co => co, x => x(3), y => y(3), s => s(3)); END structure; x(0) y(0) x(1) y(1) x(2) y(2) x(3) y(3) ci FA co c(1) FA c(2) FA c(3) FA s(0) s(1) s(2) s(3) 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 5

Βιβλιοθήκες και πακέτα (1) Οι δηλώσεις των υποκυκλωµάτων µπορούν να γίνουν συγκεντρωτικά σε ένα πακέτο (package) της VHDL Γενικότερα ένα πακέτο αποτελεί ένα αρχείο κώδικα στο οποίο ορίζονται συγκεντρωτικά διάφορες δοµές της γλώσσας (π.χ. τύποι δεδοµένων, καθολικά ή global σήµατα, υποκυκλώµατα) και το οποίο µπορεί στη συνέχεια να χρησιµοποιηθεί από οποιοδήποτε άλλο αρχείο κώδικα Ορισµός πακέτου: PACKAGE package_name IS [TYPE declarations;] [SIGNAL declarations;] [COMPONENT declarations;] END package_name; 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 6

Βιβλιοθήκες και πακέτα (2) Ηπρόσβαση σε ένα υπάρχον πακέτο γίνεται µε τη δήλωση: LIBRARY library_name; USE library_name.package_name.all; όπου το όνοµα βιβλιοθήκης (library) αντιπροσωπεύει τη φυσική τοποθεσία στους καταλόγους αρχείων (directories) όπου βρίσκεται το επιθυµητό πακέτο Ειδική περίπτωση βιβλιοθήκης είναι η βιβλιοθήκη work που αντιπροσωπεύει τον κατάλογο εργασίας (working directory), και η πρόσβαση σε οποιοδήποτε πακέτο που έχει δηµιουργηθεί στο χώρο αυτό γίνεται απλά µε τη δήλωση: USE work.package_name.all; 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 7

Σύγχρονες ή παράλληλες εντολές (1) Είναι όλες εντολές ανάθεσης σήµατος (signal assignment) και ουσιαστικά επεκτείνουν τη βασική εντολή ανάθεσης (µε τον τελεστή <=) που συναντάµε στην περιγραφή ροής δεδοµένων: signal_name <= assignment_expression; εν έχει καµία σηµασία η σειρά αναγραφής τους, πράγµα που σηµαίνει ότι τα ακόλουθα τµήµατα κώδικα θα είναι ισοδύναµα: x <= a + b; z <= x + c; z <= x + c; x <= a + b; Προσοχή: Απαγορεύεται η απευθείας ανάθεση σηµάτων µε διαφορετικούς τύπους και θα πρέπει να χρησιµοποιηθεί κατάλληλη συνάρτηση µετατροπής για κάτι τέτοιο π.χ. εάν x είναι σήµα τύπου STD_LOGIC_VECTOR(7 DOWNTO 0) και y σήµα τύπου INTEGER RANGE 0 TO 255, τότε συνάρτηση µετατροπής x <= CONV_STD_LOGIC_VECTOR (y,8) (απαιτείται αρχικά η δήλωση USE ieee.std_logic_arith.all;) 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 8

Σύγχρονες ή παράλληλες εντολές (2) Ανάθεση σήµατος υπό συνθήκη (conditional signal assignment): signal_name <= assignment_expr WHEN conditional_expr ELSE [assignment_expr WHEN conditional_expr ELSE] assignment_expr; Ανάθεση σήµατος µε επιλογή (selected signal assignment): WITH selection_signal SELECT signal_name <= assignment_expr WHEN selection_values [, assignment_expr WHEN selection_values ]; Η διαφορά µεταξύ των δύο παραπάνω είναι ότι µε την πρώτη µπορεί κανείς να περιγράψει προτεραιότητα (καθώς κάθε µια συνθήκη έχει µεγαλύτερη προτεραιότητα από τις υποκείµενες σε αυτήν) ενώ στη δεύτερη οι συνθήκες είναι (και θα πρέπει να είναι) αµοιβαία αποκλειόµενες 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 9

Σύγχρονες ή παράλληλες εντολές (3) Εφαρµογή: περιγραφή πολυπλέκτη 2-σε-1 w0 0 ARCHITECTURE dataflow OF mux2to1 IS w1 1 f <= w0 WHEN s = 0 ELSE w1; s END dataflow; Εφαρµογή: περιγραφή κυκλώµατος µε βάση τον πίνακα αλήθειας ARCHITECTURE dataflow OF tr_table IS s <= x & y; WITH s SELECT f <= 0 WHEN 00, 1 WHEN 01, 1 WHEN 10, 0 WHEN OTHERS; END dataflow; x y f 0 0 0 0 1 1 1 0 1 1 1 0 x y f f 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 10

Επαναληπτική ανάθεση και δηµιουργία στιγµιότυπων Η επαναληπτική ανάθεση σήµατος ή δηµιουργία στιγµιότυπου υποκυκλώµατος µπορεί να γίνει µε µια δοµή βρόχου όπως η ακόλουθη: generate_label: FOR index_variable IN start_value TO end_value GENERATE ci [COMPONENT instantiation statements;] [concurrent assignment statements;] END GENERATE; Παράδειγµα: αθροιστής 4-bit ARCHITECTURE structure OF adder4 IS SIGNAL c : STD_LOGIC_VECTOR(0 TO 4); c(0) <= ci; co <= c(4); gen: FOR i IN 0 TO 3 GENERATE stg: fulladd PORT MAP (c(i), x(i), y(i), s(i), c(i+1)); END GENERATE; END structure; x(0) y(0) x(1) y(1) x(2) y(2) x(3) y(3) FA co c(1) FA c(2) FA c(3) FA s(0) s(1) s(2) s(3) 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 11

Παραµετρική περιγραφή (1) Εάν θέλουµε αθροιστή n-bit: ENTITY addern IS GENERIC (n : INTEGER := 4); PORT (ci : IN STD_LOGIC; x, y : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0); s : OUT STD_LOGIC_VECTOR(n-1 DOWNTO 0); co : OUT STD_LOGIC); END addern; ARCHITECTURE structure OF addern IS SIGNAL c : STD_LOGIC_VECTOR(0 TO n); x(n-1) c(0) <= ci; co <= c(n); y(n-1) gen: FOR i IN 0 TO n-1 GENERATE stg: fulladd PORT MAP (c(i), x(i), y(i), s(i), c(i+1)); END GENERATE; END structure; x(0) y(0) ci FA... co c(1) FA c(n-1) s(0) s(n-1) 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 12

Παραµετρική περιγραφή (2) Οι παραµετρικές οντότητες µπορούν να χρησιµοποιηθούν ως υποκυκλώµατα σε άλλες οντότητες µε την ακόλουθη αντιστοίχιση της παραµέτρου: GENERIC MAP (parameter_name => parameter_value) η οποία τοποθετείται πριν από την αντιστοίχιση PORT MAP των θυρών (εάν δεν δηλωθεί τότε υπονοείται η προκαθορισµένη ή default τιµή της παραµέτρου) Για ένα σήµα µε παραµετρικό (δηλαδή άγνωστο εκ των προτέρων) αριθµό bits η ανάθεση µιας σταθερής τιµής µπορεί να γίνει µε την εντολή (aggregate): signal_name <= (OTHERS => value); 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 13

Παραµετρική περιγραφή (3) Παράδειγµα: NAND n-εισόδων ENTITY nandn IS GENERIC (n : INTEGER := 4); PORT (x : IN STD_LOGIC_VECTOR(1 TO n); f : OUT STD_LOGIC); END nandn; ARCHITECTURE dataflow OF nandn IS SIGNAL tmp : STD_LOGIC_VECTOR(1 TO n); tmp <= (OTHERS => 1 ); f <= 0 WHEN x = tmp ELSE 1 ; END dataflow; 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 14

Ηδοµή της διαδικασίας Ηδοµή διαδικασίας ή PROCESS χρησιµοποιείται για να στεγάσει τις ακολουθιακές εντολές που εκτελούνται σειριακά κατά τη µετάφραση, αλλά από µόνη της αποτελεί µια σύγχρονη εντολή PROCESS [ (signal_name [,signal_name]) ] [VARIABLE declarations;] [sequential statements;] [VARIABLE assignment statements;] END PROCESS; Λίστα ευαισθησίας (sensitivity list) της διαδικασίας είναι κάθε σήµα που χρησιµοποιεί η διαδικασία και του οποίου η αλλαγή µεταβάλλει την έξοδο του κυκλώµατος (για συνδυαστικά κυκλώµατα η λίστα ευαισθησίας περιλαµβάνει όλες τις εισόδους που χρησιµοποιούνται µέσα στη διαδικασία) 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 15

Παρατηρήσεις Οι εντολές µιας διαδικασίας εκτελούνται σειριακά από το µεταφραστή αλλά τα αποτελέσµατά τους δεν είναι ορατά έξω από τη διαδικασία έως ότου περατωθεί η εκτέλεση Συνέπεια αυτού είναι ότι εάν σε ένα σήµα γίνουν περισσότερες της µιας αναθέσεις µέσα στο σώµα της διαδικασίας θα υπερισχύσει η τελευταία (στις σύγχρονες εντολές δεν επιτρέπονται περισσότερες αναθέσεις στο ίδιο σήµα, εκτός µερικών ειδικών περιπτώσεων όπως για παράδειγµα οι έξοδοι δύο ή περισσότερων αποµονωτών τριών καταστάσεων) Τα δεδοµένα τύπου VARIABLE (µεταβλητές) εµφανίζονται µόνο µέσα σε διαδικασίες (η εµβέλειά τους είναι τοπική) και δεν αντιστοιχούν σε σήµατα αλλά έχουν βοηθητικό ρόλο στην αποθήκευση κάποιων τιµών (η ανάθεσή τους γίνεται µε τον τελεστή := και υλοποιείται άµεσα κατά την εκτέλεση της διαδικασίας και όχι στο τέλος της) 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 16

Ακολουθιακές εντολές (1) Ακολουθιακή δοµή συνθήκης: IF conditional_expression THEN [sequential statements;] [ELSIF conditional_expression THEN] [sequential statements;] [ELSE] [sequential statements;] END IF; Ακολουθιακή δοµή επιλογής: CASE selection_signal IS WHEN selection_values => [sequential statements;] [WHEN selection_values =>] [sequential statements;] END CASE; 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 17

Ακολουθιακές εντολές (2) Όπως και µε τις αντίστοιχες σύγχρονες εντολές, η διαφορά µεταξύ των δύο παραπάνω είναι ότι η πρώτη διαθέτει ενδογενή την έννοια της προτεραιότητας ενώ για τη δεύτερη οι συνθήκες πρέπει να είναι αµοιβαία αποκλειόµενες Οι παραπάνω εντολές, όµως, είναι πιο ισχυρές από τις αντίστοιχες σύγχρονες καθώς για κάθε συνθήκη µπορούν να εκτελεστούν οποιοδήποτε είδος και οποιοσδήποτε αριθµός ακολουθιακών εντολών και αναθέσεων, ενώ στις πρώτες αντιστοιχεί µόνο µία εντολή ανάθεσης σε κάθε συνθήκη Ακολουθιακή δοµή βρόχου: FOR index_variable IN start_value TO end_value LOOP [sequential statements;] END LOOP; 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 18

Περιγραφή συµπεριφοράς στη VHDL (1) Βασίζεται στη χρήση ακολουθιακών εντολών και τη δοµή PROCESS Περιγραφή συµπεριφοράς του πολυπλέκτη 2-σε-1: ARCHITECTURE behavior OF mux2to1 IS PROCESS (w0, w1, s) IF s = 0 THEN f <= w0; ELSE f <= w1; END IF; END PROCESS; END behavior; w0 w1 s 0 1 f 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 19

Περιγραφή συµπεριφοράς στη VHDL (2) Εναλλακτική περιγραφή συµπεριφοράς του πολυπλέκτη 2-σε-1: ARCHITECTURE behavior OF mux2to1 IS PROCESS (w0, w1, s) f <= w0; IF s = 1 THEN f <= w1; END IF; END PROCESS; END behavior; Προσοχή: Η σειρά αναγραφής των ακολουθιακών εντολών επηρεάζει το τελικό αποτέλεσµα καθώς αυτές εκτελούνται σειριακά?... IF s = 1 THEN f <= w1; ENDIF; f <= w0;... 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 20

Περιγραφή συµπεριφοράς στη VHDL (3) Περιγραφή συµπεριφοράς κυκλώµατος µε βάση τον πίνακα αλήθειας: ARCHITECTURE behavior OF tr_table IS PROCESS (x, y) s <= x & y; CASE s IS WHEN 00 => f <= 0 ; WHEN 01 => f <= 1 ; WHEN 10 => f <= 1 ; WHEN OTHERS => f <= 0 ; END CASE; END PROCESS; END behavior; x y x y f 0 0 0 0 1 1 1 0 1 1 1 0 f 14-Οκτ-04 Ψηφιακή Σχεδίαση µε CAD ΙΙ ιαφ. 21