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

Σχετικά έγγραφα
Κυκλωμάτων» Χειμερινό εξάμηνο

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

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

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

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

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

Library, package και subprograms

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

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

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

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

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

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

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

Structural VHDL. Structural VHDL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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


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

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

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

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

(Peter Ashenden, The Students Guide to VHDL)

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

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

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

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

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

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

VHDL Introduction. Subtitle

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

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

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

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

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

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

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

Σχεδίαση και υλοποίηση σε FPGA παράλληλης επεξεργασίας μετασχηματισμού Fourier με τεχνική in-place

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

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

ΑΣΚΗΣΗ 1η ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΣΧΕΔΙΑΣΗΣ QUARTUS II ΤΗΣ ALTERA

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

Introduction to IP Cores

Εισαγωγή στη Verilog με το ISE

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

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή

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

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

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

Λογισµικό (Software SW) Γλώσσες

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

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

ΨΗΦΙΑΚΗ ΣΧΔΓΙΑΣΗ (Θεωπία) Θέμαηα Δξεηάζεων

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

Ενςωματωμένα Συςτήματα Υλοποίηςη του SDES ςε Hardware

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

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

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1

Transcript:

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

ΔΟΜΗ ΠΑΡΟΥΣΙΑΣΗΣ Συναρτήσεις Διαδικασίες Δομές ελέγχου ορθής λειτουργίας 2

ΣΥΝΑΡΤΗΣΕΙΣ Η Συνάρτηση (Function) είναι ένα τμήμα ακολουθιακού κώδικα Χρησιμοποιείται για μετατροπές τύπων δεδομένων, λογικές πράξεις, αριθμητικούς υπολογισμούς κλπ Αποτελεί είδος υποπρογράμματος το οποίο επιστρέφει μια μοναδική τιμή Καλούνται από εκφράσεις που βρίσκονται στο κώδικα 3

ΣΥΝΤΑΞΗ ΣΥΝΑΡΤΗΣΗΣ FUNCTION όνομα συνάρτησης [<λίστα_παραμ>] RETURN τύπος_δεδομένων IS [δηλώσεις] BEGIN ακολουθιακές εντολές END όνομα συνάρτησης; Η <λίστα_παραμ> καθορίζει τις παραμέτρους των εισόδων της συνάρτησης Π.χ. <λίστα_παραμ> =[constant] όνομα_σταθεράς: τύπος_σταθεράς; ή <λίστα_παραμ> =signal όνομα_σήματος: τύπος_σήματος; Π.χ. FUNCTION f1 (a, b: INTEGER; SIGNAL c: STD_LOGIC_VECTOR) RETURN BOOLEAN IS BEGIN (sequential statements) END f1; 4

ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΗΣ Η συνάρτηση καλείται ως τμήμα μιας παράστασης Η παράσταση μπορεί να εμφανίζεται είτε μόνη της είτε να συνδέεται με μια εντολή (συντρέχουσα ή ακολουθιακή) Παραδείγματα κλήσης X<=conv_integer(a); (η παράσταση εμφανίζεται μόνη της) If x>maximum(a, b); (η παράσταση συνδέεται με μια εντολή) 5

ΠΑΡΑΔΕΙΓΜΑ (ΣΥΝΑΡΤΗΣΗ conv_integer) -----------------Σώμα συνάρτησης------------------------------ FUNCTION conv_integer (SIGNAL vector: STD_LOGIC_VECTOR) RETURN INTEGER IS VARIABLE result: INTEGER RANGE 0 to 2**vector 'LENGTH -1; BEGIN IF (vector(vector 'HIGH)='1') THEN result := 1; ELSE result := 0; END IF; FOR i IN (vector 'HIGH -1) DOWNTO (vector 'LOW) LOOP result := result ** 2; IF (vector(i)='1') THEN result := result + 1; END IF; END LOOP; RETURN result; END conv_integer; -------------------Κλήση συνάρτησης---------------------------------------... y <= conv_integer(a); 6

ΔΙΑΔΙΚΑΣΙΕΣ Οι διαδικασίες (PROCEDURES) είναι παρόμοιες με τις συναρτήσεις Όμως, μπορεί να επιστρέψει περισσότερες τιμές Συντάσσεται όπως φαίνεται παρακάτω PROCEDURE όνομα_διαδικασίας [<λίστα_παραμ>] IS [δηλώσεις] BEGIN (ακολουθιακές εντολές) END όνομα_διαδικασίας; 7

ΔΙΑΔΙΚΑΣΙΕΣ Η <λίστα_παραμέτρων> καθορίζει τις παραμέτρους εισόδου και εξόδου Π.χ. <λίστα_παραμέτρων>= [CONSTANT] όνομα_σταθεράς: κατάσταση λειτουργίας; <λίστα_παραμέτρων>= signal όνομα_σήματος: κατάσταση λειτουργίας; < λίστα_παραμέτρων>= VARIABLE όνομα_μεταβλητής: κατάσταση λειτουργίας; Η κλήση μιας διαδικασίας αποτελεί μια εντολή από μόνη της Μπορεί να εμφανίζεται μόνη της Ή να σχετίζεται με μια άλλη εντολή Παραδείγματα κλήσης compute_min_max(in1, in2, in3, out1, out2); -- εντολή από μόνη της divide(dividend, divisor, quotient, remainder); -- εντολή από μόνη της IF (a>b) THEN compute_min_max(in1, in2, in3, out1, out2); -- κλήση διαδικασίας που συνδέεται με μια άλλη εντολή 8

ΘΕΣΗ ΣΥΝΑΡΤΗΣΗΣ ΚΑΙ ΔΙΑΔΙΚΑΣΙΑΣ 9

ΔΙΑΔΙΚΑΣΙΑ ΣΤΟ ΚΥΡΙΩΣ ΚΩΔΙΚΑ 1 ------------------------------------------------------ 2 LIBRARY ieee; 3 USE ieee.std_logic_1164.all; 4 ------------------------------------------------------ 5 ENTITY min_max IS 6 GENERIC (limit : INTEGER := 255); 7 PORT ( ena: IN BIT; 8 inp1, inp2: IN INTEGER RANGE 0 TO limit; 9 min_out, max_out: OUT INTEGER RANGE 0 TO limit); 10 END min_max; 11 ------------------------------------------------------ 12 ARCHITECTURE my_architecture OF min_max IS 13 -------------------------- 14 PROCEDURE sort (SIGNAL in1, in2: IN INTEGER RANGE 0 TO limit; 15 SIGNAL min, max: OUT INTEGER RANGE 0 TO limit) IS 16 BEGIN 17 IF (in1 > in2) THEN 18 max <= in1; 19 min <= in2; 20 ELSE 21 max <= in2; 22 min <= in1; 23 END IF; 24 END sort; 25 -------------------------- 26 BEGIN 27 PROCESS (ena) 28 BEGIN 29 IF (ena='1') THEN sort (inp1, inp2, min_out, max_out); 30 END IF; 31 END PROCESS; 32 END my_architecture; 10

ΔΙΑΔΙΚΑΣΙΑ ΣΕ ΠΑΚΕΤΟ 1 ------------ Package: --------------------------- 2 LIBRARY ieee; 3 USE ieee.std_logic_1164.all; 4 ------------------------------------- 5 PACKAGE my_package IS 6 CONSTANT limit: INTEGER := 255; 7 PROCEDURE sort (SIGNAL in1, in2: IN INTEGER RANGE 0 TO limit; 8 SIGNAL min, max: OUT INTEGER RANGE 0 TO limit); 9 END my_package; 10 ------------------------------------- 11 PACKAGE BODY my_package IS 12 PROCEDURE sort (SIGNAL in1, in2: IN INTEGER RANGE 0 TO limit; 13 SIGNAL min, max: OUT INTEGER RANGE 0 TO limit) IS 14 BEGIN 15 IF (in1 > in2) THEN 16 max <= in1; 17 min <= in2; 18 ELSE 19 max <= in2; 20 min <= in1; 21 END IF; 22 END sort; 23 END my_package; 24 ------------------------------------------------- 1 --------- Main code: ---------------------------- 2 LIBRARY ieee; 3 USE ieee.std_logic_1164.all; 4 USE work.my_package.all; 5 ------------------------------------- 6 ENTITY min_max IS 7 GENERIC (limit: INTEGER := 255); 8 PORT ( ena: IN BIT; 9 inp1, inp2: IN INTEGER RANGE 0 TO limit; 10 min_out, max_out: OUT INTEGER RANGE 0 TO limit); 11 END min_max; 12 ------------------------------------- 13 ARCHITECTURE my_architecture OF min_max IS 14 BEGIN 15 PROCESS (ena) 16 BEGIN 17 IF (ena='1') THEN sort (inp1, inp2, min_out, max_out); 18 END IF; 19 END PROCESS; 20 END my_architecture; 11

ΠΡΟΣΟΜΟΙΩΣΗ 12

Η ΕΝΤΟΛΗ ASSERT H εντολή ASSERT είναι μη συνθέσιμη και χρησιμοποιείται για επιστροφή μηνυμάτων όταν εντοπίζονται προβλήματα κατά τη προσομοίωση Σύνταξη: ASSERT συνθήκη Επίπεδο σοβαρότητας Σημείωση (note) Σφάλμα (error) [REPORT μήνυμα"] Προειδοποίηση (warning) Αποτυχία (failure) [SEVERITY επίπεδο_σοβαρότητας]; Π.χ. ASSERT a'length = b'length REPORT "Error: vectors do not have same length!" SEVERITY failure; Σημείωση: Η εντολή ASSERT δε παράγει υλικό (κύκλωμα). Το εργαλείο σύνθεσης απλώς θα παραβλέψει ή θα δώσει ένα μήνυμα προειδοποίησης 13

ΔΟΜΕΣ ΕΛΕΓΧΟΥ ΟΡΘΗΣ ΛΕΙΤΟΥΡΓΙΑΣ H VHDL χρησιμοποιεί έναν κύκλο προσομοίωσης για τη μοντελοποίηση της διέγερσης (stimulus) και της απόκρισης (response) των ψηφιακών κυκλωμάτων Υπάρχουν τρεις τρόποι για να εφαρμοστεί ο κύκλος προσομοίωσης ενός συστήματος Χειροκίνητη εισαγωγή τιμών στα σήματα εισόδων Με do files Και με testbences Στη πράξη δημιουργούμε ένα «σενάριο» λειτουργίας του συστήματος ενημερώνοντας τα σήματα εισόδων 14

ΔΟΜΕΣ ΕΛΕΓΧΟΥ ΟΡΘΗΣ ΛΕΙΤΟΥΡΓΙΑΣ To testbech είναι ένα εικονικό κύκλωμα το οποίο εφαρμόζει εισόδους προς διέγερση (stimulus) και λαμβάνει εξόδους (απόκρισηresponce) από το πραγματικό κύκλωμα Processes Generating Stimuli Design Under Test (DUT) Observed Outputs 15

TESTBENCH To testbench αντιστοιχεί στο ψηλότερο επίπεδο ιεραρχίας Η entity ενός testbech δεν περιλαμβάνει δηλώσεις ακροδεκτών Μπορεί να περιλαμβάνει όμως generics Στο testbench δηλώνεται το component του συνολικού κυκλώματος 16

ΣΥΓΚΡΙΣΕΙΣ ΤΙΜΩΝ ΕΞΟΔΟΥ Testbench VHDL Design actual results =? Representative Inputs Manual Calculations or Reference Software Implementation (C, Java, Matlab ) expected results 17

TESTBENCH Το ίδιο testbench μπορεί να χρησιμοποιηθεί για τον έλεγχο διαφορετικών υλοποιήσεων της ίδιας αρχιτεκτονικής testbench design entity Architecture 1 Architecture 2.... Architecture N 18

ΟΡΓΑΝΩΣΗ ΠΕΡΙΓΡΑΦΗΣ TESTBENCH ENTITY testbench IS -- no PORT statement necessary END testbench; ARCHITECTURE example IS testbench COMPONENT entity_under_test PORT(...) END COMPONENT; BEGIN Generate_waveforms_for_test; Instantiate_component; Monitoring_statements; END example; 19

TESTBENCH ΠΥΛΗΣ XOR ΤΡΙΩΝ LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY xor3_tb IS END xor3_tb; ΕΙΣΟΔΩΝ ARCHITECTURE behavioral OF xor3_tb IS -- Component declaration of the tested unit COMPONENT xor3 PORT( A : IN STD_LOGIC; B : IN STD_LOGIC; C : IN STD_LOGIC; Result : OUT STD_LOGIC ); END COMPONENT; -- Stimulus signals - signals mapped to the input and inout ports of tested entity SIGNAL test_vector: STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL test_result : STD_LOGIC; 20

TESTBENCH ΠΥΛΗΣ XOR ΤΡΙΩΝ BEGIN UUT : xor3 PORT MAP ( A => test_vector(2), B => test_vector(1), C => test_vector(0), Result => test_result); ΕΙΣΟΔΩΝ Testing: PROCESS BEGIN test_vector <= "000"; WAIT FOR 10 ns; test_vector <= "001"; WAIT FOR 10 ns; test_vector <= "010"; WAIT FOR 10 ns; test_vector <= "011"; WAIT FOR 10 ns; test_vector <= "100"; WAIT FOR 10 ns; test_vector <= "101"; WAIT FOR 10 ns; test_vector <= "110"; WAIT FOR 10 ns; test_vector <= "111"; WAIT FOR 10 ns; END PROCESS; END behavioral; 21

ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΟΔΙΚΩΝ ΣΗΜΑΤΩΝ: ΡΟΛΟΙ Για τον έλεγχο της λειτουργίας σύγχρονων κυκλωμάτων χρειάζεται η δημιουργία μιας εικονικής γεννήτριας ρολογιού Περιγράφεται σε ξεχωριστή διεργασία στο testbench σε σχέση με τη διέγερση των άλλων εισόδων του κυκλώματος CONSTANT clk1_period : TIME := 20 ns; CONSTANT clk2_period : TIME := 200 ns; SIGNAL clk1 : STD_LOGIC; SIGNAL clk2 : STD_LOGIC := 0 ; BEGIN... clk1_generator: PROCESS clk1 <= 0 ; WAIT FOR clk1_period/2; clk1 <= 1 ; WAIT FOR clk1_period/2; END PROCESS; clk2 <= not clk2 after clk2_period/2;... END behavioral; 22

ΔΗΜΙΟΥΡΓΙΑ RESET CONSTANT reset1_width : TIME := 100 ns; CONSTANT reset2_width : TIME := 150 ns; SIGNAL reset1 : STD_LOGIC; SIGNAL reset2 : STD_LOGIC := 1 ; BEGIN... reset1_generator: PROCESS reset1 <= 1 ; WAIT FOR reset1_width; reset1 <= 0 ; WAIT; END PROCESS; reset2_generator: PROCESS WAIT FOR reset2_width; reset2 <= 0 ; WAIT; END PROCESS;... END behavioral; 23

ΣΥΝΗΘΕΣ ΛΑΘΟΣ SIGNAL test_vector : STD_LOGIC_VECTOR(2 downto 0); SIGNAL reset : STD_LOGIC; BEGIN... generator1: PROCESS reset <= 1 ; WAIT FOR 100 ns reset <= 0 ; test_vector <="000"; WAIT; END PROCESS; generator2: PROCESS WAIT FOR 200 ns test_vector <="001"; WAIT FOR 600 ns test_vector <="011"; END PROCESS;... END behavioral; 24

Απορίες???? 25