doc.tex (2759B)
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{Σχεδίαση Ψηφιακών Συστημάτων - Εργασία Θεωρίας (Μέρος 2)} 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{alu.vhd}} 35 36 Το παρακάτω κύκλωμα υλοποιεί την αριθμητική και λογική μονάδα ενός επεξεργαστή. 37 Οι πράξεις που μπορεί να εκτελέσει το κύκλωμα ειναι τα λογικά AND και OR, και η 38 αριθμητική πρόσθεση και αφαίρεση. Στην αρχιτεκτονική ορίζουμε ένα process το 39 οποίο είναι «ευαίσθητο» στο σήμα της μονάδας ελέγχου ALU. 'Οταν εισέλθουμε 40 στο process, εκτελούμε την κατάλληλη πράξη ανάλογα με το σήμα που δώθηκε. Για 41 την αποθήκευση του αποτελέσματος χρησιμοποιούμε ένα ενδιάμεσο σήμα \lstinline{sig}. 42 Τέλος, ορίζουμε στο \lstinline{alu_zero} την τιμή 1 όταν το αποτέλεσμα είναι 43 0000, ειδάλλως 0, και επίσης θέτουμε το απότελεσμα στην έξοδο \lstinline{alu_out}. 44 45 Μία αλλαγή που έκανα στο κύκλωμα είναι να θέσω μία generic τιμή για να μπορεί 46 η ALU να μετατραπεί εύκολα από 4 bit σε 32 bit, ωστέ να αποφευχθεί η αντιγραφή 47 κώδικα. 48 49 \lstinputlisting[language=VHDL]{../alu.vhd} 50 \pagebreak 51 52 \subsection{\lstinline{alu_tb.vhd}} 53 54 Στο παρακάτω testbench δοκιμάζουμε την λειτουργία της ALU. Η λογική για την 55 δημιουργία του testbench είναι ίδια με αυτή που εξηγήθηκε στο μέρος 0. Οι τιμές 56 για την δοκιμή δώθηκαν από την εκφώνηση της άσκησης. 57 58 \lstinputlisting[language=VHDL]{../alu_tb.vhd} 59 \pagebreak 60 61 \section{Εκτέλεση} 62 63 \includegraphics[width=\textwidth]{res/alu.png} 64 65 \end{document}