Χ. Σωτηρίου. 0: lw $1, 8($0) 4: lw $2, 9($0) 8: add $1, $2, $3 c: or $4, $2, $3 10: beq $4, $0, -5-20: 5 24: fffe

Σχετικά έγγραφα
Χ. Σωτηρίου. Σχήμα 1: Προτεινόμενο Πρόγραμμα Επαλήθευσης του ολοκληρωμένου Επεξεργαστή

ΠΛΕ- 027 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου

Αρχιτεκτονική Υπολογιστών

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

Σχεδίαση της Μονάδας Ελέγχου

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 3 ο ΜΕΔ απλού κύκλου

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Αρχιτεκτονική Υπολογιστών

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

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

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

Χ. Σωτηρίου. Σχήμα 1: 2 16 LCD πίνακας της πλακέτας Spartan 3E

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος

Χ. Σωτηρίου. Μετά τον τελευταίο χαρακτήρα του μηνύματος, θα ακολουθεί ο πρώτος, έτσι το μήνυμα ουσιαστικά θα περιστρέφεται διαρκώς.

Εισαγωγικά. URL:

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

Διάλεξη 12 Καθυστερήσεις (Stalls)

Θα εμφανίσει την τιμή 232 αντί της ακριβούς

Χ. Σωτηρίου. Σχήμα 1: Απλή Εικόνα Δοκιμής Ελεκτή/Οδηγού VGA

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Ας ξεκινήσουμε. Macro-instructions. (Assembly level) Micro-instructions Main memory. (micro-code)

Δυαδικά Συστήματα. URL:

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

ÈÖÓ Ö ÑÑ Ò ÑÓÖ Û ÈÖÓÔØÙÕ ÛÒ ËÔÓÙ ÛÒ ÌÑ Ñ ØÓ Å Ñ Ø ÛÒ È Ò Ô Ø Ñ Ó È ØÖÛÒ Å Ñ Û Ø Ò Ô Ø Ñ ØÛÒ ÍÔÓÐÓ ØôÒ

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

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2017

Τέτοιες λειτουργίες γίνονται διαμέσου του

Πανεπιστήμιο Θεσσαλίας- Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΗΥ430- Εργαστήριο Ψηφιακών Κυκλωμάτων

Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

7 η διάλεξη Ακολουθιακά Κυκλώματα

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Σχεδίαση μονάδας ελέγχου επεξεργαστή

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 4 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΕΙΡΙΑΚΗ ΠΡΟΣΘΕΣΗ

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 8: Μία Απλή Υλοποίηση του MIPS σε Έναν Κύκλο Ρολογιού ανά Εντολή

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ

Βασικές Σχεδίασης Υπολογιστών Αριθμητική Μονάδα Επεξεργασίας Κεφάλαιο 10

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

Τμήμα Μαθηματικών, ΕΚΠΑ. Ακαδ. έτος

Αρχιτεκτονική υπολογιστών

M 2. T = 1 + κ 1. p = 1 + κ 1 ] κ. ρ = 1 + κ 1 ] 1. 2 κ + 1

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Διαδικασιακός Προγραμματισμός

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις

Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Επίδοση Υπολογιστικών Συστημάτων. Α.-Γ. Σταφυλοπάτης.

Κεφάλαιο 4. Ο επεξεργαστής. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

Τεχνικές βασισμένες στα Δίκτυα Αναμονής Εισαγωγικά Επιχειρησιακοί νόμοι

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

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

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

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

Διάλεξη 11 Προώθηση (Forwarding)

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

Ολοκληρωμένα Κυκλώματα

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 4 ο ΜΕΔ πολλαπλών κύκλων

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

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

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

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες

ΗΥ220: Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Χειµερινό Εξάµηνο

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης Θέμα 1ο (3 μονάδες)

Κεντρική Μονάδα Επεξεργασίας

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ

Εντολές του MIPS (2)

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

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

Εισαγωγή στις Φυσικές Επιστήμες (ΦΥΕ14) Περίοδος ΕΡΓΑΣΙΑ 1 η. Τότε r r b c. και ( )

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

ξργ Μονάδα επεξεργασίας ξργ δδ δεδομένων Μονάδα ελέγχου

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Πράξεις με δυαδικούς αριθμούς

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

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

Κάθε functional unit χρησιµοποιείται µια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή. 30 min κάθε «φάση»

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

Εκτέλεση πράξεων. Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική. Πράξεις με δυαδικούς αριθμούς. Πράξεις με δυαδικούς αριθμούς

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

Transcript:

È Ò Ô Ø Ñ Ó ÃÖ Ø ¹ ÌÑ Ñ Ô Ø Ñ ÍÔÓÐÓ ØôÒ À;¾ ¹ ÇÖ ÒÛ ÍÔÓÐÓ ØôÒ Ö Ò Ü Ñ ÒÓ ¹ Ñ ³ ØÓ ¾¼½¾¹¾¼½ ³ ¹ ÍÐÓÔÓ ÌÑ Ñ ØÓ ÓÑ ÒÛÒ Datapathµ Ô Ü Ö Ø»»¾¼½ Û ¾¾»»¾¼½ Χ. Σωτηρίου ½ ËØ ÕÓ Ø ³ Ο στόχος της όγδοης άσκησης είναι η υλοποίηση και επαλήθευση του τμήματος δεδομένων(datapath) του επεξεργαστή MIPS-DLX πολλαπλών κύκλων, χρησιμοποιώντας την γλώσσα περιγραφής υλικού Verilog, και βάση μιας βιβλιοθήκης έτοιμων μονάδων. Η βιβλιοθήκη περιλαμβάνει όλες τις α- παραίτητες μονάδες για την υλοποίηση του τμήματος δεδομένων του επεξεργαστή, και συγκεκριμένα Μνήμη, Αρχείο Καταχωρητών, Καταχωρητές, Πολυπλέκτες, Αριθμητική-Λογική Μονάδα(ALU), και μια πύλη NOR 32 εισόδων. Μαζί με την δομική περιγραφή του τμήματος δεδομένων του επεξεργαστή, θα πρέπει να υλοποιηθεί και ενα πλαίσιο ελέγχου, το οποίο θα εκτελεί ενα μικρό πρόγραμμα αποθηκευμένο στην μνήμη, το οποίο θα επαληθεύει της ορθή λειτουργία εκτέλεσης για τους διαφορετικούς τύπους εντολών, δηλ. τύπου R, μνήμης και βρόχων. Το προτεινόμενο πρόγραμμα φαίνεται παρακάτω. Μπορείτε να χρησιμοποιήσετε διαφορετικό πρόγραμμα για την επαλήθευση, αρκεί να επαληθεύσετε τους τρείς τύπους εντολών. 0: lw $1, 8($0) 4: lw $2, 9($0) 8: add $1, $2, $3 c: or $4, $2, $3 10: beq $4, $0, -5-20: 5 24: fffe Σχήμα 1: Προτεινόμενο Πρόγραμμα Επαλήθευσης του Τμήματος Δεδομένων του Επεξεργαστή ¾ ÌÓ ÌÑ Ñ ÓÑ ÒÛÒ ØÓÙ Ô Ü Ö Ø Τα Σχήματα 2 και 3 περιγράφουν αναλυτικά, το αριστερό και δεξί τμήμα αντίστοιχα, απο την απαιτούμενη δομή του τμήματος δεδομένων του επεξεργαστή που θα πρέπει να υλοποιήσετε, σε επίπεδο μονάδων και σημάτων. Η περιγραφή σας σε γλώσσα Verilog θα πρέπει να χρησιμοποιεί τα ίδια ονόματα σημάτων με τα Σχήματα, μια και αυτα ορίζονται απο την αρχιτεκτονική. Το τμήμα δεδομένων θα πρέπει να υλοποιηθεί ως μια μονάδα Verilog, με προτεινόμενο όνομα datapath. Τα σήματα εισόδου και εξόδου του τμήματος δεδομένων φαίνονται στο πάνω μέρος των Σχήματων, και αποτελούν τα σήματα ελέγχου τα οποία μπορούν να οδηγηθούν απο ΜΠΚ για να εκτελέσουν τις εντολές. Μια και θέλουμε να επαληθεύσουμε το τμήμα δεδομένων, οι είσοδοι και 1

έξοδοι του θα οδηγούνται κατάλληλα απο το πλαίσιο της δοκιμής του. Ετσι, η κάθε είσοδος του τμήματος δεδομένων θα αντιστοιχεί σε έξοδο του πλαισίου δοκιμής, και αντίστροφα η κάθε έξοδος του τμήματος δεδομένων σε είσοδο του πλαισίου δοκιμής. Σχήμα 2: Τμήμα Δεδομένων του Επεξεργαστή- Αριστερό Μέρος Σχήμα 3: Τμήμα Δεδομένων του Επεξεργαστή- Δεξιό Μέρος 2

À Ð Ó ÅÓÒ ÛÒ Παρακάτω περιγράφονται αναλυτικά τα δομικά στοιχεία της βιβλιοθήκης που θα πρέπει να χρησιμοποιήσετε. Για κάθε στοιχείο περιγράφεται ο ορισμός του στην βιβλιοθήκη, οι παράμετροι και οι θύρες του, τυχόν διαδικασίες που πρέπει να ακολουθηθούν για την χρήση του, και σχετικό παράδειγμα εμφάνισης του. Η βιβλιοθήκη είναι υλοποιημένη σε Verilog και βρίσκεται στον σύνδεσμο: http://www.csd.uoc.gr/~hy225/assignments/assignment7/library.v. º½ Ã Ø ÕÛÖ Ø ¹ RegLd module RegLd (q, d, lden, clk); Ακμοπυροδότητος καταχωρητής, τύπου D, με ενεργοποίηση φόρτωσης(load enable). Παράμετροι- Θύρες: N Παράμετρος: το πλάτος του καταχωρητή, σε bits. q Εξοδος(Ν bits): έξοδος δεδομένων. d Είσοδος(Ν bits): είσοδος δεδομένων. lden Είσοδος(1 bit): έλεγχος ενεργοποίησης φόρτωσης(load enable) θετικής πολικότητας(1: φόρτωσε, 0: κράτα τα παλαιά περιεχόμενα). clk Είσοδος(1 bit): ρολόϊ θετικής ακμοπυροδότησης. Οι είσοδοι d και lden πρέπει να έχουν σταθεροποιηθεί τουλάχιστο 0.2ns(χρόνος προετοιμασίας, setup time) πριν τη θετική ακμή του ρολογιού. Ο χρόνος διατήρησης(hold time) είναι 0.1ns. Η έξοδος q αλλάζει τιμή το ταχύτερο μετά από 0.1ns και το αργότερο μετά από 0.2ns(ελάχιστη και μέγιστη καθυστέρηση εξόδου) από τη θετική ακμή του ρολογιού(όταν lden=1). Παράδειγμαχρήσης: RegLd #32 pcreg (pc, nxtpc, pcld, clk); º¾ ÈÓÐÙÔÐ Ø ¾ ÛÒ ¹ Mux2, Mux4, Mux8 module Mux2 (out, in0, in1, sel); module Mux4 (out, in0, in1, in2, in3, sel); module Mux8 (out, in0, in1, in2, in3, in4, in5, in6, in7, sel); Πολυπλέκτες 2-σε-1, 4-σε-1, και 8-σε-1 αντίστοιχα. Παράμετροι- Θύρες: N Παράμετρος: το πλάτος του πολυπλέκτη, σε bits. out Εξοδος(Ν bits): πολυπλεγμένη έξοδος. Η καθυστέρηση της εξόδου, σε σχέση με την τελευταία αλλαγή της εισόδου επιλογής(sel) ή της επιλεγμένης(με βάση το sel) εισόδου δεδομένων(inx)είναιτοπολύ 0.2nsγιατον Mux2, 0.3nsγιατον Mux4,και 0.4nsγιατον Mux8. in0 Είσοδος(Ν bits): είσοδος που επιλέγεται όταν sel=0. in1 Είσοδος(Ν bits): είσοδος που επιλέγεται όταν sel=1... in7 Είσοδος(Ν bits): είσοδος που επιλέγεται όταν sel=7. sel Είσοδος(1 bit στον Mux2, 2 bits στον Mux4, 3 bits στον Mux8): είσοδος επιλογής. Παράδειγμαχρήσης: Mux2 #32 muxaddr (ma, pc, ALUout, IorD); 3

º Ö Ñ Ø ¹ÄÓ ÅÓÒ ¹ ALU module ALU (out, ina, inb, op); Απλοική αριθμητική/λογική μονάδα. Εκτελεί πρόσθεση ή αφαίρεση ακεραίων(με την χρήση συμπλήρωματος ως προς 2, 2 s complement), και τις λογικές πράξεις AND/OR. Παράμετροι- Θύρες: N Παράμετρος: το πλάτος της Αριθμητικής, Λογικής μονάδας σε bits. out Εξοδος(32 bits): έξοδος δεδομένων. Η καθυστέρηση της εξόδου, σε σχέση με την τελευταία αλλαγή των εισόδων(δεδομένα ή επιλογή), είναι το πολύ 1.5ns. ina Είσοδος(32 bits): πρώτη είσοδος δεδομένων. inb Είσοδος(32 bits): δεύτερη είσοδος δεδομένων. op Είσοδος(2 bits): είσοδος επιλογής πράξης: 00 πρόσθεση: out = ina + inb. 01 αφαίρεση: out = ina - inb. 10 bitwise OR: out = ina OR inb. 11 bitwise AND: out = ina AND inb. Παράδειγμαχρήσης: ALU #32 alu0 (ALUarith, ALUinA, ALUinB, ALUop); º ÅÒ Ñ ¹ Memory module Memory (ren, wen, addr, din, dout); Ασύγχρονη μνήμη εντολών/δεδομένων. Θύρες: ren Είσοδος(1 bit): ενεργοποίηση ανάγνωσης(read enable). wen Είσοδος(1 bit): ενεργοποίηση εγγραφής(write enable). addr Είσοδος(32 bits): διεύθυνση προσπέλασης. Η διεύθυνση αναφέρεται σε bytes. Δεδομένου ότι εμείς έχουμε μόνο λέξεις στην υλοποίησή μας, τα δύο χαμηλότερα bit της διεύθυνσης θα πρέπει να είναι μηδέν. Για πρακτικούς λόγους, κατά την προσομοίωση, υλοποιούνται μόνο οι πρώτες 1024 λέξεις της μνήμης. Επομένως, τα 20 υψηλότερα bits της διεύθυνσης πρέπει να είναι μηδέν. din Είσοδος(32 bits): είσοδος δεδομένων προς εγγραφή. dout Εξοδος(32 bits): εξοδος δεδομένων ανάγνωσης. Παράδειγμαχρήσης: Memory mem (memrd, memwr, ma, B, md); Η μνήμη είναι ασύγχρονη, δηλαδή ο χρονισμός των προσπελάσεων σε αυτήν δεν καθορίζεται από το ρολόϊ του επεξεργαστή, αλλά απο τα σχετικά σήματα ενεργοποίησης εγγραφής και ανάγνωσης. Η μνήμη ακολουθεί το πρωτόκολλο που φαίνεται στο παρακάτω Σχήμα. 4

3.4.1 Εγγραφή στην Μνήμη Η εγγραφή γίνεται βάση του σήματος wen, με την ακόλουθη διαδικασία: Το wenγίνεται1. Ηδιεύθυνσηεγγραφής, addr,καιταδεδομένα, din,πρέπειναείναιήδησταθερά,ήνα σταθεροποιηθούν εντός 0.5ns. Για ελάχιστο χρόνο 1.5ns τα σήματα wen, addr, και din πρέπει να μείνουν σταθερά. 3.4.2 Ανάγνωση απο την Μνήμη Η ανάγνωση γίνεται αναλόγως, βάση του σήματος ren, με την ακόλουθη διαδικασία: Το renγίνεται1. Η διεύθυνση εγγραφής, addr, πρέπει να είναι ήδη σταθερή, ή να σταθεροποιηθεί εντός 0.5ns. Μετά απο 1.5ns, τα δεδομένα θα είναι έτοιμα στο dout. Τα δεδομένα παραμένουν έγκυρα, όσοτο renπαραμένει1καιηδιεύθυνσησταθερή. 3.4.3 Διαδοχικές Προσβάσεις Σε περίπτωση διαδοχικών προσβάσεων, αναγνώσεων ή εγγραφών, τα σήματα εγγραφής, ανάγνωσης πρέπει να παρουσιάζουν τον ανάλογο αριθμό ακμών(θετικών), π.χ. για δυο διαδοχικές εγγραφές απαιτούνται δυο θετικές ακμές στο wen(με τις κατάλληλες διευθύνσεις και δεδομένα). 3.4.4 Αρχικοποίηση της Μνήμης Η αρχικοποίηση της μνήμης μπορεί να γίνει με τις εντολές $readmemh ή $readmemb της Verilog(η οποία αρχικοποιεί πίνακες). Παράδειγμα χρήσης της $readmemb στο πλαίσιο δοκιμής είναι το εξής: $readmemb("memory.bin", dat0.mem.data); Οπου dat0 είναι το όνομα της εμφάνισης της μονάδας datapath του επεξεργαστή, mem το όνομα της εμφάνισης της μνήμης του επεξεργαστή καί data είναι το όνομα του πίνακα της μνήμης στην μονάδα μνήμης της βιβλιοθήκης. Το σχετικό αρχείο μνήμης, memory.bin πρέπει να βρίσκεται στον ίδιο κατάλογο με την εκτέλεση της προσομείωσης και να έχει την παρακάτω μορφή: @0 000000_00000_00000_0000000000000000 @4 <data at address 4>... Η πρώτη στήλη, @X, αντιστοιχεί στην διεύθυνση της μνήμης X, ενώ η δεύτερη στήλη στα δεδομένα που θα αποθηκευτούν κατά την αρχικοποίηση στην διεύθυνση X. Προσέξτε ότι η διεύθυνση της μνήμης πρέπει πάντα να είναι εκφρασμένη στο δεκαεξαδικό σύστημα. Η κάτω παύλα είναι διαχωριστικός χαρακτήρας της Verilog, για την ευκολότερη ανάγνωση των δεδομένων. Αν χρησιμοποιηθεί η $readmemh,ταδεδομέναθαπρέπειναείναισεδεκαεξαδικό. º ÖÕ Ó Ã Ø ÕÛÖ ØôÒ ¹ RegFile module RegFile (raa, rab, wa, wen, wd, rda, rdb); Αρχείο Καταχωρητών, των 32 καταχωρητών μεγέθους 32-bit, με δυο θύρες ανάγνωσης και μια εγγραφής. Θύρες: raa Είσοδος(5 bits): διεύθυνση καταχωρητή προς ανάγνωση από την πρώτη θύρα. 5

rab Είσοδος(5 bits): διεύθυνση καταχωρητή προς ανάγνωση από την δεύτερη θύρα. wa Είσοδος(5 bits): διεύθυνση εγγραφής. we Είσοδος(1 bit): ενεργοποίηση της εγγραφής(write enable). wd Είσοδος(32 bits): είσοδος δεδομένων προς εγγραφή. rda Εξοδος(32 bits): έξοδος δεδομένων ανάγνωσης της πρώτης θύρας. rdb Εξοδος(32 bits): έξοδος δεδομένων ανάγνωσης της δεύτερης θύρας. Παράδειγμαχρήσης: RegFile rf (rs, rt, rwa, regwr, rwd, rega, regb); Το Αρχείο Καταχωρητών, όπως και η μνήμη έχει ασύγχρονη προσπέλαση, όπου μετά την εφαρμογή του αριθμού του καταχωρητή, και την θετική ακμή του σήματος ενεργοποίησης εμφανίζονται τα δεδομένα. Το πρωτόκολλο του Αρχείου Καταχωρητών φαίνεται στο παρακάτω Σχήμα. 3.5.1 Εγγραφή στο Αρχείο Καταχωρητών Η εγγραφή γίνεται βάση του σήματος wen, με την ακόλουθη διαδικασία: Το wenγίνεται1. Ηδιεύθυνσηεγγραφής, wa,καιταδεδομένα, wd,πρέπειναείναιήδησταθερά,ήνασταθεροποιηθούν εντός 0.5ns. Γιαελάχιστοχρόνο 0.7nsτασήματα wen, wa,και wdπρέπειναμείνουνσταθερά. 3.5.2 Ανάγνωση απο το Αρχείο Καταχωρητών Η ανάγνωση γίνεται μόνο βάση της διεύθυνσης του καταχωρητή, χωρίς δηλαδή σήμα ενεργοποίησης της ανάγνωσης. Στο παραπάνω σχήμα φαίνεται παράδειγμα για την πρώτη θύρα. Μόλις αλλάξει η διεύθυνση του καταχωρητή, για επόμενη πρόσβαση, μετά απο περίπου 1.2ns είναι διαθέσιμα τα περιεχόμενα του σχετικού καταχωρητή στην ανάλογη έξοδο. Η ανάγνωση μπορεί να γίνεται παράλληλα με εγγραφή. Στην περίπτωση που η ανάγνωση και η εγγραφή αφορούν στον ίδιο καταχωρητή δεν είναι απόλυτα προβλέψιμη η καθυστέρηση ανάγνωσης. 3.5.3 Αρχικοποίηση του Αρχείου Καταχωρητών Παρόλο που η αρχικοποίηση του Αρχείου Καταχωρητών μπορεί να επιτευχθεί με τον ίδιο τρόπο όπως και για την μνήμη, μια και η προσομείωση αφορά επεξεργαστή, οι καταχωρητές θα πρέπει να αρχικοποιούνται μεσω του κώδικα μηχανής του προγράμματος. 6

º È Ð NOR ¾ ÛÒ ¹ NOR32 module NOR32 (out, in32); Πύλη ΝΟΡ 32 εισόδων. Οι είσοδο έχουν την μορφή busτων 32-bit. Θύρες: out Εξοδος(1 bit): το λογικό ΝΟΡ των 32 bit εισόδου. Η καθυστέρηση είναι περίπου 0.3ns. in32 Είσοδος(32 bit): τα τριανταδύο bit εισόδου. Παράδειγμα χρήσης: NOR32 zerologic (zero, ALUarith); Ò ÐÙØ È Ö Ö ØÓÙ ÌÑ Ñ ØÓ ÓÑ ÒÛÒ Εκτός απο την χρήση των έτοιμων μονάδων της βιβλιοθήκης που παρουσιάστηκε παραπάνω, θα πρέπει να πραγματοποιήσετε τις απαραίτητες δηλώσεις σημάτων, και κάποιες απλές πράξεις σε Verilog. º½ ÇÖ ÑÓ ËÙÒ ÛÒ ØÛÒ Ë Ñ ØÛÒ ÛÒ» Ü ÛÒ Για κάθε σήμα που χρησιμοποιείται για σύνδεση μεταξύ των μονάδων θα πρέπει να δηλώσετε ανάλογο σύρμα, wire, πριν την εμφάνιση του σήματος στην μονάδα. Αν, λ.χ. χρησιμοποιείτε εναν πολυπλέκτη 2 εισόδων, όπου η έξοδος του ονομάζεται ma και είναι 32-bit,το τμήμα της Verilogπου αφοράμόνοτοσήμα ma,καιτονπολυπλέκτηθαείναιωςεξής: wire [31:0] ma; Mux2 #32 muxaddr (ma, pc, ALUout, IorD); Τα σήματα που δεν δηλώνονται ρητά στην Verilog θεωρούνται πλάτους 1-bit. Ετσι, αν ξεχάσετε να δηλώσετε κάποιο σήμα θα παρουσιαστεί πρόβλημα με το μέγεθος του αριθμού. Επιπλέον, για τις εισόδους, εξόδους του κυκλώματος θα πρέπει να ακολουθηθούν παρόμοιες δηλώσεις, τύπου input η outputανάλογα.γιατασήματα IorD,και opοισχετικέςδηλώσειςθαείναιοιεξής: input IorD; output [5:0] op; º¾ Ü Û È ÛÒ ÔÓ Για το υποκύκλωμα field extract, όπου πρέπει να διαχωρίστούν τα επιμέρους ψηφία του IR, θα πρέπει να χρησιμοποιηθεί η σύνταξη επιλογής bit της Verilog. Ενα παράδειγμα φαίνεται παρακάτω: wire [4:0] rs; assign rs = ir[25:21]; Ορίζοντας ενα σήμα, με δήλωση input, output ή wire, η ανάθεση του περιγράφεται με την έκφραση assign όπως παραπάνω. Οταν γίνεται η ανάθεση σε τύπο wire, αυτή μπορεί να επιτευχθεί απευθείας, ως εξής: wire [4:0] rs = ir[25:21]; º ÈÖÓ Ø ÈÖÓ ÑÓÙ Για το υποκύκλωμα sign extend, θα πρέπει να πολλαπλασιαστεί το σημαντικότερο ψηφίο του αριθμού στα αριστερά. Λ.χ. ο αριθμός 4 b0101 αν προεκταθεί στα 8-bit γίνεται 8 b00000101, ενώ ο 4 b1101 γίνεται 8 b11111101. Για να πραγματοποίηση της προέκτασης προσήμου σας προτείνετε να χρησιμοποιήσετε τις πράξεις συνένωσης και επανάληψης ψηφίων της Verilog, και όχι συνδυαστική λογική, π.χ. πολυπλέκτη, έτσι ώστε να μην δημιουργείται καθυστέρηση απο την πράξη. 7

º ÇÐ Για το υποκύκλωμα shift left, όπου απαιτείται ολίσθηση 2 ψηφίων αριστερά, σας προτείνετε να συνενώσετε 2 μηδενικά στα τελευταία ψηφία του αριθμού. Τα δυο τελευταία ψηφία του αρχικού αριθμού, μετά την ολίσθηση αριστερά αποκόπτονται. º Ë Ö Ö ÑôÒ Στην έξοδο της ALU απαιτούνται δυο κυκλώματα συγκρίσεων. Για την σύγκριση ισότητας παράγεται το σήμα zero,όπου γίνεται 1 όταν το αποτέλεσμα της ALU είναι μηδενικό. Αυτό μπορεί να υλοποιηθεί μετηνπύλη NOR32εισόδων.Γιααρνητικόαποτέλεσμαπαράγεταιτοσήμα neg,τοοποίοθαπρέπει ναέχειτηντιμή 32 b01ότανηέξοδοςείναιαρνητική,διαφορετικάθαπρέπειναείναι 32 b00.για την υλοποίηση του τελευταίου, μπορείτε να χρησιμοποιήσετε το πρόσημο του αποτελέσματος. ÈÖÓ ÓÑ Û Ô Ð Ù ÇÖ Ä ØÓÙÖ Για την επαλήθευση του τμήματος δεδομένων του επεξεργαστή παρέχετε ενα πρότυπο σκελετού πλαίσιου δοκιμής, το οποίο θα πρέπει να τροποποιήσετε. Το πρότυπο βρίσκεται στον σύνδεσμο: http://www.csd.uoc.gr/~hy225/assignments/assignment7/testbench.v. Στο πρότυπο αυτό αρχείο εμπεριέχονται οδηγίες για την εμφάνιση της μονάδας του επεξεργαστή, την αρχικοποίηση της μνήμης, τον ορισμό του ρολογιού και την εφαρμογή των σημάτων ελέγχου ανα κύκλο. Για την επαλήθευση του κυκλώματος σας, σας προτείνετε να χρησιμοποιήσετε τις εντολές $display, $monitor της Verilog, οι οποίες εμφανίζουν ή παρακολουθούν ενεργά την τιμή των σημάτων αντίστοιχα. Ετσι, μπορείτε να παρακολουθείτε όλες τις εξόδους του τμήματος δεδομένων του επεξεργαστή, ενώ μετά απο κάθε εντολή σας προτείνετε να τυπώνετε τις τιμές των καταχωρητών. Για παράδειγμα αν θέλουμε να τυπώσουμε τον καταχωρητή 2, μέσω της εντολής $display: $display("register 2 : %x", MIPSdatapath.IDmemory.data[2]); Οπου σε αυτό το παράδειγμα, MIPSdatapath είναι το όνομα της εμφάνισης του τμήματος δεδομένων του επεξεργαστή, IDMemory είναι η εμφάνιση της μνήμης μέσα στο MIPSdatapath, και data[2] είναι ο εσωτερικός πίνακας των καταχωρητών στην βιβλιοθήκη. ÈÖÓ Ñ È Ö Ó ÍÔÓ ÓÐ Ø ³ Η προθεσμία παράδοσης της 8ης Άσκησης είναι η 22/4/2013. Μέχρι την προθεσμία της εργασίας θα πρέπει: να έχετε υποβάλλει τον κώδικα σας, δηλ. δυο αρχεία Verilog, την υλοποίηση του τμήματος δεδομένων του επεξεργαστή και το σχετικό πλαίσιο δοκιμής, να έχετε υποβάλλει στιμιότυπα της προσομείωσης(κυμματομορφές, έξοδο του προσομειωτή), που να επαληθεύουν την ορθή λειτουργία μαζί με σύντομο, συνοδευτικό, επεξηγηματικό κείμενο, το οποίο να εξηγεί πως τα στιγμιότυπα επαληθεύουν την ορθότητα της λειτουργίας. Η υποβολή γίνεται μέσω του προγράμματος submit ως εξής: όπου στο X αντιστοιχεί ο αριθμός της Άσκησης. submit exercisex 8