CPEN 311: Digital Systems Design


[chip]Sept-Dec 2019

Instructor: Guy Lemieux

Lectures: TuesThurs 12:30 to 2:00 MCLD228 UBC Calendar link

Labs: MCLD348(Mon), MCLD358(Thu) UBC Calendar link

CPEN311 Canvas Site for handouts and grades

Piazza for discussion board


This is a course on the design of real digital systems. Digital systems lie at the heart of almost any electronic system including consumer devices, cell phones, signal processing systems, computers, biomedical devices, etc. In all of these systems, the "intelligence" of the system is implemented in digital logic. In this course we will talk about these digital systems, and will learn how to design them. More specifically, we'll talk about combinational and sequential logic, datapath design, synchronous and asynchronous circuits, embedded processors, and other related topics.

Much of the design we will do in this course is based on Verilog Hardware Description Languages. We will build on what you already learned in CPEN211 to show how to design and build larger and more complex systems.

To take this course, you must have experience with Verilog. If you only have experience with VHDL, you will have to do a little bit of extra work to learn Verilog, but don't worry it's pretty easy. (It's actually a bit easier to go from VHDL to Verilog than the other way.)

The labs will require a Terasic DE1-SoC FPGA board. You likely have one of these already from CPEN211. If not, contact the instructor for purchase information.


Registration Concerns: If you are having problems registering in the lecture, tutorial, or one of the labs, please email registration@ece.ubc.ca with the course name and number in the subject line. This will be faster and more reliable than emailing the instructor directly. If you have questions regarding pre-reqs or more details on what the course will cover, please contact the instructor.