Field-programmable gate arrays (FPGAs) have become a major fabric for implementing digital systems, rivaling application-specific integrated circuits (ASICs) and microprocessors/microcontrollers, particularly in applications requiring special architectures or high data throughput, such as digital signal processing. Hardware description languages (HDLs) have become the dominant method for digital system design. This course will advance the student's understanding of FPGA design flow and ability to perform HDL-based design and implementation on FPGAs. Topics include: FPGA architectures, digital arithmetic, pipelining and parallelism, efficient design using register transfer level coding and IP cores, computer-aided tools for simulation, synthesis, and debugging. The course is graded on a series of laboratory exercises and a final project.
ENGS 31 and ENGS 62 or COSC 51