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



Σχετικά έγγραφα
Γλώσσες Περιγραφής Υλικού Ι


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21/11/2005 Διακριτά Μαθηματικά. Γραφήματα ΒΑΣΙΚΗ ΟΡΟΛΟΓΙΑ : ΜΟΝΟΠΑΤΙΑ ΚΑΙ ΚΥΚΛΟΙ Δ Ι. Γεώργιος Βούρος Πανεπιστήμιο Αιγαίου

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

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

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΟΣ ΜΕΤΡΗΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΙΚΩΝ ΣΥΝΘΗΚΩΝ ΒΑΣΙΣΜΕΝΟ ΣΕ ARDUINO ΚΑΙ WinCC_OA

Μεταγλωττιστές ΙΙ. Καταμερισμός καταχωρητών. Νικόλαος Καββαδίας Μεταγλωττιστές ΙΙ


Pointers. Σημερινό Μάθημα! Χρήση pointer Τελεστής * Τελεστής & Γενικοί δείκτες Ανάκληση Δέσμευση μνήμης new / delete Pointer σε αντικείμενο 2

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

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

Transcript:

Σκιαγράφηση της διάλεξης Γλώσσες Περιγραφής Υλικού Ι Θέματα πρακτικής εξάσκησης Νικόλαος Καββαδίας nkavv@uop.gr 08 Ιουνίου 2011 Ανασκόπηση ϑεμάτων παλαιών εξετάσεων του μαθήματος Εξεταστική περίοδος Ιουνίου-Ιουλίου 2010 Εξεταστική περίοδος Σεπτεμβρίου 2010 Περιεχόμενο εξετάσεων Θεωρητικά ϑέματα Τι γνωρίζετε για ROM, RAM, FSM, FSMD Ερωτήσεις πολλαπλής επιλογής (multiple-choice) Συνδυαστικά κυκλώματα Μνήμες Ακολουθιακά κυκλώματα Μη-προγραμματιζόμενοι επεξεργαστές (FSMD) Ερωτήσεις πολλαπλής επιλογής (1) Ερωτήσεις πολλαπλής επιλογής (2) 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 @() 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. 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 Συνδυαστική άσκηση 2 Πολυπλέκτης 3-σε-1 με εισόδους δεδομένων των 4-bit. module mux3to1_4b(f, a, b, c, sel); output [3:0] f; input [3:0] a, b, c; input [1:0] sel; reg [3:0] f; always @(a or b or c or sel) case (sel) 2'b00 : f = a; 2'b01 : f = b; 2'b10 : f = c; default : f = 4'hZ; case module Κύκλωμα πλειοψηφίας (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) abcd = {a, b, c, d}; case (abcd) 7, 11, 13, 14, 15: y = 1'b1; default: y = 1'b0; case module Συνδυαστική άσκηση 3 Αριθμητική μονάδα (1) Αποκωδικοποιητής 2-σε-4. module ex2_2 (sel, res); input [1:0] sel; output [3:0] res; reg [3:0] res; always @(sel) 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 Αριθμητική μονάδα με εισόδους δεδομένων 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) 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 : 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 Μνήμη RAM σύγχρονης ανάγνωσης Σύγχρονη μνήμη 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 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 των 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) if (we) RAM[address] <= din; dout <= RAM[address]; module

Ακολουθιακό κύκλωμα (1) Ακολουθιακό κύκλωμα (2) Σύγχρονος απαριθμητής των 8-bit με δυνατότητα απαρίθμησης προς τα πάνω και προς τα κάτω (up-down counter). Ο απαριθμητής διαθέτει τις εισόδους clk, reset, up, down που είναι είσοδοι ελέγχου, την είσοδο δεδομένων data που φορτώνεται κατά το reset, και την έξοδο δεδομένων count. Οταν μόνο η είσοδος up είναι 1 απαριθμεί προς τα πάνω, όταν μόνο η down είναι 1 απαριθμεί προς τα κάτω και όταν και οι δύο είσοδοι ελέγχου είναι 1 δεν εκτελείται καμία από τις δύο λειτουργίες. 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) if (reset) count <= data; if ((up) && ( down)) count <= count + 1; if (( up) && (down)) count <= count - 1; count <= count; module FSMD 1: Κύκλωμα άθροισης όρων (summing circuit) Το διπλανό σχήμα περιγράφει το διάγραμμα καταστάσεων του FSMD για την άθροιση n διαδοχικών όρων (summing circuit). Το κύκλωμα διαθέτει είσοδο n με εύρος W-bit, είσοδο ρολογιού clk, επανατοποθέτησης reset, έξοδο δεδομένων 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) done = 1'b0; if (reset) state = s0; done = 1'b0; y = 0; case (state) s0: if (start) state = s0; s1: sum = 0; state = s2; s2: n_reg = n; state = s3; s3: sum = sum + n_reg; state = s4; s4: n_reg = n_reg - 1; if (n_reg == 0) state = s5; state = s3; s5: y = sum; done = 1'b1; state = s0; default: state = s0; case module

Ελεγχος ορθής λειτουργίας του FSMD 1 με testbench (1) Ελεγχος ορθής λειτουργίας του FSMD 1 με testbench (2) Κλήση της διεργασίας $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 Εκτύπωση διαγνωστικής εξόδου στο αρχείο "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. Το κύκλωμα διαθέτει ϑετικές εισόδους m1, m2 με εύρος 16-bit, είσοδο ρολογιού clk, επανατοποθέτησης reset, ενεργοποίησης start καθώς και έξοδο δεδομένων y των 16-bit, και έξοδο κατάστασης done που γίνεται 1 με την ολοκλήρωση των υπολογισμών. Ακόμη, υπάρχει καταχωρητής p που προσφέρει αποθήκευση του προσωρινού αποτελέσματος και βοηθητικοί καταχωρητές t1, t2 των 16-bit.

FSMD 2: Κύκλωμα πολλαπλασιασμού αλά ρωσικά (2) Περιγραφή της υλοποίησης FSMD του Russian peasant multiplication (1) Περιγραφή λειτουργίας του πολλαπλασιαστή Κατάσταση Λειτουργία 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; 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) done = 1'b0; if (reset) p = 0; t1 = 0; t2 = 0; case (state) s1: if (start) p = 0; t1 = m1; t2 = m2; state = s2; s2: if (t2 > 0) state = s3; state = s7; s3: if (t2[0] == 1'b1) p = p + t1; state = s4; Περιγραφή της υλοποίησης FSMD του Russian peasant multiplication (2) Ελεγχος ορθής λειτουργίας του FSMD 2 με testbench (1) s4: t1 <= {t1[width -2:0], 1'b0}; state = s5; s5: t2 <= {1'b0, t2[width -1:1]}; state = s6; s6: state = s2; s7: y = p; done = 1'b1; default: case module Τα περιεχόμενα του αρχείου κειμένου "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) Προσομοίωση του επεξεργαστή rpmult Εκτύπωση διαγνωστικής εξόδου στο αρχείο "ex4_alg_test_results.txt" 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 algorithm test has passed Χρονικό διάγραμμα (τιμές στο δεκαδικό) Χρονικό διάγραμμα (τιμές στο δεκαεξαδικό)