Skip to content

byuccl/digital_design_colab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Digital Design Colab Notebooks

This repository contains Google Colab pages for learning about and developing digital circuits. There are 3 types of notebooks.

Explanations about each type of Notebook can be found on the wiki.

Getting Started

If you're new to this repository and are looking for a place to start, this notebook explains what you need to know about Google Colabs in order to follow along with the rest of the notebooks. We recommend opening it in a new tab.

Notebook List

The notebooks are organized into 5 notebook sets.

Dataflow System Verilog
Category Notebook Link Description
Lesson Boolean Algebra colab Introduction to the boolean operators AND, OR, and NOT. Creating equations with these operators and performing analysis with truth tables.
Lesson Logic Gates colab Implementing boolean logic using logic gates. Introduction to XOR operator. Analyzing circuit diagrams composed of logic gates.
Lab Logic Gates colab This lab teaches how to use Gate Level logic (and, or, not) and how the Waveforms work. It doesn't require a board.
Lesson Karnaugh Maps colab Introduction to Karnough maps. Using Karnough maps to analyze boolean expressions.
Lesson LUTs And Mux colab Introduction to Look Up Tables and Multiplexers. How these building blocks are used in circuit design.
Lesson Assign Operators colab Introduction to system verilog. How to code simple logic using assign statments.
Lesson Always_comb Blocks colab Introduction to always_comb blocks in system verilog. How to use always comb blocks to implement complex logic in system verilog.
Lab Dataflow System Verilog colab The user implements Dataflow system verilog in 4 functions in a simple project.
Arithmetic
Category Notebook Link Description
Lesson Binary and Hexadecimal colab Indrocuction to hinary and hexadeximal number systems. Conversions between decimal, binary, and hexadecimal.
Lesson Twos Complement colab Introduction to twos complement. Representing positive and negative integers with twos complement.
Lesson Addition and Subtraction colab Introduction to arithmetic operations on binary numbers. Adding and subtract on signed and unsigned binary numbers.
Lab Arithmetic colab User implements an adder using multiple modules.
Seven Segment Display
Category Notebook Link Description
Lesson Seven Segment Display colab Explanation of how a seven segment display works and how to decode a binary input to make each number.
Lab Seven Segment Display colab User implements a Binary to Seven Segment Hex Display converter
Stopwatch
Category Notebook Link Description
Lesson Flip Flops colab Introduction to sequential logic. How flip flops are created from logic gates.
Lesson Registers colab How to create registers from flip flops. How to perfom analysis with timing diagrams
Lesson Sequential Logic colab Introduction to always_ff blocks. How to create registers and implement sequential logic in SystemVeilog.
Lab Stopwatch colab User implements a stopwatch using modules and hierarchical design.
State Machines
Category Notebook Link Description
Lesson State Machines colab User learns what state machines are and common errors when constructing them
Lab State Machines colab User learns how to design state machines and how to code them

Tutorials

There are also several tutorial notebooks that help users learn more about the open source tools being used, how to use our notebooks, and other helpful background information.

Tutorials
Category Notebook Link Description
Tutorial Notebook Functionality colab         How to use Colab notebooks
Tutorial XDC colab Demonstrates how the XDC file works and how to use it for a personal project.
Tutorial Verilator Overview colab Shows what Verilator is, what it does, and how to troubleshoot the test benches.
Tutorial Verilog With VS Code colab Demonstrates a better way to write verilog and how to set up VS Code
Tutorial Bash File System colab How to view and navigate files in a notebook
Tutorial Simulation Tools colab Teaches more about WaveDrom and VCD.
Tutorial Creating a lesson colab Teaches more about how to create a lesson on your own.
Tutorial Creating a lab colab Teaches more about how to create a lab on your own.

About

Digital Design Colab Examples

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published