Στην πτυχιακή αυτή εργασία παρουσιάζεται ο σχεδιασμός, η υλοποίηση και η αξιολόγηση του Ε80, ενός νέου επεξεργαστή 8-bit. Βασιζόμενος στις αρχές του Πάπερτ για τους μικρόκοσμους μάθησης, ο Ε80 σχεδιάστηκε εξ αρχής με γνώμονα την απλότητα και την παιδαγωγική αξία, στοχεύοντας να αποτελέσει ένα προσβάσιμο εκπαιδευτικό εργαλείο. Ο καθορισμός των αρχιτεκτονικών απαιτήσεων προέκυψε από τη συγκριτική αξιολόγηση των συνόλων εντολών απο εισαγωγικά πανεπιστημιακά μαθήματα Assembly, καθώς και απο άλλες εκπαιδευτικές CPU. Το σύνολο εντολών που προέκυψε, αν και λιτό, είναι λειτουργικά πλήρες, υποστηρίζοντας όλες τις απαραίτητες λειτουργίες για τη συγγραφή μη-τετριμμένων αλγορίθμων, συμπεριλαμβανομένης της διαχείρισης στοίβας και των υπορουτινών. Ο κώδικας VHDL σχεδιάστηκε χωρίς έτοιμες αριθμητικές βιβλιοθήκες, ώστε τα εσωτερικά υποσυστήματα του ελέγχου και της διόδου δεδομένων να είναι κατανοητά μέσω στοιχειώδους θεωρίας ψηφιακής σχεδίασης. Το έργο επεκτάθηκε στη δημιουργία ενός αυτόνομου οικοσυστήματος λογισμικού, το οποίο συμπεριλαμβάνει έναν συμβολομεταφραστή γραμμένο σε C και έτοιμα σενάρια για προσομοίωση και υλοποίηση σε υλικό. Η ανάπτυξη του οικοσυστήματος αξιοποίησε αρχές από τον Σχεδιασμό Λογισμικού: η συμβολική γλώσσα του Ε80 περιγράφηκε με ασυμφραστική γραμματική, η λεκτική και συντακτική ανάλυση καθοδηγήθηκε από τη θεωρία μεταγλωττιστών, ενώ για τη διαχείριση των εκδόσεων του κώδικα και των ρυθμίσεων ολόκληρου του έργου χρησιμοποιήθηκε το σύστημα Git. Η λειτουργικότητα και η στιβαρότητα του συστήματος επαληθεύτηκαν μέσω προσομοίωσης σε πολλαπλά περιβάλλοντα (ModelSim, GHDL) και επικυρώθηκαν με την επιτυχή υλοποίηση σε δύο διαφορετικές πλακέτες FPGA (DSD-i1, Tang Primer 25K), αποδεικνύοντας την μεταφερσιμότητα του σχεδιασμού. Ως μελέτη περίπτωσης, αναπτύχθηκε ένας μη-τετριμμένος αλγόριθμος διαίρεσης, καταδεικνύοντας πώς το οικοσύστημα του Ε80 μπορεί να λειτουργήσει ως ένα γόνιμο περιβάλλον για την ανακάλυψη ισχυρών ιδεών, όπως η αλγοριθμική βελτιστοποίηση και ο δομημένος προγραμματισμός. Τελικά, η εργασία αυτή επαληθεύει την θέση ότι το πρόγραμμα σπουδών Πληροφορικής του Ελληνικού Ανοικτού Πανεπιστημίου μπορεί να καθοδηγήσει την ανάπτυξη ενός υπολογιστή από το μηδέν.
This undergraduate thesis presents the design, implementation, and evaluation of the E80, a new 8-bit processor. Drawing upon Seymour Papert’s principles of learning microworlds, the E80 was designed from the ground up with simplicity and pedagogical value as core tenets, aiming to serve as an accessible educational tool. The architectural requirements were determined through a comparative analysis of the instruction sets from introductory university Assembly courses, as well as from other educational CPUs. The resulting instruction set, though concise, is functionally complete, supporting all necessary operations for writing non-trivial algorithms, including stack management and subroutines. The VHDL code was designed without high-level numeric libraries to ensure that the internal subsystems of the control unit and the datapath are understandable through elementary digital design theory. The project was extended to the creation of a self-contained software ecosystem, which includes an assembler written in C and ready-to-use scripts for simulation and hardware implementation. The ecosystem’s development utilized principles from Software Design: the assembly language of E80 was described with a context-free grammar, the lexical and syntactic analysis was guided by compiler theory, while the Git version control system was used to manage the entire project’s code and settings. The system’s functionality and robustness were verified via simulation across multiple environments (ModelSim, GHDL) and validated by successful implementation on two different FPGA platforms (DSD-i1, Tang Primer 25K), demonstrating the design’s portability. As a case study, a non-trivial division algorithm was developed, demonstrating how the E80 ecosystem can serve as a fertile ground for discovering powerful ideas, such as algorithmic optimization and structured programming. Ultimately, this work verifies the thesis that the curriculum of the Hellenic Open University’s Computer Science program can guide the development of a computer from scratch.
Έγγραφο πτυχιακής εργασίας: Σχεδιασμός και προγραμματισμός σε VHDL μιας νέας CPU για εκπαιδευτικούς σκοπούς Description: 145225_Panos_Stokas.pdf (pdf)
Book Reader Size: 7.4 MB
Attachments
Αρχεία υλοποίησης της πτυχιακής εργασίας: Κώδικας VHDL του επεξεργαστή E80, Κώδικας του Assembler σε C, Παραδείγματα και τυπολόγιο Assembly, Ρυθμίσεις και αρχεία δεσμίδας προσομοίωσης και σύνθεσης, Περιγραφή και χρώματα σύνταξης, και Πηγαία διαγράμματα Description: E80.zip (zip) Size: 180 kB
Σχεδιασμός και προγραμματισμός σε VHDL μιας νέας CPU για εκπαιδευτικούς σκοπούς - Identifier: 222454
Internal display of the 222454 entity interconnections (Node labels correspond to identifiers)