Πίνακας περιεχομένων:
- Βήμα 1: Προδιαγραφές
- Βήμα 2: Προβολή RTL ολόκληρου του συστήματος
- Βήμα 3: Αποτελέσματα δοκιμών
- Βήμα 4: Συνημμένα αρχεία
Βίντεο: Σχεδιασμός ενός απλού τεσσάρων κατευθύνσεων συσχετιστικού ελεγκτή μνήμης cache σε VHDL: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Στο προηγούμενο διδάσκοντά μου, είδαμε πώς να σχεδιάσουμε έναν απλό ελεγκτή προσωρινής αποθήκευσης με άμεση αντιστοίχιση. Αυτή τη φορά, προχωράμε ένα βήμα μπροστά. Θα σχεδιάσουμε ένα απλό τετράπλευρο σύνολο συσχετιστικού ελεγκτή προσωρινής μνήμης. Πλεονέκτημα; Λιγότερο ποσοστό απώλειας, αλλά με κόστος απόδοσης. Ακριβώς όπως το προηγούμενο ιστολόγιό μου, θα σχεδιάζαμε και μιμούμαστε έναν ολόκληρο επεξεργαστή, κύρια μνήμη και περιβάλλον cache για να δοκιμάσουμε τον ελεγκτή προσωρινής μνήμης. Ελπίζω να το βρείτε ως χρήσιμη αναφορά για να κατανοήσετε τις έννοιες και να σχεδιάσετε τους δικούς σας ελεγκτές προσωρινής μνήμης στο μέλλον. Δεδομένου ότι το μοντέλο για τον επεξεργαστή (δοκιμαστικό πάγκο) και το κύριο σύστημα μνήμης είναι ακριβώς τα ίδια με το προηγούμενο ιστολόγιό μου, δεν θα τα εξηγήσω ξανά. Ανατρέξτε στις προηγούμενες οδηγίες για λεπτομέρειες σχετικά με αυτό.
Βήμα 1: Προδιαγραφές
Γρήγορη ματιά μέσω των προδιαγραφών του Cache Controller που παρουσιάζονται εδώ:
- Τετραμερής ρύθμιση συσχετιστικού ελεγκτή προσωρινής μνήμης (μεταβείτε σε αυτόν τον σύνδεσμο αν ψάχνετε για ελεγκτή προσωρινής μνήμης απευθείας αντιστοιχισμένης).
- Single-Banked, Blocking Cache.
- Πολιτική εγγραφής για επιτυχίες εγγραφής.
- Πολιτική Γράψε-Γύρω για εγγραφές χαμένων.
- Πολιτική αντικατάστασης Tree Pseudo-LRU (pLRU).
- Πίνακας ετικετών εντός του ελεγκτή.
- Ρυθμιζόμενες παράμετροι.
Οι προεπιλεγμένες προδιαγραφές για τη μνήμη Cache και την κύρια μνήμη είναι οι ίδιες με τις προηγούμενες οδηγίες. Ανατρέξτε σε αυτά.
Βήμα 2: Προβολή RTL ολόκληρου του συστήματος
Πλήρης αναπαράσταση RTL της Κορυφαίας μονάδας εμφανίζεται στο σχήμα (εξαιρουμένου του επεξεργαστή). Οι προεπιλεγμένες προδιαγραφές για τα λεωφορεία είναι:
- Όλα τα λεωφορεία δεδομένων είναι λεωφορεία 32 bit.
- Διεύθυνση διαύλου = Λεωφορείο 32-bit (Αλλά μόνο 10 bits μπορούν να διευθυνσιοδοτηθούν εδώ από τη μνήμη).
- Αποκλεισμός δεδομένων = 128 bits (Δίαυλος ευρείας ζώνης για ανάγνωση).
- Όλα τα εξαρτήματα κινούνται από το ίδιο ρολόι.
Βήμα 3: Αποτελέσματα δοκιμών
Το Top Module δοκιμάστηκε χρησιμοποιώντας ένα Test Bench, το οποίο απλώς μοντελοποιεί έναν επεξεργαστή χωρίς αγωγούς, όπως κάναμε στο τελευταίο εκπαιδευτικό. Ο πάγκος δοκιμής δημιουργεί συχνά αιτήματα ανάγνωσης/εγγραφής δεδομένων στη μνήμη. Αυτό χλευάζει τις τυπικές οδηγίες "Φόρτωση" και "Αποθήκευση", κοινές σε όλα τα προγράμματα που εκτελούνται από έναν επεξεργαστή.
Τα αποτελέσματα των δοκιμών επαλήθευσαν με επιτυχία τη λειτουργικότητα του Cache Controller. Ακολουθούν τα στατιστικά στοιχεία των δοκιμών που τηρούνται:
- Όλα τα σήματα ανάγνωσης/εγγραφής Miss και Hit δημιουργήθηκαν σωστά.
- Όλες οι λειτουργίες ανάγνωσης/εγγραφής δεδομένων ήταν επιτυχημένες και με τους τέσσερις τρόπους.
- Ο αλγόριθμος pLRU επαληθεύεται επιτυχώς για την αντικατάσταση των γραμμών προσωρινής μνήμης.
- Δεν εντοπίστηκαν προβλήματα ασυνέπειας/ασυνέπειας δεδομένων.
- Ο Σχεδιασμός επαληθεύτηκε επιτυχώς ως χρονικός έλεγχος για Maxm. Συχνότητα λειτουργίας ρολογιού = 100 MHz στον πίνακα Xilinx Virtex-4 ML-403 (ολόκληρο το σύστημα), 110 MHz μόνο για τον Cache Controller.
- Οι μνήμες 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 σας
Σχεδιασμός προγραμματιζόμενου ελεγκτή διακοπών σε VHDL: 4 βήματα
Σχεδιασμός προγραμματιζόμενου ελεγκτή διακοπών στο VHDL: Είμαι συγκλονισμένος από το είδος των απαντήσεων που λαμβάνω σε αυτό το ιστολόγιο. Ευχαριστώ παιδιά που επισκεφτήκατε το ιστολόγιό μου και μου δώσατε κίνητρο να μοιραστώ τις γνώσεις μου μαζί σας. Αυτή τη φορά, θα παρουσιάσω τον σχεδιασμό μιας άλλης ενδιαφέρουσας ενότητας που βλέπουμε σε όλα τα SOC - Interrupt C
Σχεδιασμός ενός απλού ελεγκτή προσωρινής μνήμης σε VHDL: 4 βήματα
Σχεδιασμός ενός απλού ελεγκτή προσωρινής μνήμης σε VHDL: Γράφω αυτό με οδηγίες, γιατί μου φάνηκε λίγο δύσκολο να βρω κάποιον κώδικα αναφοράς VHDL για να μάθω και να αρχίσω να σχεδιάζω έναν ελεγκτή προσωρινής μνήμης. Έτσι σχεδίασα ένα χειριστήριο cache μόνος μου από την αρχή και το δοκίμασα με επιτυχία στο FPGA. Έχω π
Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: 5 βήματα
Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: Σε αυτό το διδακτικό, θα σχεδιάσουμε έναν απλό ελεγκτή VGA σε RTL. Το VGA Controller είναι το ψηφιακό κύκλωμα που έχει σχεδιαστεί για να οδηγεί οθόνες VGA. Διαβάζεται από το Frame Buffer (VGA Memory) που αντιπροσωπεύει το πλαίσιο που θα εμφανιστεί και παράγει αναγκαία
Διακόπτες τριών και τεσσάρων κατευθύνσεων-Πώς λειτουργούν: 6 βήματα
Διακόπτες τριών και τεσσάρων κατευθύνσεων-Πώς λειτουργούν: Ενώ ένας διακόπτης τριών κατευθύνσεων είναι πολύ απλός για πολλούς που επισκέπτονται το Instructables.com, είναι μυστήριο για πολλούς άλλους. Η κατανόηση του τρόπου λειτουργίας του κυκλώματος ικανοποιεί την περιέργεια. Μπορεί επίσης να βοηθήσει στη διάγνωση ενός τριπλού διακόπτη που δεν λειτουργεί επειδή κάποιος