CPEN 311 (Digital System Design) is a course I completed at UBC. The course involved using an FPGA to design digital systems. It also covered relevant problems and limitations that appear with large digital systems. It was taught by Professor Nair Prashant. Some topics covered in this course include: verilog, FPGAs, combinational and sequential logic, types of memory, flip-flop timing, power, synchronization, and metastability. UBC Provides the following description of the course content:
Advanced combinational and sequential electronic system design. Hardware specification, modelling, and simulation using hardware description languages (HDLs) and CAD tools. Design with programmable logic including FPGA’s. Applications include complex state machines, microcontrollers, arithmetic circuits, and interface units.