doc.tex (3067B)
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{Σχεδίαση Ψηφιακών Συστημάτων - Εργασία Θεωρίας (Μέρος 4)} 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 \subsection{\lstinline{ctrl.vhd}} 35 36 Το παρακάτω κύκλωμα υλοποιεί την μονάδα ελέγχου ενός επεξεργαστή. Η υλοποίηση 37 έγινε με βάση τον πίνακα από τις διαφάνειες του μαθήματος. Στο τέλος προτίμησα 38 την δομή \lstinline{with-select} για πιο ευανάγνωστο κώδικα. \\ 39 40 \lstinputlisting[language=VHDL]{../ctrl.vhd} 41 \pagebreak 42 43 \subsection{\lstinline{ctrl_tb.vhd}} 44 45 Testbench για την μονάδα ελέγχου. \\ 46 47 \lstinputlisting[language=VHDL]{../ctrl_tb.vhd} 48 \pagebreak 49 50 \subsection{\lstinline{sign_ext.vhd}} 51 52 Το παρακάτω κύκλωμα υλοποιεί την μονάδα επέκτασης προσήμου. Στην αρχιτεκτονική 53 της, ορίζουμε την έξοδο σε (\lstinline{XXXX} συμβολίζει την είσοδο instruction): 54 \begin{itemize} 55 \item \lstinline{0x0000XXXX} όταν το MSB του instruction ειναι 0. 56 \item \lstinline{0xffffXXXX} όταν το MSB είναι 1. \\ 57 \end{itemize} 58 59 \lstinputlisting[language=VHDL]{../sign_ext.vhd} 60 \pagebreak 61 62 \subsection{\lstinline{sign_ext_tb.vhd}} 63 64 Testbench για την μονάδα επέκτασης προσήμου. \\ 65 66 \lstinputlisting[language=VHDL]{../sign_ext_tb.vhd} 67 \pagebreak 68 69 \subsection{\lstinline{shl2.vhd}} 70 71 Το παρακάτω κύκλωμα υλοποιεί μία μονάδα αριστερής ολίσθησης κατά 2 bit. Η 72 αρχιτεκτονική της είναι πολύ απλή: παίρνουμε τα 30 τελευταία bit της εισόδου 73 και τους «κολλάμε» (concatenate) 2 μηδενικά bit στο τέλος. \\ 74 75 \lstinputlisting[language=VHDL]{../shl2.vhd} 76 \pagebreak 77 78 \subsection{\lstinline{shl2_tb.vhd}} 79 80 Testbench για την μονάδα αριστερής ολίσθησης κατά 2 bit. \\ 81 82 \lstinputlisting[language=VHDL]{../shl2_tb.vhd} 83 \pagebreak 84 85 \section{Εκτέλεση} 86 87 \subsection{\lstinline{ctrl_tb}} 88 \includegraphics[width=\textwidth]{res/ctrl.png} 89 90 \subsection{\lstinline{sign_ext_tb}} 91 \includegraphics[width=\textwidth]{res/sign_ext.png} 92 93 \subsection{\lstinline{shl2_tb}} 94 \includegraphics[width=\textwidth]{res/shl2.png} 95 96 \end{document}