Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

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

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

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

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

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

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

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

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

7.1 Θεωρητική εισαγωγή

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

Ψηφιακή Λογική Σχεδίαση

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

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

8.1 Θεωρητική εισαγωγή

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

Ψηφιακή Λογική Σχεδίαση

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

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

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

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

Ψηφιακή Λογική Σχεδίαση

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

Οργάνωση Υπολογιστών

Ψηφιακή Λογική Σχεδίαση

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο Διάλεξη 8 η : Μηχανές Πεπερασμένων Κaταστάσεων σε FPGAs

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

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

Χρ. Καβουσιανός Επίκουρος Καθηγητής

Ψηφιακή Λογική Σχεδίαση

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ

Κεφάλαιο 6. Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα

ΑΣΚΗΣΗ 9 ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ (COUNTERS)

ΑΣΚΗΣΗ 9. Tα Flip-Flop

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

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

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

Διοχέτευση (Pipeline)

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

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

Ασύγχρονοι Απαριθμητές. Διάλεξη 7

Ελίνα Μακρή

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Αρχιτεκτονική Μνήμης

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

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

ε. Ένα κύκλωμα το οποίο παράγει τετραγωνικούς παλμούς και απαιτείται εξωτερική διέγερση ονομάζεται ασταθής πολυδονητής Λ

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

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

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f.

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

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

Ολοκληρωμένα Κυκλώματα - Φθινόπωρο 2014 Γ. Δημητρακόπουλος. Εργαστηριακή άσκηση 2

ΑΣΚΗΣΗ 3 ΣΥΝΔΥΑΣΤΙΚΑ ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ: ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ

9. ΚΑΤΑΧΩΡΗΤΕΣ (REGISTERS)

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

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

Κεφάλαιο 7 ο. Γ. Τσιατούχας. VLSI Technology and Computer Architecture Lab. Ακολουθιακή Λογική 2

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

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

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

ΑΣΚΗΣΗ 7 FLIP - FLOP

ΠΑΡΟΡΑΜΑΤΑ (ενημέρωση )

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

Άσκηση 3 Ένα νέο είδος flip flop έχει τον ακόλουθο πίνακα αληθείας : I 1 I 0 Q (t+1) Q (t) 1 0 ~Q (t) Κατασκευάστε τον πίνακα

Παραδείγματα σχεδίασης με μηχανές πεπερασμένων καταστάσεων

ΑΣΚΗΣΗ 8 ΚΑΤΑΧΩΡΗΤΕΣ - REGISTERS

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές...

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

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

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

Δημοκρίτειο Πανεπιστήμιο Θράκης Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών. Συστήματα VLSI. Πρόοδος Άνοιξη 2018

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Θέματα χρονισμού σε φλιπ-φλοπ και κυκλώματα VLSI

Ψηφιακή Λογική Σχεδίαση

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

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Ακολουθιακή Λογική. Επιμέλεια Διαφανειών: Δ.

K24 Ψηφιακά Ηλεκτρονικά 10: Ακολουθιακά Κυκλώματα

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

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

Επίπεδο Ψηφιακής Λογικής (The Digital Logic Level)

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ

Λιβανός Γιώργος Εξάμηνο 2017Β

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

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

Transcript:

Πανεπιστήμιο Πατρών Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Εργαστήριο Σχεδίασης Ολοκληρωμένων Κυκλωμάτων Σχεδιασμός Ολοκληρωμένων Συστημάτων με τεχνικές VLSI Χειμερινό Εξάμηνο 2015 FSM s & Structural VHDL ΕΚΠΟΝΗΣΗ: Εμερετλής Ανδρέας, Υποψήφιος Διδάκτωρ Θεοδωρίδης Γεώργιος, Επίκουρος Καθηγητής

Άσκηση 1: Πολλαπλασιαστής με χρήση πλήρων αθροιστών A. Να σχεδιάσετε και να υλοποιήσετε σύστημα πολλαπλασιασμού δύο αριθμών 8-bit με χρήση πλήρων αθροιστών και λογικών πυλών. Το σύστημα θα έχει 2 εισόδους 8-bit αριθμών, ρολόι, σήμα αρχικοποίησης (reset), και μία έξοδο 8-bit. Θα δέχεται τους δύο αριθμούς στον ίδιο κύκλο ρολογιού. Στον επόμενο θα υπολογίζει το αποτέλεσμα και θα το δίνει στην έξοδο (2 καταχωρητές, ένας στην αρχή και ένας στο τέλος). Προσομοιώστε και συνθέστε το σύστημά σας. Ποιό είναι το critical path? Πόσο καθυστέρηση έχει το κύκλωμά σας (συχνότητα λειτουργίας). B. Να σχεδιάσετε και να υλοποιήσετε σύστημα πολλαπλασιασμού δύο αριθμών 8-bit με χρήση πλήρων αθροιστών και λογικών πυλών (όπως παραπάνω) που να έχει τριπλάσια συχνότητα σε σύγκριση με το ανωτέρω. Συμβουλή: Χρησιμοποιήστε αποδοτικά την τεχνική της διοχέτευσης (pipeline)! Προσομοιώστε και συνθέστε το σύστημά σας. Ποιό είναι το νέο critical path? Πόσο καθυστέρηση έχει (συχνότητα λειτουργίας). Είναι όντως τρείς φορές γρηγορότερο? Και στις δύο περιπτώσεις ΠΡΕΠΕΙ να χρησιμοποιήσετε ΑΥΣΤΗΡΑ δομική μορφή κώδικα (structural VHDL) και Port-maps. Επεξήγηση λειτουργίας πολλαπλασιαστή με χρήση πλήρων αθροιστών και ενδεικτικό block diagram: Άσκηση 2: Arbiter («Κύκλωμα Διαιτησίας») Σε μεγάλα συστήματα, κάποιοι πόροι (resources) είναι διαμοιραζόμενοι από πολλά υποσυστήματα. Για παράδειγμα, μερικοί επεξεργαστές μπορεί να μοιράζονται το ίδιο block μνήμης ενώ πολλές περιφερειακές συσκευές μπορεί να είναι συνδεδεμένες με το ίδιο bus. Ο arbiter είναι το κύκλωμα που επιλύει κάθε διένεξη (conflict) και συντονίζει την πρόσβαση στον εκάστοτε διαμοιραζόμενο πόρο (shared resource). Ας θεωρήσουμε τον arbiter του παρακάτω σχήματος.

Τα δύο υποσυστήματα επικοινωνούν με τον arbiter μέσω των σημάτων αίτησης (request signal) και των σημάτων παραχώρησης άδειας (grant signals), τα οποία ονομάζονται r(1) και g(1) για το υποσύστημα 1 και r(0) και g(0) για το υποσύστημα 0. Η λειτουργία του συνολικού συστήματος έχει ως εξής: Όταν ένα υποσύστημα χρειάζεται έναν πόρο, δίνει σήμα αίτησης στον arbiter με ενεργοποίηση του σήματος r. Ο arbiter παρακολουθώντας τη χρήση των πόρων αλλά και των σημάτων αίτησης όλων των υποσυστημάτων, δίνει σήμα άδειας χρήσης στο εκάστοτε υποσύστημα, ενεργοποιώντας το αντίστοιχο σήμα g. Αφού ενεργοποιηθεί το σήμα άδειας για ένα υποσύστημα, τότε και μόνον τότε έχει δικαίωμα χρήσης του πόρου. Μετά το πέρας της χρήσης του πόρου από το υποσύστημα, το τελευταίο απενεργοποιεί το σήμα αίτησης και ο arbiter ελευθερώνει τον πόρο. Συνεπώς, αφού ο arbiter αποφασίζει εν μέρει από γεγονότα που συνέβησαν νωρίτερα (προηγούμενα σήματα άδειας και αίτησης), χρειάζεται εσωτερικές «καταστάσεις» για να καταγράφει τι έγινε στο παρελθόν. Έτσι, μπορεί εύκολα να κατασκευαστεί με χρήση Μηχανής Πεπερασμένης Καταστάσεων (FSM). Ερώτημα Α) Να περιγραφεί σε VHDL ο arbiter με βάση το παρακάτω διάγραμμα FSM τύπου Moore. Το διάγραμμα αποτελείται από 3 καταστάσεις, waitr, grant1 και grant0. Η πρώτη κατάσταση καταδεικνύει ότι οι πόροι είναι ελεύθεροι και ο arbiter περιμένει αίτηση. Οι άλλες δυο καταδεικνύουν ότι είτε το υποσύστημα 1 είτε το 0 έχει δεσμεύσει τον πόρο. Αρχικά ο arbiter είναι στην κατάσταση waitr. Αν ενεργοποιηθεί το σήμα r(1) σε ανιούσα ακμή ρολογιού, τότε δίνει άδεια στο υποσύστημα 1 μεταβαίνοντας στην κατάσταση grant1,όπου το σήμα g(1) γίνεται 1. Με το πέρας της χρήσης του πόρου, το σήμα r(1) απενεργοποιείται και ο arbiter επιστρέφει στην κατάσταση αναμονής. Αντίστοιχη είναι η λειτουργία για την ικανοποίηση του υποσυστήματος 2. Ένα κρίσιμο ζήτημα στη σχεδίαση του arbiter είναι η διαχείριση ταυτόχρονων αιτημάτων από τα 2 υποσυστήματα. Για τις ανάγκες του ερωτήματος αυτού, ο arbiter δίνει προτεραιότητα στο υποσύστημα 1.

Ερώτημα Β) Στο παραπάνω ερώτημα ο arbiter δίνει προτεραιότητα στο υποσύστημα 1. Αυτό όμως ενδέχεται να δημιουργήσει πρόβλημα σε περίπτωση συνεχόμενων αιτήσεων του υποσυστήματος 1. Το πρόβλημα αυτό διορθώνεται με κατάλληλη αλλαγή του διαγράμματος της FSM ώστε να είναι περισσότερο δίκαιο. Το νέο διάγραμμα θα πρέπει να «θυμάται» ποιο υποσύστημα είχε χρησιμοποιήσει τελευταία τον πόρο και θα δίνει προτεραιότητα στο άλλο υποσύστημα σε ενδεχόμενη ταυτόχρονη αίτηση και των δύο. Σχεδιάστε αρχικά το διάγραμμα της FSM «στο χαρτί» με πλήρως λειτουργικές καταστάσεις ώστε να ικανοποιούνται οι παραπάνω προϋποθέσεις. Στη συνέχεια, με βάση το νέο διάγραμμα της FSM, περιγράψτε σε VHDL ένα «δικαιότερο» arbiter. ΠΡΟΣΟΧΗ: ΔΕΝ ΖΗΤΕΙΤΑΙ υλοποίηση των υποσυστημάτων και των πόρων καθώς και η συνδεσμολογία τους με τον arbiter. Το αρχικό block diagram δίνεται καθαρά για λόγους κατανόησης της λειτουργίας του arbiter. Για τις ανάγκες τις άσκησης αυτής οι πόροι και τα υποσυστήματα θεωρούνται black boxes. ΖΗΤΕΙΤΑΙ ΜΟΝΟ η υλοποίηση της FSM, δηλαδή του arbiter. Το κύκλωμα θα έχει ως εισόδους τα: clk, reset, r και ως έξοδο το g. Θεωρείστε τα σήματα εισόδου / εξόδου r και g ως std_logic_vector. Άσκηση 3: Register-based Synchronous FIFO buffer Ένας σύγχρονος FIFO buffer είναι ένα κύκλωμα όπου τα δεδομένα εισέρχονται από μία είσοδο και διαβάζονται από μία έξοδο κάτω από τη λογική First-In First-Out σε συγχρονισμό με το ρολόι του συστήματος. Δηλαδή, τα δεδομένα αποθηκεύονται διαδοχικά στις θέσεις μνήμης και διαβάζονται με τη σειρά που αποθηκεύτηκαν, όπως φαίνεται στο παρακάτω σχήμα. Ένας τρόπος υλοποίησης αυτού του κυκλώματος είναι η χρήση ενός κυκλώματος ελέγχου σε ένα γενικό σύστημα μνήμης (π,χ ένα register file, όπως δείχνεται στο επόμενο σχήμα). Όπως φαίνεται, οι είσοδοι είναι: α) fifo_data_in: δεδομένα εγγραφής β) wr, rd: σήματα εγγραφής και ανάγνωσης γ) clk, reset: χρησιμοποιούνται και από τη μνήμη και το FIFO controller ενώ οι έξοδοι είναι: α) fifo_data_out: δεδομένα ανάγνωσης

β) full, empty: ο buffer είναι γεμάτος / άδειος. Όταν είναι γεμάτος δε μπορεί να δεχτεί επιπλέον δεδομένα για εγγραφή, ενώ όταν είναι άδειος δε μπορεί να εξάγει δεδομένα ανάγνωσης. Για την αποφυγή εγγραφών όταν ο buffer είναι γεμάτος, το register file έχει ένα σήμα εισόδου w_en (write enable) το οποίο παράγεται με κατάλληλη λογική όπως φαίνεται στο σχήμα. Επιπλέον, η μονάδα FIFO controller παράγει και δύο εσωτερικά σήματα w_addr (write_address) και rd_addr (read_address), που χρησιμοποιούνται για τη διευθυνσιοδότηση του καταχωρητή εγγραφής και ανάγνωση, αντίστοιχα. Στην ουσία τα σήματα αυτά λειτουργούν ως δείκτες (pointers) για τον καθορισμό της θέσης όπου θα γραφτεί το νέο εισερχόμενο δεδομένο (wr_ptr) και της θέσης από όπου θα διαβαστεί το δεδομένο εξόδου (rd_ptr). Η λειτουργία των δεικτών αυτών φαίνεται στο ακόλουθο σχήμα μαζί την παραγωγή των σημάτων full & empty, όταν ο buffer είναι γεμάτος ή άδειος. Περιγράψτε σε VHDL έναν FIFO buffer 4 θέσεων, όπου σε κάθε θέση έχει εύρος 8 ψηφία. Για το κύκλωμα του register file χρησιμοποιήστε ή τροποποιήστε τον αντίστοιχο σχεδιασμό και υλοποίηση της προηγούμενης εργαστηριακής άσκησης.

Άσκηση 4: FSM με ενσωματωμένους timers Στο επόμενο σχήμα δείχνεται το διάγραμμα μίας μηχανής πεπερασμένων καταστάσεων, όπου x, y είναι η εξωτερική είσοδος και έξοδος, αντίστοιχα. Επιπλέον, τα Τ1 και Τ2 αντιστοιχούν σε κύκλους ρολογιού όπου Τ1 < Τ2. Περιγράψτε την FSM και επιβεβαιώστε την ορθή λειτουργία της. Οι τιμές Τ1 και Τ2 θα πρέπει να είναι παράμετροι στον κώδικα. Προφανώς η FSM είναι συγχρονισμένη με το ρολόι του συστήματος.