This is an intermediate-level course that follows CS 2200. It is a project-based course in which you will learn the principles in pipelined processor design by actually implementing a fully functonal (but simple) pipelined processor using an FPGA (Field-Programmable Gate Array) board, together with a simple application that will run on this processor. In addition to learning about processor design, you will also learn abot the interacton between architecture (hardware functionality) and code generation (how machine-language programs can be produced for that architecture).