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/
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.
Topic 1.1 - A First Look At Circuits - Introduction to Circuits
Topic 1.2 - Electric Charges, Voltage, and Current - Fundamentals of Electricity
Topic 1.3 - Resistance and Ohm's Law - Fundamentals of Electricity
Topic 1.4 - Physical Circuits vs. Model Circuits - Introduction to Circuits
Topic 1.5 - Electronic Components - Introduction to Circuits
Topic 1.6 - Verilog HDL: The First Example - Module, I/O Ports, Bus and Assign
Topic 1.7 - Basic Digital I/O: Slide Switch, Push Button and LED - Introduction to Circuits
Topic 1.8 - Printed Circuit Boards (PCBs) - Introduction to Ciruits
Topic 1.9 - Connectors - Introduction to Circuits
In this module, you will learn basic logic operators, and the corresponding circuits that implement those logic. They serve as the fundamental building blocks for any digital systems that we use in our every-day life. We will also introduce some Verilog language syntax for you to implement those circuits using logic operators. You will be challenged to design a 4-way light switch using logic gates and describe it using Verilog.
Topic 2.1 - Overview of Digital Circuits - Introduction to Digital Circuits
Topic 2.2 - Zeros and Ones - Information Representation in Digital Systems
Topic 2.3 - Basic Logic Functions and Truth Tables - Introduction to Digital Logic Fundamentals
Topic 2.4 - Transistors ad Switches - Building Blocks of Digital Circuits
Topic 2.5 - Introduction to CMOS Technology - Building Blocks of Digital Circuits
Topic 2.6 - Introduction to Combinational Logic Circuits - Building Blocks of Digital Circuits
Topic 2.8 - XOR and XNOR - Introduction to Logic
Fundamentals
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.
Topic 3.1 - Introduction to Logic Minimization - Logic Minimization
Topic 3.2 - Boolean Algebra - Logic Minimization
Topic 3.3 - Introduction to K-Maps - Logic Minimization
Topic 3.4 - K-Maps with Don't Cares - Logic Minimization
Topic 3.5 - K-Maps with Entered Variables - Logic Minimization
Topic 3.6 - K-Maps with Multiple Outputs - Logic Minimization
Topic 3.7 - Computer-Based Logic Minimum - Logic Minimization
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.
Topic 4.1 - Multiplexers - Basic Combinational Circuit Blocks
Topic 4.2 - Binary Decoders, De-Multiplexers - Basic Combinational Circuit Blocks
Topic 4.3 - Priority Encoder - Basic Combinational Circuit Blocks
Topic 4.4 - Shifters - Basic Combinational Circuit Blocks
Topic 4.5 - Seven-Segment Display - Basic Combinational Circuit Blocks
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.
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.
Topic 6.1 - Comparator - Arithmetic Circuit: Bit-Sliced Design
Topic 6.2 - Adders - Arithmetic Circuits
Topic 6.3 - Subtractors - Arithmetic Circuits
Topic 6.4 - Negative Binary Numbers - Arithmetic Circuits: Signed Magnitude and 2's Compliment
Topic 6.5 - Multipliers - Arithmetic Circuits
Topic 6.6 - Arithmetic Logic Units (ALU) - Arithmetic Circuits
In this module, we will introduce the state machine methodology to formulate and design complex sequential digital systems.