CS 256 Digital Design and Computer Architecture

This course covers the fundamentals of computer architecture from a bottom-up perspective, presenting the basic building blocks of digital systems, data path design, the design of processors, the concept of an instruction set architecture (ISA), and understanding how programs are compiled and executed. The course covers the practical discipline of digital systems design to enable students to design systems using the Verilog/SystemVerilog Hardware Description Language. Designs will be implemented on Field Programmable Gate Arrays (FPGAs) using modern industry-standard design tools. Students will also learn about how performance of digital systems generally, and processors specifically is evaluated and improved. By the end of this course, students will have a deep understanding of the hardware that underpins computing, enabling them to be more aware of the performance, efficiency, and capability of computing systems.