Computer architecture is the science and engineering of selecting and interconnecting hardware components to create a computer that meets functional, performance, power, and cost goals. This course examines in-depth the inner-workings of modern computer hardware design and the design tradeoffs at the hardware-software interface. The MIPS processor is employed as an example throughout the course. The topics include instruction set architecture, MIPS assembly programming, integer and floating-point arithmetic circuits, processor datapath and control design, pipelining, memory hierarchy, I/O and storage devices, multi-core processor design, etc. An integral component of this course will be a sequence of hands-on hardware laboratory assignments where you will step-by-step design and implement the single-cycle and pipelined 32-bit MIPS processors. The Intel (Altera) DE10-Standard FPGA development board, and Quartus and ModelSim will be used in the lab for you to design, build and test the processors.