\documentclass{article} \usepackage{graphicx} \usepackage{setspace} \usepackage{listings} \usepackage{color} \usepackage{circuitikz} \usepackage{float} \definecolor{dkgreen}{rgb}{0,0.6,0} \definecolor{gray}{rgb}{0.5,0.5,0.5} \definecolor{mauve}{rgb}{0.58,0,0.82} \lstset{basicstyle=\small, keywordstyle=\color{mauve}, identifierstyle=\color{dkgreen}, stringstyle=\color{gray}, numbers=left } \title{ECE 456 - Problem Set 1} \date{2021-02-06} \author{David Lenfesty \\ lenfesty@ualberta.ca \and Phillip Kirwin \\ pkirwin@ualberta.ca} \setcounter{tocdepth}{2} % Show subsections \begin{document} \doublespacing \pagenumbering{gobble} \maketitle \newpage \singlespacing \pagenumbering{arabic} \section{Introduction} The purpose of this lab was to design control circuits according to the provided specifications, and then verify their operation using a simulation or an FPGA. In the first part of the lab, a series of boolean expressions were designed to implement a Multiplexer/Demultiplexer circuit, intended to route data from one of three radio recievers to one of three engineers, and signal which engineer was currently recieving data. First, Xilinx Vivado Software was used to produce a circuit to fulfill this objective. Then, using the same software, the circuit was simulated against input combinations which would be encountered during normal use, for verification. For the second part of the lab, an Access Control circuit was to be designed, allowing lab entry only if a valid ID was provided alongside a proper keypad combination. Otherwise, an alarm signal was to be sent out. The method of designing this circuit was very similar to the method in part one: Again using Xilinx Vivado, the circuit was designed and simulated against inputs to verify if the outputs matched those in the specification. However, for this section, the design was also uploaded to a physical FPGA board where various could be manually tested and validated. \section{Design Section} In order to design the desired systems, the Xilinx Vivado software was used to write VHDL code that described the operation of each circuit. \newpage \paragraph{MUX / DEMUX Circuit} To implement the multiplexing/demultiplexing system, the following circuit had to be written in VHDL. The VHDL architecture below was written to implement this circuit in hardware. \begin{lstlisting}[language=MATLAB] U0 = 0.25; kBT = 0.025; mu = 0; cal_E = 0.2; % Capacitance parameters alpha_G = 0.5; alpha_D = 0.5; alpha_S = 1 - alpha_G - alpha_D; % Energy grid in eV, from -1 eV to 1 eV NE = 501; E = linspace(-1,1,NE); dE = E(2) - E(1); % Gamma parameters, in eV gamma_1 = 0.005; gamma_2 = 0.005; gamma = gamma_1 + gamma_2; \end{lstlisting} \newpage \end{document}