doc.tex (3778B)
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{Σχεδίαση Ψηφιακών Συστημάτων - Εργασία Θεωρίας (Μέρος 1)} 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{mux2to1.vhd}} 35 36 Το παρακάτω κύκλωμα υλοποιεί έναν πολυπλέκτη 2-σε-1. Η υλοποίηση της 37 αρχιτεκτονικής του έχει ως εξής: αν η είσοδος \lstinline{s} έχει 38 τιμή 1, τότε θέτουμε στην έξοδο \lstinline{d} την τιμή της εισόδου 39 \lstinline{a}, ειδάλλως της \lstinline{b}. \\ 40 41 \lstinputlisting[language=VHDL]{../mux2to1.vhd} 42 \pagebreak 43 44 \subsection{\lstinline{dec2to4.vhd}} 45 46 Το παρακάτω κύκλωμα υλοποιεί έναν αποκωδικοποιητή 2-σε-4 -- δηλαδή έχουμε 47 είσοδο 2 bit και δημιουργούμε μία έξοδο 4 bit. Για την υλοποίηση του 48 χρησιμοποιούμε τις λογικές εξισώσεις του αποκωδικοποιητή: 49 \[D_0 = \overline{A_0 A_1}\] 50 \[D_1 = \overline{A_0} A_1\] 51 \[D_2 = A_0 \overline{A_1}\] 52 \[D_3 = A_0 A_1\] \\ 53 54 \lstinputlisting[language=VHDL]{../dec2to4.vhd} 55 \pagebreak 56 57 \subsection{\lstinline{mux2to1gen.vhd}} 58 59 Στο παρακάτω κύκλωμα ξαναϋλοποιούμε τον πολυπλέκτη 2-σε-1, απλώς αυτή 60 την φορά παραμετροποιούμε τις εισόδους και εξόδους του ώστε να τον 61 μετατρέψουμε σε πολλαπλό πολυπλέκτη. Στην προκειμένη περίπτωση η παράμετρος 62 \lstinline{sz} έχει την τιμή 4, οπότε έχουμε έναν τετραπλό πολυπλέκτη 63 2-σε-1. \\ 64 65 \lstinputlisting[language=VHDL]{../mux2to1gen.vhd} 66 \pagebreak 67 68 \subsection{\lstinline{mux2to1gen_tb.vhd}} 69 70 Στο παρακάτω κύκλωμα δοκιμάζουμε την λειτουργία του προηγούμενου κυκλώματος 71 με τη χρήση testbench. Η δημιουργία ενός testbench έχει ως εξής: 72 \begin{itemize} 73 \item Ορίζουμε ένα άδειο entity για το testbench. 74 \item Στην αρχικτεκτονική ορίζουμε την περιγραφή του κυκλώματος 75 που θέλουμε να δοκιμάσουμε ως component, στην προκειμένη 76 περίπτωση τον πολλαπλό πολυπλέκτη 2-σε-1. 77 \item Δημιουργούμε σήματα ίδιου τύπου για κάθε ένα από τα στοιχεία του 78 component. 79 \item Αντιστοιχούμε τα σήματα με τα πεδία του κυκλώματος (port map). 80 \item Δημιουργούμε process και δίνουμε τιμές στα σήματα. 81 \end{itemize} 82 83 \lstinputlisting[language=VHDL]{../mux2to1gen_tb.vhd} 84 \pagebreak 85 86 \section{Εκτέλεση} 87 88 Οι παρακάτω κυματομορφές αφορούνε το testbench για τον πολλαπλό πολυπλέκτη 2-σε-1: \\ 89 90 \includegraphics[width=\textwidth]{res/mux2to1gen.png} 91 92 \end{document}