Υλοποίηση επεξεργαστή ARM με χρήση γλώσσας Bluespec

Abstract

Διπλωματική εργασία που υποβλήθηκε στη σχολή ΗΜΜΥ του Πολυτεχνείου Κρήτης για την πλήρωση των προϋποθέσεων λήψης του διπλώματοςΠερίληψη: Ο σκοπός αυτής της διπλωματικής ήταν να δημιουργηθεί ένας επεξεργαστής ARM με τη χρήση της γλώσσας προγραμματισμού Bluespec System Verilog(BSV). Η BSV έχει μία θεμελιωδώς διαφορετική προσέγγιση στη σχεδίαση υλικού, συγκριτικά με άλλες γλώσσες περιγραφής υλικού. Βασίζεται στη δημιουργία κυκλωμάτων από ότι στην απλή περιγραφή κυκλωμάτων και επίσης βασίζεται σε ατομικούς κανόνες συναλλαγών αντί για μια συνολική σύγχρονη άποψη του κόσμου. O επεξεργαστής είναι μέλος της ARM7 οικογένειας επεξεργαστών, έχει 3 στάδια pipeline, χρησιμοποιεί 32-bit αρχιτεκτονική και βασίζεται στο ARMv4 σύνολο εντολών. Επιπλέον ο επεξεργαστής υποστηρίζει όλα τα διαφορετικά modes λειτουργίας. Τα mode λειτουργίας είναι User, Fast Interrupt(FIQ), Interrupt(IRQ), Supervisor, Abort, System και Undefined. Ο αριθμός των τύπων των διαφορετικών εντολών που υλοποιήθηκαν είναι 26. Ο καθένας από αυτούς τους διαφορετικούς τύπους έχει επιπλέον λειτουργίες ανάλογα της συνθήκη της εντολής και το τρόπο με τον οποίο έχει διευθυνσιοδότηθεί. Για την επιβεβαίωσης της σωστής λειτουργίας του επεξεργαστή χρησιμοποιήθηκε κώδικας assembly . Αυτός ο κώδικας παράχθηκε από κώδικα C++ μέσω του ARM gccSummarization: The goal of this thesis was to construct an ARM processor using the Bluspec System Verilog language(BSV). BSV has a fundamentally different approach to hardware design, comparing to other Hardware Description Languages. It is based on circuit generation rather than merely circuit description and is also based on atomic transactional rules instead of a globally synchronous view of the world. The processor belongs to the ARM7 family, it has a 3-stage pipeline, it uses a 32-bit architecture and is based on ARMv4 instruction set. In addition the processor supports all the operating modes. The modes of operation are User, Fast Interrupt(FIQ), Interrupt(IRQ), Supervisor, Abort, System and Undefined. The amount of different types of instructions that were implemented is 26. Each and every one of these types has additional functions depending on the condition codes and the addressing modes of the instruction. For the verification of the design, assembly code was used. This assembly code was produced by C++ code, through the ARM GCC

    Similar works