uni

University stuff
git clone git://git.margiolis.net/uni.git
Log | Files | Refs | README | LICENSE

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}