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

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

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

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

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

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

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

Library, package και subprograms

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

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

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

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

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

Structural VHDL. Structural VHDL

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

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

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

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

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

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

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

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

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

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

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

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


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

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

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

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

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

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

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

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

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

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

VHDL Introduction. Subtitle

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

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

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

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

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

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

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

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

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

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

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

(Peter Ashenden, The Students Guide to VHDL)

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

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

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

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

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


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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

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

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

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

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

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

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

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

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

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

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

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

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

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

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

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

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

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

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

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

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

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

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

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

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

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

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

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

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

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

ΑΣΚΗΣΗ 9η-10η ΑΡΙΘΜΗΤΙΚΗ-ΛΟΓΙΚΗ ΜΟΝΑΔΑ ΕΝΟΣ ΨΗΦΙΟΥ (1-BIT ALU)

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

Σχεδιασμος Ολοκληρωμένων Κυκλωμάτων με Χρήση VHDL: Πρακτικά Θέματα

Transcript:

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 VHDL, Χαρακτηριστικά και τρόποι περιγραφής Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ http://diceslab.cied.teiwest.gr E-mail: pkitsos@teimes.gr Αντίρριο 13/10/2015

ΔΟΜΗ VHDL ΚΩΔΙΚΑ Βιβλιοθήκες: Δήλωση των βιβλιοθηκών που θα χρησιμοποιηθούν (περιέχουν τους τύπους δεδομένων που θα χρησιμοποιηθούν στον κώδικα) Οντότητα (Entity declaration): δήλωση ακροδεκτών εισόδου, εξόδου Αρχιτεκτονική (Architecture body): περιγραφή του τρόπου λειτουργίας του κυκλώματος, μπορεί να αποτελείται από διασυνδεδεμένες δομικές μονάδες (components), διαδικασίες (processes) και αναθέσεις σημάτων, τα οποία λειτουργούν παράλληλα

ΒΙΒΛΙΟΘΗΚΕΣ Για τη δήλωση της βιβλιοθήκης απαιτούνται Αρχικά η δήλωση του ονόματός της Η δήλωση χρήσης συγκεκριμένου πακέτου από τη παραπάνω βιβλιοθήκη --------------------------------------- LIBRARY όνομα_βιβλιοθήκης; USE όνομα_βιβλιοθήκης.όνομα_πακέτου.μέρη_πακέτου; --------------------------------------- Το (;) υποδηλώνει το τέλος της εντολής, ενώ οι δύο συνεχόμενες παύλες (--) υποδηλώνουν σχόλιο Π.χ. LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY work; USE work.all; Παρατήρηση: Περισσότερα για τις βιβλιοθήκες στους τύπους δεδομένων

ΟΝΤΟΤΗΤΑ (ENTITY) (1/3) Περιγράφει των τρόπο διασύνδεσης του κυκλώματος Δήλωση των ακροδεκτών (θυρών) εισόδων-εξόδων του κυκλώματος Δήλωση σταθερών που επηρεάζουν την αρχιτεκτονική Τύποι ακροδεκτών (mode): IN, OUT, INOUT, BUFFER IN: Είσοδος OUT: Έξοδος, δε διαβάζεται εσωτερικά INOUT: Είσοδος Έξοδος BUFFER: Έξοδος, που διαβάζεται και εσωτερικά Τύποι δεδομένων: bit/ bit_vector std_logic/ std_logic_vector Boolean/ integer/ real κλπ

ΟΝΤΟΤΗΤΑ (ENTITY) (2/3) Στη δήλωση generic μπορούμε να δηλώσουμε σταθερές που προσδιορίζουν το κύκλωμα (επηρεάζουν την αρχιτεκτονική) Συνήθως καθορίζουν χρόνο και μέγεθος Δεν είναι υποχρεωτική η χρήση της

ΟΝΤΟΤΗΤΑ (ENTITY) (3/3) Πύλη NAND 2 εισόδων FF τύπου D ENTITY nand_gate IS PORT (A, B : IN BIT; X: OUT BIT); END nand_gate; ENTITY dff IS PORT (d, clk, rst: IN STD_LOGIC; q: OUT STD_LOGIC); END dff;

ΑΡΧΙΤΕΚΤΟΝΙΚΗ (1/2) Περιέχει την περιγραφή του τρόπου συμπεριφοράς και διασύνδεσης του κυκλώματος Δηλώνονται σταθερές, σήματα, υποπρογράμματα κ.λ.π.

ΑΡΧΙΤΕΚΤΟΝΙΚΗ (2/2) Πύλη NAND 2 εισόδων ARCHITECTURE my_arch OF nand_gate IS BEGIN X<=A nand B; END my_arch; Ίδιο όνομα με την ENTITY

ΤΡΟΠΟΙ ΠΕΡΙΓΡΑΦΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Στη VHDL υπάρχουν τρεις τρόποι περιγραφής μιας αρχιτεκτονικής Συντρέχων (dataflow) που εκτελείται παράλληλα Ακολουθιακός (behiavioral) που εκτελείται διαδοχικά (ή ακολουθιακά) Με χρήση υποκυλωμάτων (structural) κατά το οποίο ένα κύκλωμα για τη κατασκευή του χρησιμοποιεί άλλα υποκυκλώματα (μικρότερης ιεραρχίας). Π.χ ένας πλήρης αθροιστής των 8-bit κατασκευάζεται από οκτώ πλήρης αθροιστές 1-bit ο καθένας

ΡΟΗ ΣΧΕΔΙΑΣΜΟΥ ΨΗΦΙΑΚΩΝ ΚΥΚΛΩΜΑΤΩΝ Συγγραφή κώδικα VHDL Μεταγλώττιση κώδικα σε ένα δικτύωμα πυλών Βελτιστοποίηση ως προς τη ταχύτητα ή την επιφάνεια Δυνατότητα προσομοίωσης Φυσικός Σχεδιασμός (Τοποθέτηση και Καλωδίωση) Δυνατότητα προσομοίωσης

ΜΕΤΑΓΛΩΤΤΙΣΗ

ΠΡΟΣΟΜΟΙΩΣΗ Προσομοίωση του πλήρη αθροιστή του 1-bit

ΚΥΚΛΟΣ ΠΡΟΣΟΜΟΙΩΣΗΣ H VHDL χρησιμοποιεί έναν κύκλο προσομοίωσης για τη μοντελοποίηση της διέγερσης (stimulus) και της απόκρισης (response) των ψηφιακών κυκλωμάτων

ΔΕΣΜΕΥΜΕΝΕΣ ΛΕΞΕΙΣ ΤΗΣ VHDL

ΙΕΡΑΡΧΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ ΣΤΗ VHDL

EΝΑ ΠΑΡΑΔΕΙΓΜΑ VHDL 1 LIBRARY ieee; 2 USE ieee.std_logic_1164.all; 3 --------------------------------------- 4 ENTITY example IS 5 PORT (a, b, clk: IN BIT; 6 q: OUT BIT); 7 END example; 8 --------------------------------------- 9 ARCHITECTURE example OF example IS 10 SIGNAL temp : BIT; 11 BEGIN 12 temp <= a NAND b; 13 PROCESS (clk) 14 BEGIN 15 IF (clk'event AND clk='1') THEN q<=temp; 16 END IF; 17 END PROCESS; 18 END example; ---------------------------------------

H ΠΡΟΣΟΜΟΙΩΣΗ ΤΟΥ ΚΥΚΛΩΜΑΤΟΣ

ΠΛΗΡΗΣ ΑΘΡΟΙΣΤΗΣ ΤΟΥ 1-ΒΙΤ (1/2) a b cin

ΠΛΗΡΗΣ ΑΘΡΟΙΣΤΗΣ ΤΟΥ 1-ΒΙΤ (2/2) library IEEE; use IEEE.std_logic_1164.all; entity full_adder is port ( a : in STD_LOGIC; b : in STD_LOGIC; cin : in STD_LOGIC; s : out STD_LOGIC; cout : out STD_LOGIC); end full_adder; a b cin architecture structural of full_adder is begin s <= a xor b xor cin; cout <= (a and b) OR (cin and (a xor b)); end structural;

ΧΡΟΝΙΚΗ ΚΑΘΥΣΤΕΡΗΣΗ (DELAY) (1/2) Η ενημέρωση των τιμών εξόδου παρουσιάζει χρονική καθυστέρηση σε σχέση με τις εφαρμοζόμενες τιμές εισόδου Οι τύποι της χρονικής καθυστέρησης είναι δύο Αδρανειακή (inertial) καθυστέρηση: καθυστέρηση διάδοσης λόγω εσωτερικής αδράνειας απόκρισης. Πχ. signal1 <= not signal2 after 15 nsec Καθυστέρηση βήματος «δέλτα» (delta delay): αυτή η μονάδα προσδιορίζει το χρόνο που χρειάζεται για την ανανέωση των σημάτων στο κύκλωμα (εσωτερικών ή εξόδων) Υπολογισμοί των σημάτων σε βήματα delta έως ότου δεν υπάρχει πλέον δραστηριότητα (activity) στο κύκλωμα

ΧΡΟΝΙΚΗ ΚΑΘΥΣΤΕΡΗΣΗ (DELAY) (2/2)

ΣΗΜΑΤΑ-ΜΕΤΑΒΛΗΤΕΣ Η VHDL παρέχει δύο αντικείμενα για το χειρισμό μη στατικών τιμών των δεδομένων Τα σήματα (Signals) και τις μεταβλητές (Variables) Παρέχει επίσης τρόπους για τον καθορισμό στατικών τιμών Τις σταθερές (Constants) και την εντολή Generic Τα σήματα και οι σταθερές μπορεί να είναι καθολικά Δηλαδή να είναι ορατά από ολόκληρο τον κώδικα Χρησιμοποιούνται είτε σε συντρέχοντα είτε σε ακολουθιακό κώδικα Οι μεταβλητές έχουν τοπική εμβέλεια Χρησιμοποιούνται μόνο σε ακολουθιακό κώδικα

CONSTANT (1/2) Το αντικείμενο constant χρησιμοποιείται για τον καθορισμό προεπιλεγμένων τιμών Συντάσσεται όπως παρακάτω -------------------------------------- Constant όνομα : τύπος := τιμή; -------------------------------------- Π.χ. Constant set_bit : std_logic := 1 ;

CONSTANT (2/2) Οι Constants μπορούν να δηλωθούν σε ένα πακέτο ή σε μια entity ή σε μια architecture Όταν δηλώνεται σε ένα πακέτο είναι πλήρως καθολικά μια και το πακέτο μπορεί να χρησιμοποιηθεί από πολλές οντότητες Όταν δηλώνεται σε μια οντότητα (μετά τον όρο port) είναι καθολικά για όλες τις αρχιτεκτονικές που ακολουθούν αυτή την οντότητα Όταν δηλώνεται σε μια αρχιτεκτονική είναι καθολική μόνο για τον κώδικα της συγκεκριμένης ενότητας architecture

To Signal χρησιμοποιείται SIGNAL (1/2) Για τη μετάδοση τιμών εσωτερικά και εξωτερικά του κυκλώματος Μεταξύ των εσωτερικών μονάδων Αναπαριστάνει κυκλωματικές διασυνδέσεις (καλώδια) Όλοι οι ακροδέκτες (ports) μιας οντότητας (entity) είναι εξ ορισμού τύπου signal ------------------------------- Signal όνομα: τύπος [εύρος] [:=αρχική_τιμή]; ------------------------------- Π.χ. Signal control: BIT := 0 ; signal y: std_logic_vector(7 downto 0);

SIGNAL (2/2) H δήλωση του signal μπορεί να γίνει στα ίδια σημεία όπως και της constant Όταν το signal χρησιμοποιείται σε μια διεργασία (process) σε ακολουθιακό κώδικα η τιμή του αναμένεται με το τέλος της διεργασίας

--------------------------------------- LIBRARY ieee; USE ieee.std_logic_1164.all; --------------------------------------- ENTITY count_ones IS ΠΑΡΑΔΕΙΓΜΑ PORT (din: IN STD_LOGIC_VECTOR (7 DOWNTO 0); ones: OUT INTEGER RANGE 0 TO 8); END count_ones; --------------------------------------- ARCHITECTURE not_ok OF count_ones IS SIGNAL temp: INTEGER RANGE 0 TO 8; BEGIN PROCESS (din) BEGIN temp <= 0; FOR i IN 0 TO 7 LOOP IF (din(i)='1') THEN temp <= temp + 1; END IF; END LOOP; ones <= temp; END PROCESS; END not_ok;

VARIABLE (1/2) Οι Variables αναπαριστάνουν μόνο τοπικές πληροφορίες και δηλώνονται (και χρησιμοποιούνται) μόνο μέσα σε μια διεργασία, συνάρτηση και μια διαδικασία Η τιμή της δεν μπορεί να μεταβιβαστεί άμεσα έξω από τον ακολουθιακό κώδικα Η ενημέρωσή της είναι άμεση Οπότε μπορεί να χρησιμοποιηθεί απευθείας στην επόμενη γραμμή κώδικα Συντάσσεται όπως παρακάτω ------------------------------- Variable όνομα : τύπος [εύρος] [:=αρχική τιμή] -------------------------------

VARIABLE (2/2) Π.χ. Variable control: BIT := 0 ; Variable count : integer range 0 to 50; Variable X: std_logic_vector(7 downto 0) := 1101001 ;

--------------------------------------- LIBRARY ieee; USE ieee.std_logic_1164.all; --------------------------------------- ENTITY count_ones IS ΠΑΡΑΔΕΙΓΜΑ PORT (din: IN STD_LOGIC_VECTOR (7 DOWNTO 0); ones: OUT INTEGER RANGE 0 TO 8); END count_ones; --------------------------------------- ARCHITECTURE ok OF count_ones IS BEGIN PROCESS (din) VARIABLE temp: INTEGER RANGE 0 TO 8; BEGIN temp := 0; FOR i IN 0 TO 7 LOOP IF (din(i)='1') THEN temp := temp + 1; END IF; END LOOP; ones <= temp; END PROCESS; END ok;

SIGNAL Vs VARIABLE

ΠΟΛΥΠΛΕΚΤΗΣ Πολυπλέκτης 2-σε-1 Γενικά 2 n -σε-1 2 n είσοδοι δεδομένων 1 έξοδος δεδομένων n είσοδοι επιλογής Γενική λειτουργία: If s=0 =>Y=I 0 If s=1 =>Y=I 1

ΠΟΛΥΠΛΕΚΤΗΣ (1 η ΛΥΣΗ LIBRARY ieee; USE ieee.std_logic_1164.all; ----------------------------------------- ENTITY mux IS PORT (a, b, c, d, s0, s1: IN STD_LOGIC; y: OUT STD_LOGIC); END mux; ----------------------------------------- ARCHITECTURE not_ok OF mux IS SIGNAL sel : INTEGER RANGE 0 TO 3; BEGIN PROCESS (a, b, c, d, s0, s1) BEGIN sel <= 0; IF (s0= 1 ) THEN sel <= sel + 1; END IF; IF (s1= 1 ) THEN sel <= sel + 2; END IF; CASE sel IS WHEN 0 => y<=a; WHEN 1 => y<=b; WHEN 2 => y<=c; WHEN 3 => y<=d; END CASE; END PROCESS; END not_ok; ----------------------------------------- ΛΑΝΘΑΣΜΕΝΗ)

ΠΟΛΥΠΛΕΚΤΗΣ (2 η ΛΥΣΗ ΣΩΣΤΗ) ----------------------------------------- LIBRARY ieee; USE ieee.std_logic_1164.all; ----------------------------------------- ENTITY mux IS PORT (a, b, c, d, s0, s1: IN STD_LOGIC; y: OUT STD_LOGIC); END mux; ----------------------------------------- ARCHITECTURE ok OF mux IS BEGIN PROCESS (a, b, c, d, s0, s1) VARIABLE sel : INTEGER RANGE 0 TO 3; BEGIN sel := 0; IF (s0= 1 ) THEN sel := sel + 1; END IF; IF (s1= 1 ) THEN sel := sel + 2; END IF; CASE sel IS WHEN 0 => y<=a; WHEN 1 => y<=b; WHEN 2 => y<=c; WHEN 3 => y<=d; END CASE; END PROCESS; END ok;

ΠΟΛΥΠΛΕΚΤΗΣ: ΠΡΟΣΟΜΟΙΩΣΗ

Απορίες???