You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
Introduction to the boolean operators AND, OR, and NOT. Creating equations with these operators and performing analysis with truth tables.
Lesson
Logic Gates
Implementing boolean logic using logic gates. Introduction to XOR operator. Analyzing circuit diagrams composed of logic gates.
Lab
Logic Gates
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
Introduction to Karnough maps. Using Karnough maps to analyze boolean expressions.
Lesson
LUTs And Mux
Introduction to Look Up Tables and Multiplexers. How these building blocks are used in circuit design.
Lesson
Assign Operators
Introduction to system verilog. How to code simple logic using assign statments.
Lesson
Always_comb Blocks
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
The user implements Dataflow system verilog in 4 functions in a simple project.
Arithmetic
Category
Notebook
Link
Description
Lesson
Binary and Hexadecimal
Indrocuction to hinary and hexadeximal number systems. Conversions between decimal, binary, and hexadecimal.
Lesson
Twos Complement
Introduction to twos complement. Representing positive and negative integers with twos complement.
Lesson
Addition and Subtraction
Introduction to arithmetic operations on binary numbers. Adding and subtract on signed and unsigned binary numbers.
Lab
Arithmetic
User implements an adder using multiple modules.
Seven Segment Display
Category
Notebook
Link
Description
Lesson
Seven Segment Display
Explanation of how a seven segment display works and how to decode a binary input to make each number.
Lab
Seven Segment Display
User implements a Binary to Seven Segment Hex Display converter
Stopwatch
Category
Notebook
Link
Description
Lesson
Flip Flops
Introduction to sequential logic. How flip flops are created from logic gates.
Lesson
Registers
How to create registers from flip flops. How to perfom analysis with timing diagrams
Lesson
Sequential Logic
Introduction to always_ff blocks. How to create registers and implement sequential logic in SystemVeilog.
Lab
Stopwatch
User implements a stopwatch using modules and hierarchical design.
State Machines
Category
Notebook
Link
Description
Lesson
State Machines
User learns what state machines are and common errors when constructing them
Lab
State Machines
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
How to use Colab notebooks
Tutorial
XDC
Demonstrates how the XDC file works and how to use it for a personal project.
Tutorial
Verilator Overview
Shows what Verilator is, what it does, and how to troubleshoot the test benches.
Tutorial
Verilog With VS Code
Demonstrates a better way to write verilog and how to set up VS Code
Tutorial
Bash File System
How to view and navigate files in a notebook
Tutorial
Simulation Tools
Teaches more about WaveDrom and VCD.
Tutorial
Creating a lesson
Teaches more about how to create a lesson on your own.
Tutorial
Creating a lab
Teaches more about how to create a lab on your own.