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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Library, package και subprograms

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

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

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

(Peter Ashenden, The Students Guide to VHDL)

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

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

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

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

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

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

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


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

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

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

4. Επιλογή και Επανάληψη

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

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

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

Υπολογισμός - Εντολές Επανάληψης

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

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

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

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

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

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

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

Εισαγωγή στον Προγραμματισμό

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Δομές ελέγχου ροής προγράμματος

Ελίνα Μακρή

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

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

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


100 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

Ακολουθιακά Κυκλώµατα. ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ακολουθιακά Κυκλώµατα (συν.) Ακολουθιακή Λογική: Έννοια

VHDL Introduction. Subtitle

Structural VHDL. Structural VHDL

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

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

HY330 Ψηφιακά Κυκλώματα - Εισαγωγή στα Συστήματα VLSI. 1 ΗΥ330 - Διάλεξη 7η - Ακολουθιακά Κυκλώματα

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Προγραμματισμός PASCAL

ιαφάνειες παρουσίασης #3

Σχεδίαση CMOS Ψηφιακών Ολοκληρωμένων Κυκλωμάτων

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ

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

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

ιαφάνειες παρουσίασης #3

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

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

Βασικές Έννοιες Αλγορίθμων Τι είναι αλγόριθμος

IMPLICIT NONE INTEGER :: a, b, c

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

Transcript:

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

Εντολή If Τα βασικά χαρακτηριστικά της είναι τα εξής: Μπορεί να χρησιµοποιηθεί για τον έλεγχο µίας ή περισσοτέρων συνθηκών. Η πρώτη συνθήκη ελέγχεται µετοif και οι επόµενες µετοelsif. Μπορεί να συµπεριληφθεί και µία διακλάδωση χωρίς συνθήκη else. Εκτελείται πάντα η πρώτη διακλάδωση που είναι αληθής, χωρίς να ενδιαφέρουν οι επόµενες συνθήκες. Σε κάθε διακλάδωση µπορεί να υπάρχουν περισσότερες της µίας ακολουθιακές εντολές. Σύνταξη: Ακολουθιακές Εντολές 2

Εντολή If Ακολουθιακές Εντολές 3

Εντολή Πολλαπλής Επιλογής Case Χρησιµοποιείται όταν έχουµε πολλές διακλαδώσεις που εξαρτώνται από µία λογική έκφραση. Οι βασικοί κανόνες που ακολουθούµεείναι: Η έκφραση πρέπει να είναι ακέραιου τύπου ή τύπου απαρίθµησης εν πρέπει να υπάρχει επικάλυψη επιλογών Εάν δεν υπάρχει η επιλογή when others τότε πρέπει να καλύπτονται όλες οι πιθανές τιµές της έκφρασης. Ακολουθιακές Εντολές 4

Εντολή Case Ακολουθιακές Εντολές 5

Εντολή Case Θα πρέπει να χρησιµοποιούνται σαφώς καθορισµένοι τύποι για την έκφραση επιλογής. subtype int_4 is integer range 0 to 3; variable choise is int_4; case choise is when 0=> when 3=> end case; Σε κάθε εναλλακτική µπορεί να αντιστοιχούν περισσότερες επιλογές: when0 1 2=> Μπορεί να χρησιµοποιηθεί και εύρος σε µία εναλλακτική: when 0 to 2 => H συνθήκη κάθε επιλογής πρέπει να είναι στατικά ορισµένη. Σε µία διακλάδωση που δεν χρησιµοποιείται µπαίνει η εντολή null; Ακολουθιακές Εντολές 6

loop Εντολές Επανάληψης Γενική οµή Επανάληψης while loop for loop Ακολουθιακές Εντολές 7

Εντολές Επανάληψης οµή Βασικής Επανάληψης Στις κοινές γλώσσες προγραµµατισµού η άπειρη επανάληψη δεν είναι χρήσιµη αλλά όχι και στην µοντελοποίηση κυκλωµάτων. loop count:=count+1; exit when count=2; end loop; Ακολουθιακές Εντολές 8

Εντολές Επανάληψης Η εντολή wait προκαλεί διακοπή της επανάληψης και είναι απαραίτητη στην µοντελοποίηση συστηµάτων. Χωρίς διακοπή δεν προχωρά ο χρόνος κατά την εξοµοίωση Ακολουθιακές Εντολές 9

Εντολή Exit entity counter is port ( clk, reset : in bit; count : out natural ); end entity counter; architecture behavior of counter is begin incrementer : process is variable count_value : natural := 0; begin count <= count_value; loop loop wait until clk ='1'or reset = '1'; exit when reset = '1'; count_value := (count_value + 1) mod 16; count <= count_value; end loop; count_value := 0; count <= count_value; wait until reset = '0'; end loop; end process incrementer; end architecture behavior; Χρησιµοποιείται για τερµατισµό µίας επανάληψης και µεταφέρει τον έλεγχο στην πρώτη εντολή µετά τον βρόγχο: exit; Μπορεί να εκτελεστεί υπό συνθήκη: exit when condition; Ακολουθιακές Εντολές 10

Εντολή Exit Σε περιπτώσεις που πρέπει να προκληθεί αυτόµατη έξοδος από εξωτερικό βρόγχο πρέπει να χρησιµοποιηθεί και η ετικέτα του βρόγχου. outer : loop inner : loop exit outer when condition-1 exit when condition-2 end loop inner; exit when condition-3 end loop outer Ακολουθιακές Εντολές 11

Εντολή Next Χρησιµοποιείται όπως και η εντολή exit. Προκαλεί τερµατισµό της τρέχουσας επανάληψης και µετάβαση στην επόµενη Η χρήση της εντολής next σε εµφωλευµένα loop επιτρέπεται αλλά δεν χρησιµοποιείται. loop next when condition; end loop Ακολουθιακές Εντολές 12

Εντολή Null Μηδενική πρόταση (καµία ενέργεια). Χρησιµοποιείται σε προτάσεις πολλαπλής επιλογής όταν δεν απαιτείται να γίνει κάποια ενέργεια case inputs is when "00" => null; end case Ακολουθιακές Εντολές 13

Εντολές Επανάληψης While Ο έλεγχος της συνθήκης γίνεται πριν την εκτέλεση κάθε επανάληψης. Μπορεί να µην εκτελεστεί καµία επανάληψη αν αρχικά η συνθήκη είναι ψευδής. Πρέπει να εξασφαλίζεται η έξοδος είτε µε την συνθήκη, είτε µε εντολή exit. οµή Επανάληψης While Ακολουθιακές Εντολές 14

Παράδειγµα While entity cos is port ( theta : in real; result : out real ); end entity cos; architecture series of cos is begin summation : process (theta) variable sum, term : real; variable n : natural; begin sum := 1.0; term := 1.0; n := 0; while abs term > abs (sum / 1.0E6) loop n := n + 2; term := (-term) * theta**2 / real(((n-1) * n)); sum := sum + term; end loop; result <= sum; end process summation; end architecture series; Ακολουθιακές Εντολές 15

Εντολή Επανάληψης For Προκαθορίζεται ο αριθµός των επαναλήψεων. Η δήλωση του identifier που χρησιµοποιείται για την επανάληψη γίνεται αυτόµατα από την δοµή της επανάληψης. εν µπορεί να γίνει ανάθεση στον identifier της δοµής. Ο identifier είναι διακριτού τύπου οµή Επανάληψης For integer_expr to/downto integer_expr Ακολουθιακές Εντολές 16

entity parity is port ( x0, x1, x2, x3 : in bit; y : out bit ); end parity; Εντολή Επανάληψης For architecture behave of parity is begin p0 : process (x0, x1, x2, x3 ) variable count : integer range 0 to 4; variable s : bit_vector (1 to 4); begin s := x0 & x1 & x2 & x3; count := 0; for i in 1 to 4 loop if s(i)='1' then count:=count+1; end if; end loop; if count mod 2=0 then y<='1'; 1; elsif count mod 2=1 then y <= '0'; end if; end process; end; Ακολουθιακές Εντολές 17

Εντολή Επανάληψης For erroneous : process is hiding_example : process is variable i, j: integer; variable a, b: integer; begin begin i:= loop_param; --error a := 10; for loop_param in 1 to 10 loop; for a in 0 to 7 loop; loop_param:=5; --error b := a; end loop; end loop; j:= loop_param; --error --a=10 and b=7 end process erroneous; end process hiding_example; Ακολουθιακές Εντολές 18

Εντολή Wait Εντολή Wait: σταµατά µία διαδικασία έως ότου να συµβεί ένα γεγονός: wait until condition wait for time expression wait on signal wait Για παράδειγµαηαναµονή θετικής ακµής ρολογιού γράφεται ως εξής: wait until CLK event and CLK= 1 Mία διαδικασία (process) µεεντολήwait δεν µπορείναέχεικαιsensitivity list. Όταν χρησιµοποιείται ένα ή περισσότερα wait σε µία process τότε θα χρησιµοποιηθεί ακολουθιακή λογική και τα αποτελέσµατα των υπολογισµών θα αποθηκευτούν σε flip flops. Ακολουθιακές Εντολές 19

Εντολές Assertion & Report Η εντολή assert ελέγχει µία συνθήκη και εάν βρεθεί ψευδής τότε εκτυπώνει το κατάλληλο µήνυµα λάθους και ενηµερώνει τον εξοµοιωτή για τον βαθµό σηµαντικότητας του λάθους. assert boolean_expression report expression severity expression H σηµαντικότητα ενός λάθους (severity) παίρνει τις τιµές note, warning, error, failure. assert clock_pulse_width>=min_width report Clock less than minimum allowed severity error Ακολουθιακές Εντολές 20

Παράδειγµα Assertion & Report Έλεγχος για λανθασµένη τροφοδότηση εισόδων σε flip flop entity SR_flipflop is port ( S, R : in bit; Q : out bit ); end entity SR_flipflop; -------------------------------------------------- architecture checking of SR_flipflop is begin set_reset : process (S, R) is begin assert S = '1' nand R = '1'; if S = '1' then Q <= '1'; end if; if R = '1' then Q <= '0'; end if; end process set_reset; end architecture checking; R Q S Q Λανθασµένη Κατάσταση: S=R=1 Έγκυρες Καταστάσεις: SR=1 (S=0 ή R=0) SR=1 Ακολουθιακές Εντολές 21

Παράδειγµα Assertion & Report Εάν θέλουµε κάποιες συνθήκες να ελέγχονται σε όλες τις αρχιτεκτονικές για κάποια οντότητα, τότε χρησιµοποιούµε τα assert και report στην δήλωση της οντότητας. entity dff is generic (setup, hold : time := 4 ns); port (set, rst, clk, d : in std_logic; q, qb: out std_logic); begin assert not(set='1' and rst='1') report "invalid state" severity warning; assert not (clk='1' and clk'event and d'last_event<setup ) report "setup violation" severity warning; assert not (d'event and clk='1' and clk'last_event<hold) report "hold violation" severity warning; end dff; D events D CLK Setup Hold CLK event Ακολουθιακές Εντολές 22