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

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

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

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

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

Library, package και subprograms


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VHDL Introduction. Subtitle

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

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

(Peter Ashenden, The Students Guide to VHDL)

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

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

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

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

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

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

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

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

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

Τυπικζσ Γλώςςεσ Περιγραφήσ Υλικοφ Εργαςτήριο 4

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

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

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

Structural VHDL. Structural VHDL

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

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

Διαδικασίες ΙI. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 5

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

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

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

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

Computing. Νοέμβριος Έκδοση 1.0

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Παράλληλη Επεξεργασία Κεφάλαιο 9 ο Επιµερισµός εδοµένων

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

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

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

ΖΗΤΗΜΑ 1 Ο : (Μονάδες 3) Να χαρακτηριστούν οι παρακάτω προτάσεις ως σωστές ή εσφαλμένες :

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

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

A ΜΕΡΟΣ. 1 program Puppy_Dog; 2 3 begin 4 end. 5 6 { Result of execution 7 8 (There is no output from this program ) 9 10 }

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

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

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

Εργαστήριο 4_1 Λεκτική Ανάλυση - Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

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

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

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

Διδάσκων: Παναγιώτης Ανδρέου

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

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

Transcript:

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

Πίνακες Πίνακες: Αποτελούνται από στοιχεία του ίδιου τύπου. Μονοδιάστατοι Πίνακες type table1 is array (0 to 7) of std_logic; --Ascending Order type table2 is array (7 downto 0) of std_logic; --Descending Order Ο δί δείκτης µπορεί ί να είναι τύπου απαρίθµησης type table3 is array (std_ulogic) of std_logic;* *Προσπέλαση: Table( u ), Table( x ) κλπ. type controller_state is (initial, idle, active, error); type state_counts is array (idle to error) of integer; Σύνθετοι τύποι και λειτουργίες 2

Πίνακες Ηδήλωσηαντικειµένων γίνεται µε τον γνωστό τρόπο: variable word1: table1; signal word2: table2:=b 10010110 ; Τα στοιχεία του πίνακα απαριθµούνται µε την σειρά των δεικτών από αριστερά προς τα δεξιά. Μπορούµε ύ να προσπελάσουµε ένα υποσύνολο του πίνακα όπως tbl2 table2 [4 downto 2]. Παράδειγµα (Μνήµη 64 πραγµατικών αριθµών) subtype coeff_ram_address is integer range 0 to 63; entity coeff_ram is port ( rd, wr : in bit; addr : in coeff_ram_address; d_in : in real; d_out : out real ); end entity coeff_ram; Σύνθετοι τύποι και λειτουργίες 3

Πίνακες architecture abstract of coeff_ram is memory : process is type coeff_array is array (coeff_ram_address) of real; variable coeff : coeff_array; for index in coeff_ram_address loop coeff(index) := 0.0; end loop; loop wait on rd, wr, addr, d_in; if rd = '1' then d_out <= coeff(addr); end if; if wr = '1' then coeff(addr) := d_in; end if; end loop; end process memory; end architecture abstract; Σύνθετοι τύποι και λειτουργίες 4

Αρχικοποίηση πινάκων Πίνακες Μπορεί να γίνει µε υπονοούµενη αντιστοίχιση στοιχείων και θέσεων type Matrix is array (1 to 5) of integer; variable ArrayMatrix: Matrix := (10, 20, 30, 40, 50); Οπότε Matrix(1)=10, Matrix(2)=20, Matrix(3)=30 Η αρχικοποίηση µπορεί ί να γίνει µε ρητή ανάθεση variable ArrayMatrix: Matrix := (1=>10, 2=>20, 3=>30, 4=>40, 5=>50); variable ArrayMatrix: Matrix := (1 3=>10, 4=>20, others=>50); Οί λίστες (10, 20, 30, 40, 50), (1=>10, 2=>20, 3=>30, 4=>40, 5=>50) κλπ ονοµάζονται συναθροιστές Σύνθετοι τύποι και λειτουργίες 5

Πολυδιάστατοι Πίνακες: Πίνακες type Matrix is array (1to2,1to3)of integer; variable ArrayMatrix: Matrix := ((0,0,1), (0,1,2)) 0 0 1 0 1 2 H προσπέλαση των στοιχείων γίνεται µε δύο δί δείκτες πχ ArrayMatrix(1,1). 1) Μπορούµε να µην ορίζουµε την διάσταση ενός πίνακα κατά την δήλωσή του τύπου : type ΟΝΟΜΑ is array (τύπος range <>) of στοιχεία; type Matrix is array (integer range <>, integer range<>) of integer; variable Matrix8: Matrix(2 downto 8, 1 to 10); Η δήλωση του µεγέθους κατά την δήλωση του αντικειµένου είναι υποχρεωτική Σύνθετοι τύποι και λειτουργίες 6

Πίνακες Παράδειγµα: Χρήση δισδιάστατου πίνακα για την αναπαράσταση µήτρας µετάβασης FSM: η εντολή αποτελείται από το string atd ακολουθούµενο από έναν αριθµό και cr ή το string ath ακολουθούµενο από cr. cr 'a' 't' 'd' digit 0 1 2 3 4 'h' cr cr 6 5 digit error other architecture test of fg_04_03 is Modem_controller : process is type symbol is ('a', 't', 'd', 'h', digit, cr, other); type symbol_string is array (1 to 20) of symbol; type state is range 0 to 6; type transition_matrix is array (state, symbol) of state; Σύνθετοι τύποι και λειτουργίες 7

Πίνακες constant next_state : transition_matrix := ( 0 =>('a' => 1,others => 6), 1 =>('t' => 2,others =>6),2 =>('d' => 3, 'h' =>5,others => 6), 3 => (digit => 4, others => 6), 4 => (digit => 4, cr => 0, others => 6), 5 => (cr => 0, others => 6), 6 => (cr => 0, others => 6) ); variable command : symbol_string; variable current_state : state := 0; for index in 1 to 20 loop current_state := next_state( current_state, command(index) ); case current_state is --... when 0 => exit; when others => null; -- end case; end loop; end process modem_controller; Σύνθετοι τύποι και λειτουργίες 8

Ιδιότητες Πινάκων Type A is array (1 to 4, 31 downto 0) of boolean; A left(1)=1 A low(1)=1 A length(1)=4 A right(2)=0 A high(2)=31 A length(2)=32 A range(1) is 1 to 4 A reverse_range(2) is 0 to 31 A ascending(1)=true Σύνθετοι τύποι και λειτουργίες 9

Ιδιότητες Πινάκων Προσπέλαση Πίνακα χωρίς γνώση της διάστασης του: count:=0; for index in free_map range loop if free_map(index)= 1 then count:=count+1; end dif if; end loop; Παρέχει προγραµµατιστική ευελιξία και δυνατότητα παραµετροποίησης. Η ρητή δήλωση του µεγέθους µπορεί να παραληφθεί µε αρχικοποίηση type sample is array (natural range <>) of integer; constant beep is sample := (127, 63, 0, -63, -127); -- assumes range 0 to 4 Σύνθετοι τύποι και λειτουργίες 10

Ειδικοί Πίνακες String: Είναι ένας προκαθορισµένος τύπος πίνακα: type string is array (positive range <>) of character; constant message : string := Ready ; Bit Vector: Είναι ένας προκαθορισµένος τύπος πίνακα: type bit_vector t is array (natural range <>) of bit Standard Logic (package std_logic_1164): type std_ulogic_vector is array (natural range <>) of std_ulogic constant hex_vector : std_ulogic_vector(15 downto 0) := X 05FA Σύνθετοι τύποι και λειτουργίες 11

Μη-περιορισµένες θύρες Ένας πίνακας σε µία θύρα µπορεί να µην έχει διάσταση µέχρι να γίνει δέσµευση της οντότητας του: entity and_multiple is port ( a : in bit_vector; y : out bit ); end entity and_multiple; architecture behavioral of and_multiple is and_reducer : process ( a ) is variable result : bit; result := '1'; for i in a'range loop result := result and a(i); end loop; y <= result; end process and_reducer; end architecture behavioral; signal input: bit_vector(7 downto 0) signal output: bit; tc_gate: and_multiple(input, output) Σύνθετοι τύποι και λειτουργίες 12

Τελεστές σε Πίνακες Τελεστές µε εφαρµογή σε ολόκληρους πίνακες: Οι τελεστές and, or, nand, nor, xor, xnor µπορούν να εφαρµοστούν σε δύο µονοδιάστατους πίνακες ίδιου τύπου (bit boolean) και διάστασης. O τελεστής not µπορεί να εφαρµοστεί σε έναν µονοδιάστατο πίνακα. Οι τελεστές sll, srl, sla, sra, rol, ror εφαρµόζονται σε µονοδιάστατους πίνακες (bit boolean) µε δεξιό τελούµενο έναν ακέραιο. Οι τελεστές σύγκρισης µπορούν να εφαρµοστούν σε µονοδιάστατους πίνακες οποιουδήποτε αλλά κοινού τύπου. Ο τελεστής συγχώνευσης µπορεί να εφαρµοστεί σε δύο µονοδιάστατους πίνακες ίδιου τύπου abc & d = abcd Σύνθετοι τύποι και λειτουργίες 13

Τελεστές σε Πίνακες Φέτες Πινάκων: Μπορούν να χρησιµοποιηθούν επιλεγµένες φέτες πινάκων entity byte_swap is port (input : in bit_vector(0 to 15); output : out bit_vector(0 to 15)); end entity byte_swap; architecture re behavior of byte_swap apis swap : process (input) output(8 to 15) <= input(0 to 7); output(0 to 7) <= input(8 to 15); end process swap; end architecture behavior; Σύνθετοι τύποι και λειτουργίες 14

Εγγραφές Τύπος εγγραφής: είναι µία σύνθετη δοµή από στοιχεία διαφορετικών τύπων type ONOMA is record identifier: subtype_indication; identifier: subtype_indication; end record; Παράδειγµα Η προσπέλαση ενός στοιχείου της type RecordExample is record εγγραφής γίνεται µε χρήση της τελείας. Πχ. Α.WIDTH<=5; WIDTH: integer; Η αρχικοποίηση µπορεί να γίνει όπως στους πίνακες: BUS: bit_vector (3 downto 0); ACK: bit; Α:=(5, 0010, 1 ) end record Α:=(WIDTH=>5, BUS=> 0010, signal A, B: RecordExample ACK=> 1 ) Σύνθετοι τύποι και λειτουργίες 15