Course Contents: The design of digital systems from a hardware point of view, the implementation of functional and control units using programmable logic devices, introduction to VHDL, and its use in modeling and designing digital systems.
Course contents: The structure, design, analysis, and evaluation of computer processors and systems, the design of instruction sets, principles and techniques of parallelism at the data transfer (memory hierarchy), data processing (pipelines), and concurrent instruction execution.
Topics of this course are divided into three main categories: (a) theory of parallelism, (b) hardware technologies, and (c) parallel and scalable architectures. For example, principles of performance and scalability, processors and memory hierarchy, linear/nonlinear pipelining and superscalar techniques, and scalable multiprocessors and dataflow architectures are among the topics to be covered. The course focuses on emerging and heterogeneous architectures and their performance potential and programming models. For example, reconfigurable computing (RC), quantum computing (QC), and neuromorphic computing (NC) are covered in some details. Finally, students select published related research work for discussions and oral presentations.