Digital Logic

Takes you onto a journey into digital circuit design with simple but interesting projects. You will be able to communicate with your display monitor and make a stop watch by the end of this course.

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.

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

Module 4. Combinational Logic: Basic Cells

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

Module 7. Sequential Logic: State Machines

Module 1. Introduction to Basic Electronics

Project 1.1 ‐ Getting Started with FPGA - Introduction to FPGA Development

Project 1.2 ‐ Control LEDs with Switches - Introduction to Verilog

Project 1.3 ‐ Use Push Buttons to Control a Seven-Segment Display - Introduction to Verilog

Module 2. Introduction to Digital Logic

Project 2.1 ‐ Guess the Logic - Logic Minimization

Project 2.2 ‐ Control the Light with Multiple Switches - Logic Function and Combinational Circuits

Module 3. Combinational Logic: Logic Minimization

Project 3.1 ‐ Majority of Five - Logic Minimization

Project 3.2 ‐ Temperature Indicator - Logic Minimization

Module 4. Combinational Logic: Basic Cells

Project 4.1 ‐ Multiplexer, Decoder, Encoder, and Shifter - Basic Combinational Blocks

Project 4.2 ‐ Mux and Demux: A Simple Transmission System - Basic Combinational Blocks

Project 4.3 ‐ Seven Segment Display Decoder - Basic Combinational Blocks

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

Project 5.1 ‐ Delay and Glitch - Timing Analysis of Combinational Circuits

Project 5.2 ‐ SR-Latches and D-Latch - Basic Cells of Sequential Circuits

Project 5.3 ‐ Clock Divider - Basic Cells of Sequential Circuits

Project 5.4 ‐ Shift Register - Basic Cells of Sequential Circuits

Module 6. Combinational and Sequential Logic: Arithmetic Circuits

Project 6.1 ‐ Comparators, Adders, and Multipliers - Arithmetic Circuits

Project 6.2 ‐ Counters and Clock Dividers - When Arithmetic Circuits Meet Sequential Circuits

Project 6.3 ‐ VGA Controller - When Arithmetic Circuits meet Sequential Circuits

Module 7. Sequential Logic: State Machines

Project 7.1 ‐ Serial Adders - Introduction to State Machines

Project 7.2 ‐ Stopwatch - State Machines

Module 1. Introduction to Basic Electronics

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

Topic 1.10 ‐ Integrated Circuits - Introduction to Circuits

Topic 1.11 ‐ Verilog HDL: Overview - Background and History

Module 2. Introduction to Digital Logic

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.7 ‐ Product of Summation (POS) and Summation of Product (SOP) - Introduction to Logic Fundamentals

Topic 2.8 ‐ XOR and XNOR - Introduction to Logic Fundamentals

Module 3. Combinational Logic: Logic Minimization

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

Module 4. Combinational Logic: Basic Cells

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

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

Topic 5.1 ‐ Glitches - Timing Issues of Digital Circuits

Topic 5.2 ‐ Delay of Combinational Circuits - Timing Issues of Digital Circuits

Topic 5.3 ‐ SR-Latch and D-Latch - Memory Circuits

Topic 5.4 ‐ Flip-Flops - Memory Circuits

Topic 5.5 ‐ Cascade Clock Dividers - Memory Circuits

Module 6. Combinational and Sequential Logic: Arithmetic Circuits

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

Module 7. Sequential Logic: State Machines

Topic 7.1 ‐ Introduction to State Machines - Sequential Circuit Design

Topic 7.2 ‐ State Diagrams - Design of Sequential Circuits

Topic 7.3 ‐ Structural Implementation of State Diagram - Sequential Circuit Design