Πίνακας περιεχομένων:
- Βήμα 1: Προδιαγραφές
- Βήμα 2: Προβολή RTL ολόκληρου του συστήματος
- Βήμα 3: Δοκιμή περιβάλλοντος
- Βήμα 4: Συνημμένα αρχεία
Βίντεο: Σχεδιασμός ενός απλού ελεγκτή προσωρινής μνήμης σε VHDL: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Γράφω αυτό με οδηγίες, γιατί μου φάνηκε λίγο δύσκολο να βρω κάποιον κώδικα αναφοράς VHDL για να μάθω και να αρχίσω να σχεδιάζω έναν ελεγκτή προσωρινής μνήμης. Έτσι σχεδίασα ένα χειριστήριο cache μόνος μου από την αρχή και το δοκίμασα με επιτυχία στο FPGA. Έχω παρουσιάσει έναν απλό άμεσο αντιστοιχισμένο ελεγκτή προσωρινής μνήμης, καθώς και ένα μοντέλο ενός ολόκληρου συστήματος επεξεργαστή-μνήμης για να δοκιμάσετε τον ελεγκτή προσωρινής μνήμης. Ελπίζω ότι θα βρείτε αυτό το διδακτικό χρήσιμο ως αναφορά στον σχεδιασμό των δικών σας ελεγκτών cache.
Βήμα 1: Προδιαγραφές
Αυτές είναι οι κύριες προδιαγραφές του Cache Controller που πρόκειται να σχεδιάσουμε:
- Απευθείας αντιστοιχισμένη. (μεταβείτε σε αυτόν τον σύνδεσμο αν ψάχνετε για Associated Mapped Cache Controller)
- Single-Banked, Blocking Cache.
- Πολιτική εγγραφής για εγγραφή επισκέψεων.
- No-Write διαθέσιμο ή Write Around Policy on Write misses.
- Δεν υπάρχει Buffer εγγραφής ή άλλες βελτιστοποιήσεις.
- Ο πίνακας ετικετών ενσωματώνεται.
Εκτός από αυτό, θα σχεδιάσουμε μια μνήμη Cache και ένα κύριο σύστημα μνήμης επίσης.
Οι προεπιλεγμένες (διαμορφώσιμες) προδιαγραφές της μνήμης Cache:
- 256 Bytes Single-Banked Cache.
- 16 γραμμές προσωρινής μνήμης, κάθε γραμμή προσωρινής μνήμης (μπλοκ) = 16 Bytes.
Οι προδιαγραφές της κύριας μνήμης:
- Σύγχρονη μνήμη ανάγνωσης/εγγραφής.
- Πολυτραπεζική Interleaved Memory - τέσσερις τράπεζες μνήμης.
- Κάθε μέγεθος τράπεζας = 1 kB το καθένα. Επομένως, συνολικό μέγεθος = 4 kB.
- Word (4 Bytes) διευθυνσιοδοτούμενη μνήμη με 10-bit Bus Bus.
- Υψηλότερο εύρος ζώνης για ανάγνωση. Διαβάστε Πλάτος Δεδομένων = 16 Bytes σε έναν κύκλο ρολογιού.
- Γράψτε Πλάτος Δεδομένων = 4 Bytes.
ΣΗΜΕΙΩΣΗ: Ελέγξτε το νεότερο μου εκπαιδευτικό αν ψάχνετε για σχεδιασμό συσχετιστικού ελεγκτή συσχέτισης 4 κατευθύνσεων
Βήμα 2: Προβολή RTL ολόκληρου του συστήματος
Πλήρης αναπαράσταση RTL της Κορυφαίας μονάδας εμφανίζεται στο σχήμα (εξαιρουμένου του επεξεργαστή). Οι προεπιλεγμένες προδιαγραφές για τα λεωφορεία είναι:
- Όλα τα λεωφορεία δεδομένων είναι λεωφορεία 32 bit.
- Διεύθυνση διαύλου = Λεωφορείο 32-bit (Αλλά μόνο 10 bits μπορούν να διευθυνσιοδοτηθούν εδώ από τη μνήμη).
- Αποκλεισμός δεδομένων = 128 bits (Δίαυλος ευρείας ζώνης για ανάγνωση).
- Όλα τα εξαρτήματα κινούνται από το ίδιο ρολόι.
Βήμα 3: Δοκιμή περιβάλλοντος
Το Top Module δοκιμάστηκε χρησιμοποιώντας ένα Test Bench, το οποίο απλώς μοντελοποιεί έναν επεξεργαστή χωρίς αγωγούς (Γιατί ο σχεδιασμός ενός ολόκληρου επεξεργαστή δεν είναι καθόλου εύκολος !!). Ο πάγκος δοκιμής δημιουργεί συχνά αιτήματα ανάγνωσης/εγγραφής δεδομένων στη μνήμη. Αυτό χλευάζει τις τυπικές οδηγίες "Φόρτωση" και "Αποθήκευση", κοινές σε όλα τα προγράμματα που εκτελούνται από έναν επεξεργαστή. Τα αποτελέσματα των δοκιμών επαλήθευσαν με επιτυχία τη λειτουργικότητα του Cache Controller. Ακολουθούν τα στατιστικά στοιχεία των δοκιμών που τηρούνται:
- Όλα τα σήματα ανάγνωσης/εγγραφής Miss και Hit δημιουργήθηκαν σωστά.
- Όλες οι λειτουργίες ανάγνωσης/εγγραφής δεδομένων ήταν επιτυχημένες.
- Δεν εντοπίστηκαν προβλήματα ασυνέπειας/ασυνέπειας δεδομένων.
- Ο Σχεδιασμός επαληθεύτηκε επιτυχώς ως χρονικός έλεγχος για Maxm. Ρολόι Συχνότητα λειτουργίας = 110 MHz στον πίνακα Xilinx Virtex-4 ML-403 (ολόκληρο το σύστημα), 195 MHz μόνο για τον ελεγκτή Cache.
- Οι μνήμες RAM μπλοκ συνήχθησαν για την κύρια μνήμη. Όλες οι άλλες συστοιχίες εφαρμόστηκαν σε LUT.
Βήμα 4: Συνημμένα αρχεία
Τα ακόλουθα αρχεία επισυνάπτονται εδώ με αυτό το ιστολόγιο:
- . VHD αρχεία Cache Controller, Cache Data Array, Main Memory System.
- Πάγκος δοκιμής.
- Τεκμηρίωση στο Cache Controller.
Σημειώσεις:
- Περιηγηθείτε στην τεκμηρίωση για πλήρη κατανόηση των προδιαγραφών του Cache Controller που παρουσιάζονται εδώ.
- Οποιεσδήποτε αλλαγές στον κώδικα εξαρτώνται από άλλες ενότητες. Επομένως, οι αλλαγές πρέπει να γίνουν με σύνεση. Δώστε προσοχή σε όλα τα σχόλια και τις επικεφαλίδες που έχω δώσει.
- Εάν για οποιονδήποτε λόγο, τα Block RAM δεν συνάγονται για την κύρια μνήμη, ΜΕΙΩΤΕ το μέγεθος της μνήμης, ακολουθούμενη από αλλαγές στο πλάτος του διαύλου διευθύνσεων στα αρχεία και ούτω καθεξής. Έτσι ώστε η ίδια μνήμη να μπορεί να εφαρμοστεί είτε σε LUT είτε σε Distributed RAM. Αυτό θα εξοικονομήσει χρόνο και πόρους δρομολόγησης. Or, Μεταβείτε στη συγκεκριμένη τεκμηρίωση FPGA και βρείτε τον συμβατό κωδικό για Block RAM και επεξεργαστείτε τον κώδικα ανάλογα, και χρησιμοποιήστε τις ίδιες προδιαγραφές πλάτους διαύλου διευθύνσεων. Sδια τεχνική για τα Altera FPGA.
Συνιστάται:
Σχεδιασμός ενός σχηματικού σχήματος στο KiCad: 3 βήματα
Σχεδιασμός ενός σχηματικού σχήματος στο KiCad: Σε αυτό το άρθρο, θα μπορείτε να γνωρίζετε πώς να σχεδιάζετε ένα σχηματικό κύκλωμα στο Ki Cad. Έτσι, πρέπει να γνωρίζετε τι είναι το KiCad. Το KiCad είναι ένα λογισμικό που μπορεί να εγκατασταθεί σε παράθυρα και λογισμικό mac. Αυτό το λογισμικό σάς επιτρέπει να σχεδιάζετε και να δημιουργείτε το desi σας
Σχεδιασμός ενός απλού τεσσάρων κατευθύνσεων συσχετιστικού ελεγκτή μνήμης cache σε VHDL: 4 βήματα
Σχεδιασμός ενός απλού τεσσάρων κατευθυντήριων συστημάτων ελεγκτή μνήμης προσωρινής μνήμης σε VHDL: Στο προηγούμενο διδάσκοντά μου, είδαμε πώς να σχεδιάσουμε έναν απλό ελεγκτή προσωρινής μνήμης απευθείας αντιστοιχισμένου. Αυτή τη φορά, προχωράμε ένα βήμα μπροστά. Θα σχεδιάσουμε ένα απλό τετράπλευρο σύνολο συσχετιστικού ελεγκτή προσωρινής μνήμης. Πλεονέκτημα; Λιγότερο ποσοστό χαμένων, αλλά με κόστος για
Σχεδιασμός προγραμματιζόμενου ελεγκτή διακοπών σε VHDL: 4 βήματα
Σχεδιασμός προγραμματιζόμενου ελεγκτή διακοπών στο VHDL: Είμαι συγκλονισμένος από το είδος των απαντήσεων που λαμβάνω σε αυτό το ιστολόγιο. Ευχαριστώ παιδιά που επισκεφτήκατε το ιστολόγιό μου και μου δώσατε κίνητρο να μοιραστώ τις γνώσεις μου μαζί σας. Αυτή τη φορά, θα παρουσιάσω τον σχεδιασμό μιας άλλης ενδιαφέρουσας ενότητας που βλέπουμε σε όλα τα SOC - Interrupt C
Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: 5 βήματα
Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: Σε αυτό το διδακτικό, θα σχεδιάσουμε έναν απλό ελεγκτή VGA σε RTL. Το VGA Controller είναι το ψηφιακό κύκλωμα που έχει σχεδιαστεί για να οδηγεί οθόνες VGA. Διαβάζεται από το Frame Buffer (VGA Memory) που αντιπροσωπεύει το πλαίσιο που θα εμφανιστεί και παράγει αναγκαία
Σχεδιασμός ενός συστήματος αυτοματισμού οικιακού αυτοματισμού: 12 βήματα
Σχεδιασμός ενός συστήματος αυτοματισμού οικιακού αυτοματισμού: Ο σκοπός αυτού του οδηγού δεν είναι να σας πει πώς μπορείτε να κάνετε ό, τι θέλετε να κάνει το σπίτι σας. Αντίθετα, έχει γραφτεί για να γίνει μια ιδέα πραγματικότητα, αλλά και να μετατραπεί η τρέλα σε λογική κατανοώντας τα όρια (τεχνολογία, κόστος, απαιτούμενος χρόνος