CS-422: Intro. VLSI Systems
Fall 2002
Dept. of Computer Science
University of Crete

Exercise 5: Timing

Due: 22 November 2002 (week 8)

Σχεδιάστε το διάγραμμα block σε επίπεδο μεταφοράς καταχωρητών και προδιαγράψτε το χρονισμό (φ1, φ2) μιάς ουράς υλοποιημένης σε μνήμη SRAM που την διαχειριζόμαστε σαν κυκλικό ενταμιευτή. Το σύστημα θα λειτουργεί με ένα ρολόϊ δύο μη-αλληλοκαλυπτόμενων φάσεων, φ1 και φ2. Θα υπάρχει μία μνήμη SRAM η οποία μπορεί να κάνει μία προσπέλαση (είτε ανάγνωση, είτε εγγραφή) ανά κύκλο ρολογιού. Η είσοδος διεύθυνσης της μνήμης, Addr, πρέπει να παραμένει έγκυρη και σταθερή καθ' όλη τη διάρκεια της φάσης φ1 (δηλαδή πρέπει να έχει γίνει διαθέσιμη πριν την έναρξη της φ1). Οι είσοδοι ελέγχου της μνήμης, RDen και WRen, και η είσοδος δεδομένων εγγραφής, Din, πρέπει να παραμένουν έγκυρες και σταθερές καθ' όλη τη διάρκεια της φάσης φ2 (εγκυρότητα και σταθερότητα της εισόδου Din απαιτείται μόνον εάν WRen=1). Η έξοδος Dout της μνήμης σταθεροποιείται και γίνεται έγκυρη λίγο πριν το τέλος της φάσης φ2, και παραμένει έτσι μέχρι λίγο μετά το τέλος της φ2, κατά τους κύκλους εκείνους κατά τους οποίους RDen=1.

Το σύστημα θα περιλαμβάνει επίσης δύο latches διευθύνσεων (pointers), ENQp και DEQp. Το ENQp περιέχει την πρώτη κενή διεύθυνση της μνήμης, δηλαδή τη διεύθυνση στην οποία θα γίνει η επόμενη εισαγωγή (εγγραφή) στην ουρά. Το DEQp περιέχει τη διεύθυνση της κεφαλής της ουράς, δηλαδή τη διεύθυνση από την οποία θα γίνει η επόμενη εξαγωγή (ανάγνωση) από την ουρά. Ακόμη υπάρχει ένα flag latch (1 bit), ονόματι EMPTY, το οποίο χρησιμεύει γιά να ξεχωρίζουμε αν η ουρά είναι άδεια ή γεμάτη όταν ENQp==DEQp. Τα ENQp, DEQp, και EMPTY θα υλοποιηθούν σαν ημιστατικά latches (δυναμικά latches με είσοδο refresh). Τέλος, το σύστημα περιλαμβάνει έναν αθροιστή (αυξητή - incrementor) γιά τη διαχείριση των ENQp και DEQp, έναν συγκριτή ισότητας γιά την ανίχνευση γεμίσματος/αδειάσματος της ουράς, και πολυπλέκτες, latches, και συνδυαστική λογική ελέγχου ανάλογα με τις απαιτήσεις σας. Η καθυστέρηση του αθροιστή είναι κάτι παραπάνω από 1 φάση ρολογιού. Η καθυστέρηση του συγκριτή ισότητας είναι περίπου μισή φάση ρολογιού. Η καθυστέρηση των πολυπλεκτών, απλών πυλών, και latches είναι μικρή (ας πούμε γύρω στο 10 με 20 % μιάς φάσης ρολογιού). Το εξωτερικό interface της ουράς αποτελείται από

  1. την είσοδο REQ, μεγέθους 2 bits, με δυνατές τιμές ``enqueue'', ``dequeue'', και ``noop'',
  2. την είσοδο enqData που δίνει τα προς εισαγωγή δεδομένα,
  3. την έξοδο deqData που δίνει τα δεδομένα εξαγωγής, και
  4. τις εξόδους qEM, qFU, ενός bit καθεμία, που δείχνουν εάν η ουρά είναι άδεια ή γεμάτη.
Οι είσοδοι REQ και enqData παραμένουν έγκυρες και σταθερές μόνον γύρω από το τέλος μίας φάσης ρολογιού \-εσείς θα επιλέξετε γύρω από ποιάς ή ποιών φάσεων ρολογιού το τέλος αυτές θα απαιτηθεί να παραμένουν έγκυρες και σταθερές (επιτρέπεται να είναι άλλη φάση γιά το REQ και άλλη γιά τα enqData) (προφανώς, θέλουμε να ζητήσουμε να μας έρχονται οι είσοδοι το αργότερο δυντόν). Οι έξοδοι deqData, qEM, και qFU πρέπει να παραμένουν έγκυρες και σταθερές καθ' όλη τη διάρκεια μίας τουλάχιστο φάσης ρολογιού (εσείς θα επιλέξετε ποιάν ή ποιές \-μπορεί να διαφέρουν οι φάσεις αυτές γιά τα δεδομένα και τα flags) (προφανώς, θέλουμε οι έξοδοι να βγαίνουν το νωρίτερο δυνατόν). Προσπαθήστε, εί δυνατόν, οι έξοδοι qEM και qFU που προκύπτουν από μία πράξη (REQuest) να είναι διαθέσιμες πριν να πρέπει να δοθεί η αίτηση (REQ) γιά την επόμενη πράξη, ούτως ώστε να μπορεί το εξωτερικό σύστημα να μην ζητά ``παράνομες'' πράξεις (βέβαια, και το εξωτερικό σύστημα χρειάζεται χρόνο απόφασης \-αυτό επαφίεται σαν θέμα γιά σκέψη πέραν των ορίων αυτής της άσκησης...).

Σχεδιάστε το διάγραμμα block του συστήματος. Σε αυτό πρέπει να φαίνονται τα εξής στοιχεία: η μνήμη, ο αθροιστής, ο συγκριτής, πύλες διέλευσης (transmission gates), multi-bit inverters (σχεδιασμένοι σαν ορθογώνια κουτιά), και blocks συνδυαστικής λογικής (που θα υλοποιηθεί με απλές (στατικές) πύλες, τις οποίες ΔΕΝ σας ζητείται να δείξετε). Τα latches και οι πολυπλέκτες θα υλοποιούνται έμμεσα, μέσω πυλών διέλευσης και (multi-bit) inverters.

Περιγράψτε τη λειτουργία του συστήματός σας: πότε έρχονται οι εξωτερικές είσοδοι, πού κρατιούνται, σε ποιές φάσεις ρολογιού γίνονται ποιές εργασίες μέσα από ποιούς δρόμους, και πότε βγαίνουν οι έξοδοι του συστήματος. μην ξεχάστε να πείτε πότε κάνετε refresh τα ημιστατικά latches. Δώστε μιά σειρά λεπτομερών διαγραμμάτων χρονισμού, όπου θα δείχνετε (σχεδόν όλα ή και όλα) τα σήματα ελέγχου και δεδομένων, με τον χρονισμό καθενός σε σχέση με τις φάσεις ρολογιού. Επίσης δείξτε δύο συνεχόμενες πράξεις σε διαδοχικούς κύκλους ρολογιού \- υπάρχει χρονική επικάλυψη μεταξύ τους, και πόση;


Up to the Home Page of CS-422
 
© copyright University of Crete, Greece.
Last updated: 14 Nov. 2002, by M. Katevenis.