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.

#### Topics

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

#### Projects

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

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.

#### Topics

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

#### Projects

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

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.

#### Topics

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

#### Projects

## 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.

#### Topics

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

#### Projects

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

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.

#### Topics

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

#### Projects

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

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.

#### Topics

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

#### Projects

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

In this module, we will introduce the state machine methodology to formulate and design complex sequential digital systems.

## 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

## 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.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