This course presents the design skills and theoretical knowledge needed to design, simulate, and build combinational logic circuits and basic sequential circuits. An important component of this is learning to use the relevant CAD tools and design technologies used in industry today. The design projects are intended to give you ample exposure to these tools, so that on your successful completion of the course you will be able to design and implement a representative collection of combinational and sequential circuits using the same tools as are prevalent in industry.

This website (https://cpeg202.github.io/) is based on the site https://www.realdigital.org/course/digitallogic and is released under the CC BY-SA 4.0. More information about this license can be found at https://creativecommons.org/licenses/by-sa/4.0/

Module 1. Introduction to Basic Electronics

In this module, we will introduce you to some fundamentals about electric system. On the theoretical side, you will learn a few basic concepts, such as voltage, current, power. We will also take some time to explain to you the difference between digital and analog circuits, and how a physical circuit board ends up in your hand. On the practical side, you will gain the first experience to use some chip called Field Programmable Gate Array (FPGA), which, with the professional tools, can implement the digital circuit you design. After the tutorial, you will also face some challenges.

Module 2. Introduction to Digital Logic

Module 3. Combinational Logic: Logic Minimization

A lot of functions we want to implement in digital systems are fairly complex. They can be consisted of a lot of logic operators. In this module, we will introduce the logic minimization technology that implement any complex logic function with minimum amount of logic gates/operators. You can also test your minimized logic circuits on your Blackboard.

Module 4. Combinational Logic: Basic Cells

In this module, we will introduce a few basic combinational logic cells that commonly used in digital circuit design, such as multiplexer, decoder, encoder, shifter, etc. You will also learn how to describe them in Verilog, both structurally and behaviorally.

Module 5. Combinational and Sequential Logic: Delay, Timing Issues, and Memory

In reality, any logic circuit takes some amount of time to produce results. In this module, we will take a look at time delay in combinational and sequential circuits, and how that affects the behavior and performance of digital logic circuits. You will also simulate some combinational and sequential circuits with delays to verify if a circuit operates correctly or not. Additionally, you will be introduced to latches and flip-flops - the basic memory cells that provide a reference of time in digital systems.

Module 6. Combinational and Sequential Logic: Arithmetic Circuits

In this module, you will be introduced to several combinational circuits that perform arithmetic operations, such as addition, subtraction, and multiplication. Additionally, combination of arithmetic and sequential logic will be covered.

Module 7. Sequential Logic: State Machines