Γλώσσες Περιγραφής Υλικού Ι

Σχετικά έγγραφα
Σκιαγράφηση της διάλεξης. Γλώσσες Περιγραφής Υλικού Ι. Ανασκόπηση ϑεμάτων παλαιών εξετάσεων του μαθήματος. Περιεχόμενο εξετάσεων


Γλώσσες Περιγραφής Υλικού Ι

Γλώσσες Περιγραφής Υλικού Ι

Σκιαγράφηση της διάλεξης. Γλώσσες Περιγραφής Υλικού Ι. Γενικά χαρακτηριστικά του επεξεργαστή MU0. Προγραμματιζόμενοι επεξεργαστές

Σκιαγράφηση της διάλεξης. Γλώσσες Περιγραφής Υλικού Ι. Μηχανές Πεπερασμένων Καταστάσεων: Εισαγωγή και.

Σκιαγράφηση της διάλεξης. Γλώσσες Περιγραφής Υλικού Ι (1) Μη προγραμματιζόμενοι επεξεργαστές

Γλώσσες Περιγραφής Υλικού Ι

Σκιαγράφηση της διάλεξης. Γλώσσες Περιγραφής Υλικού Ι. Διαφορές μεταξύ των περιγραφών συνδυαστικών και ακολουθιακών κυκλωμάτων

Σκιαγράφηση της διάλεξης. Γλώσσες Περιγραφής Υλικού Ι. Περισσότερα για τα αρθρώματα Αναθέσεις και τελεστές Συντρέχων κώδικας

Σκιαγράφηση της διάλεξης. Η οργάνωση ενός μη-προγραμματιζόμενου επεξεργαστή (1) Μη προγραμματιζόμενοι επεξεργαστές

Γλώσσες Περιγραφής Υλικού Ι

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

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

Σκιαγράφηση της διάλεξης. Σχεδίαση Ψηφιακών Κυκλωμάτων. Απαριθμητοί τύποι δεδομένων (enumerated data types)

Σκιαγράφηση της διάλεξης. Σχεδίαση Ψηφιακών Κυκλωμάτων. Ορισμοί για τις χρονικές καθυστερήσεις διάδοσης. Συνδυαστική και ακολουθιακή λογική

Σκιαγράφηση της διάλεξης. Μηχανές Πεπερασμένων Καταστάσεων: Εισαγωγή και.



Σκιαγράφηση της διάλεξης. Ανάθεση σε VARIABLE. Ανάθεση σε SIGNAL. identifier := expression; Συντρέχων και ακολουθιακός κώδικας

Η δήλωση `ifdef...`else...` endif

ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ Σχεδίαση Λογικών Κυκλωμάτων

Σκιαγράφηση της διάλεξης. Σχεδίαση Ψηφιακών Κυκλωμάτων. Αρχιτεκτονικά χαρακτηριστικά των συσκευών Xilinx Spartan-3.

Σκιαγράφηση της διάλεξης. Η εντολή ASSERT (2)

τεσσάρων βάσεων δεδομένων που θα αντιστοιχούν στους συνδρομητές

ΣΧΟΛΙΚΟ ΕΤΟΣ ΕΥΘΥΓΡΑΜΜΗ ΟΜΑΛΗ ΚΙΝΗΣΗ ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΗ ΦΥΣΙΚΗ A ΛΥΚΕΙΟΥ. Ονοματεπώνυμο Τμήμα

Γλώσσες Περιγραφής Υλικού. Εισαγωγικά. Οργάνωση των παραδόσεων. 02 Ιουνίου 2009

Σκιαγράφηση της διάλεξης. Σχεδίαση Ψηφιακών Κυκλωμάτων.

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

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


ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ

Σκιαγράφηση της διάλεξης. Σχεδίαση Ψηφιακών Κυκλωμάτων. Ο πλήρης αθροιστής (full adder) Κυκλωματικός σχεδιασμός του πλήρους αθροιστή.

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

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

Γλώσσες Περιγραφής Υλικού Ι. Εισαγωγικά. Οργάνωση των παραδόσεων. 1 Εισαγωγή στη Verilog HDL. 28 Φεβρουαρίου 2012

Δ Ι Α Κ Ρ Ι Τ Α Μ Α Θ Η Μ Α Τ Ι Κ Α. 1η σειρά ασκήσεων

Ας υποθέσουμε ότι ο παίκτης Ι διαλέγει πρώτος την τυχαιοποιημένη στρατηγική (x 1, x 2 ), x 1, x2 0,


Σκιαγράφηση της διάλεξης. Σχεδίαση Ψηφιακών Κυκλωμάτων. Εισαγωγικά. Δομές ακολουθιακού και συντρέχοντος κώδικα

Τρίτη, 05 Ιουνίου 2001 ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

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

Μετρητής Ριπής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 9 ης. εργαστηριακής άσκησης: ΑΦΡΟΔΙΤΗ ΤΟΥΦΑ Α.Μ.:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Εαρινό Εξάμηνο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Εαρινό Εξάμηνο

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

Γενικό Λύκειο Μαραθοκάμπου Σάμου. Άλγεβρα Β λυκείου. 13 Οκτώβρη 2016

Συναρτήσεις. Σημερινό μάθημα

Αποδεικτικές Διαδικασίες και Μαθηματική Επαγωγή.

HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων. Πολυπλέκτες Καμπύλη Παρέτο. Κωδικοποιητές/Από-κωδικοποιητές D FF

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

ΣΤΟ ΦΑΡΜΑΚΕΙΟ. Με την πιστοποίηση του έχει πρόσβαση στο περιβάλλον του φαρμακείου που παρέχει η εφαρμογή.

ΗΥ220: Εργαστήριο σχεδίασης ψηφιακών κυκλωμάτων Χριστόφορος Κάχρης

Αναγνώριση Προτύπων. Σημερινό Μάθημα

ΠΑΝΕΠΙΣΤΗΜΙΑΚΑ ΦΡΟΝΤΙΣΤΗΡΙΑ ΚΟΛΛΙΝΤΖΑ ΜΑΘΗΜΑ: ΕΡΩΤΗΣΕΙΣ ΟΙΚΟΝΟΜΙΚΗΣ ΘΕΩΡΙΑΣ

Οι γέφυρες του ποταμού... Pregel (Konigsberg)

Αναγνώριση Προτύπων. Σήμερα! Λόγος Πιθανοφάνειας Πιθανότητα Λάθους Κόστος Ρίσκο Bayes Ελάχιστη πιθανότητα λάθους για πολλές κλάσεις

Παραβολή ψ=αχ 2 +βχ+γ, α 0. Η παραβολή ψ = αχ 2. Γενικά : Κάθε συνάρτηση της μορφής ψ=αχ 2 + βχ +γ, α 0 λέγεται τετραγωνική συνάρτηση.

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΡΧΕΣ ΟΙΚΟΝΟΜΙΚΗΣ ΘΕΩΡΙΑΣ ΜΑΘΗΜΑ ΕΠΙΛΟΓΗΣ Γ ΛΥΚΕΙΟΥ

Σκιαγράφηση της διάλεξης. Η έννοια του πακέτου (PACKAGE) στη VHDL. Σύνταξη ενός πακέτου. Σύνταξη παραμετρικών περιγραφών

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


ΠΛΕ- 027 Μικροεπεξεργαστές 4ο μάθημα: γλώσσα περιγραφής υλικού Verilog

ΑΝΑΛΥΣΗ ΔΙΑΚΥΜΑΝΣΗΣ. Επικ. Καθ. Στέλιος Ζήμερας. Τμήμα Μαθηματικών Κατεύθυνση Στατιστικής και Αναλογιστικά Χρηματοοικονομικά Μαθηματικά

Συναρτήσεις & Κλάσεις

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Γλώσσα περιγραφής υλικού: Verilog

ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Β ΤΑΞΗΣ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΣΑΒΒΑΤΟ 27 ΜΑΪΟΥ 2000 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ ΘΕΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ: ΧΗΜΕΙΑ ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΞΙ (6)

ΣΤΟ ΙΑΤΡΕΙΟ. Με την πιστοποίηση του αποκτά πρόσβαση στο περιβάλλον του ιατρού που παρέχει η εφαρμογή.

Φροντιστήριο 2: Ανάλυση Αλγόριθμου. Νικόλας Νικολάου ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 1 / 10

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΕΤΑΡΤΗ 14 ΙΟΥΝΙΟΥ 2000 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ: ΦΥΣΙΚΗ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Φόρμα Σχεδιασμού Διάλεξης (ημ/α: 17/03/08, έκδοση: 1.0)

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

Η Πληροφορική στο Δημοτικό Διδακτικές Προσεγγίσεις Αδάμ Κ. Αγγελής Παιδαγωγικό Ινστιτούτο

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

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

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

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

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

Σκιαγράφηση της διάλεξης

Το κράτος είναι φτιαγμένο για τον άνθρωπο και όχι ο άνθρωπος για το κράτος. A. Einstein Πηγή:

Σκιαγράφηση της διάλεξης. Γλώσσες Περιγραφής Υλικού Ι. Διαιρέτης ρολογιού (clock divider) Ειδικά κυκλώματα

Γλώσσες Περιγραφής Υλικού Ι

ΗΛΕΚΤΡΙΚΗ ΕΝΕΡΓΕΙΑ ΣΤΗ ΚΡΗΤΗ

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

Μεταγλωττιστές ΙΙ. Γέννηση ενδιάμεσης αναπαράστασης. 10 Νοεμβρίου Νικόλαος Καββαδίας Μεταγλωττιστές ΙΙ

Προτεινόμενα θέματα στο μάθημα. Αρχές Οικονομικής Θεωρίας ΟΜΑΔΑ Α. Στις προτάσεις από Α.1. μέχρι και Α10 να γράψετε στο τετράδιό σας τον αριθμό της

Ταξινόμηση των μοντέλων διασποράς ατμοσφαιρικών ρύπων βασισμένη σε μαθηματικά κριτήρια.

HY220 Pipelines and FSMs Χειμεριν Χειμερι ό Εξ άμη Εξ ν άμη ο

ΤΑΞΙΝΟΜΗΣΗ ΟΡΓΑΝΙΣΜΩΝ

HY130 Ψηφιακή Σχεδίαση

ΜΑΘΗΜΑ: ΒΙΟΛΟΓΙΑ ΟΜΑ Α ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΘΕΤΙΚ3Ν ΕΠΙΣΤΗΜ3Ν Γ ΛΥΚΕΙΟΥ

E n. (, ) Η χρονοεξαρτώµενη εξίσωση Schrödinger, έχει την µορφή ˆ

ΜΑΘΗΜΑ: ΒΙΟΛΟΓΙΑ ΟΜΑΔΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ Γ ΛΥΚΕΙΟΥ

ΣΥΝΟΛΑ (προσέξτε τα κοινά χαρακτηριστικά των παρακάτω προτάσεων) Οι άνθρωποι που σπουδάζουν ΤΠ&ΕΣ και βρίσκονται στην αίθουσα

έγγραφο σε κάθε διάσταση αντιστοιχούν στο πλήθος εμφανίσεων της λέξης (που αντιστοιχεί στη συγκεκριμένη διάσταση) εντός του εγγράφου.

Γλώσσες Περιγραφής Υλικού Ι

Συναρτήσεις ΙΙ. Σημερινό μάθημα

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Πρώτη Γραπτή Εργασία. Εισαγωγή στους υπολογιστές Μαθηματικά

Transcript:

Γλώσσες Περιγραφής Υλικού Ι Θέματα πρακτικής εξάσκησης Νικόλαος Καββαδίας nkavv@uop.gr 29 Μαΐου 2012

Σκιαγράφηση της διάλεξης Ανασκόπηση ϑεμάτων παλαιών εξετάσεων του μαθήματος Εξεταστική περίοδος Ιουνίου-Ιουλίου 2010 Εξεταστική περίοδος Σεπτεμβρίου 2010 Περιεχόμενο εξετάσεων Θεωρητικά ϑέματα Τι γνωρίζετε για ROM, RAM, FSM, FSMD Ερωτήσεις πολλαπλής επιλογής (multiple-choice) Συνδυαστικά κυκλώματα Μνήμες Ακολουθιακά κυκλώματα Μη-προγραμματιζόμενοι επεξεργαστές (FSMD) Κύκλωμα άθροισης όρων Κύκλωμα πολλαπλασιασμού αλά ρωσικά

Ερωτήσεις πολλαπλής επιλογής (1) 1. Τι είναι ένα αρχείο testbench; Α) Το top-level αρχείο του κυκλώματος. Β) Αρχείο για τον έλεγχο του κυκλώματος. Γ) Ενα πακέτο με δηλώσεις του χρήστη. Δ) Εναλλακτική περιγραφή του κυκλώματος. 2. Δίνονται τα διανύσματα a[6:10], b[6:2], c[1:4]. Ποιο το εύρος του καθενός, αντίστοιχα; Α) 6, 4, 4. Β) 5, 3, 5. Γ) 5, 5, 4. Δ) 6, 4, 5. 3. Για τα παραπάνω διανύσματα a, b, c, ποια από τις παρακάτω αναθέσεις δεν είναι ορθή; Α) a[6:10] <= {c, 1 b1}; Β) a[5:4] <= b[4:5]; Γ) c[1:3] = a[6:8]; Δ) b[2:2] = 1; 4. Ποια από τις παρακάτω δεν αποτελεί λέξη-κλειδί της Verilog; Α) in. Β) output. Γ) wire. Δ) reg. 5. Για το ακόλουθο τμήμα κώδικα Verilog συμπληρώστε τη σωστή λίστα ευαισθησίας. always @(...) begin a = b + 1'b1; c = {1'b0, b[5:0]}; d = a ˆ c ˆ e; Α) a, b, c, e. Β) a, b, c, d, e. Γ) a, c, d. Δ) a, b, d, e.

Ερωτήσεις πολλαπλής επιλογής (2) 6. Σε ποια κωδικοποίηση, δύο διαδοχικές τιμές διαφέρουν πάντα κατά ένα bit; Α) Gray. Β) One-hot. Γ) Two-hot. Δ) Binary. 7. Ποιο το ελάχιστο εύρος διανύσματος διεύθυνσης, για τη διευθυνσιοδότηση μνήμης RAM με 57 ϑέσεις; Α) 5. Β) 6. Γ) 7. Δ) 8. 8. Τι είδους κύκλωμα υλοποιεί ο ακόλουθος κώδικας; always @(posedge clk) q <= d; Α) Εναν πολυπλέκτη 2-σε-1. Γ) Εναν τρισταθή απομονωτή. Β) Ενα flip-flop τύπου D. Δ) Ενα μανδαλωτή. 9. Ποιο το αποτέλεσμα της a = b ˆ c;, αν b = 4 b1001, c = 4 b1101: Α) 4 b0100. Β) 4 b1000. Γ) 4 b1011. Δ) 4 b0111. 10. Εστω wire a[3:0] το οποίο οδηγείται ταυτόχρονα από δύο διαφορετικά σήματα, b = 4 b1111 και c = 4 b0000. Ποια είναι η τιμή του; Α) 4 b0000. Β) 4 b1111. Γ) 4 bzzzz. Δ) 4 bxxxx.

Συνδυαστική άσκηση 1 Πολυπλέκτης 3-σε-1 με εισόδους δεδομένων των 4-bit. Επίλυση της άσκησης module mux3to1_4b(f, a, b, c, sel); input [3:0] a, b, c; input [1:0] sel; output [3:0] f; reg [3:0] f; always @(a or b or c or sel) begin case (sel) 2'b00 : f = a; 2'b01 : f = b; 2'b10 : f = c; default : f = 4'hZ; case module

Συνδυαστική άσκηση 2 Κύκλωμα πλειοψηφίας (majority voter) τεσσάρων εισόδων του 1-bit. Η έξοδος του είναι 1 b1 όταν τρεις ή παραπάνω από τις εισόδους του έχουν την τιμή 1 b1 αλλιώς είναι 1 b0. Επίλυση της άσκησης module majority_4b (y, a, b, c, d); input a, b, c, d; output y; reg [3:0] abcd; reg y; always @(a or b or c or d) begin abcd = {a, b, c, d}; case (abcd) 7, 11, 13, 14, 15: y = 1'b1; default: y = 1'b0; case module

Συνδυαστική άσκηση 3 Αποκωδικοποιητής 2-σε-4. Επίλυση της άσκησης module ex2_2 (sel, res); input [1:0] sel; output [3:0] res; reg [3:0] res; always @(sel) begin case (sel) 2'b00 : res = 4'b0001; 2'b01 : res = 4'b0010; 2'b10 : res = 4'b0100; 2'b11 : res = 4'b1000; default : res = 4'b0000; case module

Αριθμητική μονάδα (1) Αριθμητική μονάδα με εισόδους δεδομένων a, b των 8-bit (απρόσημοι), είσοδο επιλογής sel των 3-bit, και έξοδο δεδομένων y των 8-bit, η οποία να εκτελεί τις λειτουργίες: α) ADD: πρόσθεση των a, b, β) SUB: αφαίρεση των a, b, γ) XOR: αποκλειστικό- Η των a, b, δ) MOVB: μεταφορά του b στην έξοδο, ε) AVG: εξαγωγή του μέσου ((a + b)/2) των a, b χωρίς τη χρήση διαίρεσης, στ) CMP: σύγκριση των a, b. Η έξοδος y είναι 8 h01 όταν a > b, αλλιώς είναι 8 h00. Να γράψετε τις σωστές εξόδους κάθε λειτουργίας για a = 8 h53, b = 8 hbc.

Αριθμητική μονάδα (2) module ex3_1(a, b, sel, y); input [7:0] a, b; input [2:0] sel; output [7:0] y; reg [7:0] y; reg [8:0] p; always @(a or b or sel) begin case (sel) // ADD 3'b000 : y = a + b; // SUB 3'b001 : y = a + ( b) + 1; // XOR 3'b010 : y = a ˆ b; // MOVB 3'b011 : y = b; // AVG 3'b100 : begin p = {1'b0, a} + {1'b0, b}; y = p[8:1]; // CMP 3'b101 : y = (a > b)? 1'b1 : 1'b0; default : y = 0; case module

Ελεγχος ορθής λειτουργίας της αριθμητικής μονάδας Εκτύπωση διαγνωστικής εξόδου στη στάνταρ έξοδο (κονσόλα) 10000: a=53, b=bc, sel=000, y=0f 20000: a=53, b=bc, sel=001, y=97 30000: a=53, b=bc, sel=010, y=ef 40000: a=53, b=bc, sel=011, y=bc 50000: a=53, b=bc, sel=100, y=87 60000: a=53, b=bc, sel=101, y=00 70000: a=53, b=bc, sel=110, y=00 80000: a=53, b=bc, sel=111, y=00

Σύγχρονη μνήμη ROM Σύγχρονη μνήμη ROM (είσοδοι clk, address, έξοδος data των 8-bit) για τους 8 διαδοχικούς πρώτους αριθμούς, ξεκινώντας από τον 2. Πρώτος αριθμός είναι αυτός που διαιρείται ακριβώς μόνο με το 1 και τον εαυτό του. Χρησιμοποιείστε κατάλληλο εύρος διεύθυνσης. Επίλυση της άσκησης module rom_8_8 (clk, address, data); input clk; input [2:0] address; output [7:0] data; reg [7:0] ROM [0:7]; reg [7:0] data; initial begin ROM[ 0] = 8'h02; ROM[ 1] = 8'h03; ROM[ 2] = 8'h05; ROM[ 3] = 8'h07; ROM[ 4] = 8'h0B; ROM[ 5] = 8'h0D; ROM[ 6] = 8'h11; ROM[ 7] = 8'h13; always @(posedge clk) data <= ROM[address]; module

Μνήμη RAM σύγχρονης ανάγνωσης Μνήμη RAM των 32 ϑέσεων με σύγχρονη ανάγνωση και εισόδους clk, we του 1-bit, address κατάλληλου εύρους, din των 8-bit, και έξοδο dout των 8-bit. Επίλυση της άσκησης module ex2_1 (clk, we, address, din, dout); input clk, we; input [4:0] address; input [7:0] din; output [7:0] dout; reg [7:0] RAM [31:0]; reg [7:0] dout; always @(posedge clk) begin if (we) begin RAM[address] <= din; dout <= RAM[address]; module

Ακολουθιακό κύκλωμα (1) Σύγχρονος απαριθμητής των 8-bit με δυνατότητα απαρίθμησης προς τα πάνω και προς τα κάτω (up-down counter). Ο απαριθμητής διαθέτει τις εισόδους clk, reset, up, down που είναι είσοδοι ελέγχου, την είσοδο δεδομένων data που φορτώνεται κατά το reset, και την έξοδο δεδομένων count. Οταν μόνο η είσοδος up είναι 1 απαριθμεί προς τα πάνω, όταν μόνο η down είναι 1 απαριθμεί προς τα κάτω και όταν και οι δύο είσοδοι ελέγχου είναι 1 δεν εκτελείται καμία από τις δύο λειτουργίες.

Ακολουθιακό κύκλωμα (2) Επίλυση της άσκησης module up_down_counter8 (clk, reset, up, down, data, count); input clk, reset, up, down; input [7:0] data; output [7:0] count; reg[7:0] count; always @(posedge clk or posedge reset) begin if (reset) count <= data; else if ((up) && ( down)) count <= count + 1; else if (( up) && (down)) count <= count - 1; else count <= count; module

FSMD 1: Κύκλωμα άθροισης όρων (summing circuit) Το διπλανό σχήμα περιγράφει το διάγραμμα καταστάσεων του FSMD για την άθροιση n διαδοχικών όρων (summing circuit). Το κύκλωμα διαθέτει είσοδο ρολογιού clk, επανατοποθέτησης reset, ενεργοποίησης start, είσοδο n με εύρος W-bit, έξοδο δεδομένων y των W-bit, και έξοδο κατάστασης done που γίνεται 1 με την ολοκλήρωση των υπολογισμών. Ακόμη, υπάρχει καταχωρητής nreg που προσφέρει προσωρινή αποθήκευση για τα δεδομένα n και καταχωρητής sum των W-bit για το συσσωρευόμενο αποτέλεσμα.

Περιγραφή της υλοποίησης FSMD του summing circuit module summing (clk, reset, start, n, y, done); parameter WIDTH = 8; parameter s0=3'b000, s1=3'b001, s2=3'b010, s3=3'b011, s4=3'b100, s5=3'b101; input clk, reset, start; input [WIDTH -1:0] n; output [WIDTH -1:0] y; output done; reg [WIDTH -1:0] y, sum, n_reg; reg done; reg[2:0] state; always @(posedge clk or posedge reset) begin done = 1'b0; if (reset) begin state = s0; done = 1'b0; y = 0; else begin case (state) s0: begin if (start) state = s1; else state = s0; s1: begin sum = 0; state = s2; s2: begin n_reg = n; state = s3; s3: begin sum = sum + n_reg; state = s4; s4: begin n_reg = n_reg - 1; if (n_reg == 0) state = s5; else state = s3; s5: begin y = sum; done = 1'b1; state = s0; default: state = s0; case module

Ελεγχος ορθής λειτουργίας του FSMD 1 με testbench (1) Κλήση της διεργασίας $readmemh για την ανάγνωση δεδομένων εισόδου από αρχείο Κλήση της διεργασίας $fopen και εκτύπωση διαγνωστικής εξόδου σε αρχείο Τα περιεχόμενα του αρχείου κειμένου "summing_test_data_hex.txt" (n, y) 01 01 02 03 03 06 04 0a 05 0f 06 15 07 1c 08 24 09 2d 0a 37 0b 42 0c 4e 0d 5b 0e 69 0f 78 10 88

Ελεγχος ορθής λειτουργίας του FSMD 1 με testbench (2) Εκτύπωση διαγνωστικής εξόδου στο αρχείο "summing_alg_test_results.txt" SUMMING OK: Number of cycles = 6 SUMMING OK: Number of cycles = 8 SUMMING OK: Number of cycles = 10 SUMMING OK: Number of cycles = 12 SUMMING OK: Number of cycles = 14 SUMMING OK: Number of cycles = 16 SUMMING OK: Number of cycles = 18 SUMMING OK: Number of cycles = 20 SUMMING OK: Number of cycles = 22 SUMMING OK: Number of cycles = 24 SUMMING OK: Number of cycles = 26 SUMMING OK: Number of cycles = 28 SUMMING OK: Number of cycles = 30 SUMMING OK: Number of cycles = 32 SUMMING OK: Number of cycles = 34 SUMMING OK: Number of cycles = 36 SUMMING algorithm test has passed

Προσομοίωση του επεξεργαστή summing Χρονικό διάγραμμα (τιμές στο δεκαδικό) Χρονικό διάγραμμα (τιμές στο δεκαεξαδικό)

FSMD 2: Κύκλωμα πολλαπλασιασμού αλά ρωσικά (1) Ο επόμενος πίνακας περιγράφει σε φυσική γλώσσα κατά βήματα τον αλγόριθμο του πολλαπλασιασμού αλά ρωσικά (Russian peasant multiplication). Ζητείται ο σχεδιασμός του αντίστοιχου κυκλώματος FSMD σε Verilog. Το κύκλωμα διαθέτει είσοδο ρολογιού clk, επανατοποθέτησης reset, ενεργοποίησης start, ϑετικές εισόδους m1, m2 με εύρος 16-bit, καθώς και έξοδο δεδομένων y των 16-bit, και έξοδο κατάστασης done που γίνεται 1 με την ολοκλήρωση των υπολογισμών. Ακόμη, υπάρχει καταχωρητής p που προσφέρει αποθήκευση του προσωρινού αποτελέσματος και βοηθητικοί καταχωρητές t1, t2 των 16-bit.

FSMD 2: Κύκλωμα πολλαπλασιασμού αλά ρωσικά (2) Περιγραφή λειτουργίας του πολλαπλασιαστή Κατάσταση Λειτουργία S1 p = 0; t1 = m1; t2 = m2; S2 Αν t2 > 0, τότε επόμενη κατάσταση είναι η S3, αλλιώς η S7 S3 Αν ο t2 είναι περιττός, τότε p = p + t1; S4 Διπλασιασμός του t1 S5 Υποδιπλασιασμός του t2 S6 Επόμενη κατάσταση η S2 S7 y = p;

Περιγραφή της υλοποίησης FSMD του Russian peasant multiplication (1) module ex4 (clk, reset, start, m1, m2, y, done); parameter WIDTH = 16; parameter s1=3'b000, s2=3'b001, s3=3'b010, s4=3'b011, s5=3'b100, s6=3'b101, s7=3'b110; input clk, reset, start; input [WIDTH -1:0] m1; input [WIDTH -1:0] m2; output [WIDTH -1:0] y; output done; reg [WIDTH -1:0] y, p; reg [WIDTH -1:0] t1, t2; reg done; reg[2:0] state; always @(posedge clk or posedge reset) begin done = 1'b0; if (reset) begin state = s1; p = 0; t1 = 0; t2 = 0; else begin case (state) s1: begin if (start) begin p = 0; t1 = m1; t2 = m2; state = s2; else state = s1; s2: begin if (t2 > 0) state = s3; else state = s7; s3: begin if (t2[0] == 1'b1) begin p = p + t1; state = s4;

Περιγραφή της υλοποίησης FSMD του Russian peasant multiplication (2) s4: begin t1 = {t1[width -2:0], 1'b0}; state = s5; s5: begin t2 = {1'b0, t2[width -1:1]}; state = s6; s6: begin state = s2; s7: begin y = p; done = 1'b1; state = s1; default: state = s1; case module

Ελεγχος ορθής λειτουργίας του FSMD 2 με testbench (1) Τα περιεχόμενα του αρχείου κειμένου "ex4_test_data.txt" (m1, m2, y)... 06 07 002a 06 08 0030 06 09 0036 06 0a 003c 06 0b 0042 06 0c 0048 06 0d 004e 06 0e 0054 06 0f 005a 07 00 0000 07 01 0007 07 02 000e 07 03 0015 07 04 001c 07 05 0023 07 06 002a 07 07 0031 07 08 0038 07 09 003f 07 0a 0046...

Ελεγχος ορθής λειτουργίας του FSMD 2 με testbench (2) Εκτύπωση διαγνωστικής εξόδου στο αρχείο "ex4_alg_test_results.txt"... RPMULT OK: Number of cycles = 23 RPMULT OK: Number of cycles = 23 RPMULT OK: Number of cycles = 23 RPMULT OK: Number of cycles = 23 RPMULT OK: Number of cycles = 23 RPMULT OK: Number of cycles = 23 RPMULT OK: Number of cycles = 23 RPMULT OK: Number of cycles = 23 RPMULT OK: Number of cycles = 28 RPMULT OK: Number of cycles = 8 RPMULT OK: Number of cycles = 13 RPMULT OK: Number of cycles = 13 RPMULT OK: Number of cycles = 18 RPMULT OK: Number of cycles = 18 RPMULT OK: Number of cycles = 18 RPMULT OK: Number of cycles = 18 RPMULT OK: Number of cycles = 23 RPMULT OK: Number of cycles = 23 RPMULT OK: Number of cycles = 23 RPMULT OK: Number of cycles = 23... RPMULT algorithm test has passed

Προσομοίωση του επεξεργαστή rpmult Χρονικό διάγραμμα (τιμές στο δεκαδικό) Χρονικό διάγραμμα (τιμές στο δεκαεξαδικό)