doc.tex (3335B)
1 \documentclass{article} 2 \usepackage[utf8]{inputenc} 3 \usepackage[greek,english]{babel} 4 \usepackage{alphabeta} 5 \usepackage{fancyhdr} 6 \usepackage{listings} 7 \usepackage{mathtools} 8 \usepackage{xcolor} 9 \usepackage{biblatex} 10 \usepackage[left=2cm,right=2cm]{geometry} 11 12 \lstset { 13 basicstyle=\ttfamily, 14 columns=fullflexible, 15 breaklines=true, 16 keepspaces=true 17 } 18 19 \title{Σχεδίαση Ψηφιακών Συστημάτων - Εργασία Θεωρίας (Μέρος 7)} 20 \author{Χρήστος Μαργιώλης} 21 \date{Ιούλιος 2020} 22 23 \begin{document} 24 25 \begin{titlepage} 26 \maketitle 27 \end{titlepage} 28 29 \renewcommand{\contentsname}{Περιεχόμενα} 30 \tableofcontents 31 32 \section{Κώδικας και τεκμηρίωση} 33 34 Για καλύτερη κατανόηση του κώδικα του MIPS, παραθέτω και τις υλοποιήσεις (ξανά) 35 όλων των κυκλωμάτων που χρησιμοποιήθηκαν. Μερικά από τα κυκλώματα υπέστησαν μικρές 36 τροποιήσεις. 37 38 \subsection{\lstinline{alu.vhd}} 39 40 Αριθμητική και λογική μονάδα. \\ 41 42 \lstinputlisting[language=VHDL]{../alu.vhd} 43 \pagebreak 44 45 \subsection{\lstinline{regfile_ext.vhd}} 46 47 Register file. \\ 48 49 \lstinputlisting[language=VHDL]{../regfile_ext.vhd} 50 \pagebreak 51 52 \subsection{\lstinline{instrmem.vhd}} 53 54 Μνήμη εντολών. \\ 55 56 \lstinputlisting[language=VHDL]{../instrmem.vhd} 57 \pagebreak 58 59 \subsection{\lstinline{ctrl.vhd}} 60 61 Μονάδα ελέγχου. \\ 62 63 \lstinputlisting[language=VHDL]{../ctrl.vhd} 64 \pagebreak 65 66 \subsection{\lstinline{alu_ctrl.vhd}} 67 68 Μονάδα ελέγχου ALU. \\ 69 70 \lstinputlisting[language=VHDL]{../alu_ctrl.vhd} 71 \pagebreak 72 73 \subsection{\lstinline{adder32.vhd}} 74 75 Αθροιστής 32-bit. \\ 76 77 \lstinputlisting[language=VHDL]{../adder32.vhd} 78 \pagebreak 79 80 \subsection{\lstinline{pc.vhd}} 81 82 Program counter. \\ 83 84 \lstinputlisting[language=VHDL]{../pc.vhd} 85 \pagebreak 86 87 \subsection{\lstinline{mips.vhd}} 88 89 'Οπως λέει η εκφώνηση, ο MIPS έχει μόνο δύο εισόδους: τον ορολογιακό παλμό και 90 το σήμα reset, και δεν έχει εξόδους. Στην αρχιτεκτονική του δηλώνουμε ως components 91 όλα τα παραπάνω κυκλώματα. 'Επειτα δημιουργούμε βοηθητικά σήματα για το πέρασμα 92 αποτελεσμάτων από το ένα κύκλωμα στο άλλο. \\ 93 94 \lstinputlisting[language=VHDL]{../mips.vhd} 95 \pagebreak 96 97 \subsection{\lstinline{mips_tb.vhd}} 98 99 Testbench για δοκιμή του MIPS. \\ 100 101 \lstinputlisting[language=VHDL]{../mips_tb.vhd} 102 \pagebreak 103 104 \section{Εκτέλεση} 105 106 \subsection{\lstinline{mips_tb}} 107 108 Στην εκφώνηση της άσκησης ζητήθηκε ο MIPS να έχει μόνο τον ορολογιακό παλμό 109 και το reset ως εισόδους, και όχι εξόδο. Παρ'όλα αυτά για την καλύτερη κατανόηση 110 του κυκλώματος, έβαλα επιπλέον σήματα στο κύκλωμα (δεν περιλαμβάνονται στον 111 κώδικα πια εφόσον δεν ζητούνται). \\ 112 113 \includegraphics[width=\textwidth]{res/mips.png} 114 115 \end{document}