• Stars
    star
    131
  • Rank 275,867 (Top 6 %)
  • Language Verilog
  • Created about 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Introduction to FPGA

Welcome to the demo code and solutions section of my Introduction to FPGA course! This repository houses all of the example code and solutions that you may use as references when working through the FPGA examples.

Introduction to FPGA YouTube Series

This course is hosted on YouTube that you may take for free. All you need to do is watch the videos and complete the challenge issued at the end of each video. I highly recommend you try each challenge before peeking at the solutions here.

The first video in the series is found here: Introduction to FPGA Part 1 - What is an FPGA? | Digi-Key Electronics

Written guides that explain the solutions can be found here:

  1. What is an FPGA?
  2. Toolchain Setup
  3. Getting Started with Verilog
  4. Clocks and Procedural Assignments
  5. Finite State Machine (FSM)
  6. Verilog Modules and Parameters
  7. Verilog Testbenches and Simulation
  8. Memory and Block RAM
  9. Phase-Locked Loop (PLL) and Glitches
  10. Metastability and FIFO
  11. RISC-V Softcore Processor
  12. RISC-V Peripheral

Directory Structure

Examples and solutions are housed in dirctories that correspond to each chapter or video number. For example, if you watch "Intro to FPGA Part 3 - Verilog Gate Logic," you should refer to the directory 03-verilog-gate-logic.

In each directory, you will find example projects. Demonstrations used in the video are listed as example-* and the solution to that part's challenge is listed as solution-*.

The only exception to this is the images directory, which is where I keep images for this repository.

License

All code in this repository, unless otherwise noted, is licensed under the Zero-Clause BSD / Free Public License 1.0.0 (0BSD).

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

More Repositories

1

introduction-to-rtos

C++
435
star
2

rpi-cm4-carrier-template

145
star
3

ei-keyword-spotting

C
144
star
4

computer-vision-with-embedded-machine-learning

Jupyter Notebook
106
star
5

tinyml-example-anomaly-detection

TinyML example showing how to do anomaly detection with Python and Arduino
Jupyter Notebook
102
star
6

rpi-cm4-base-carrier

HTML
92
star
7

tflite-speech-recognition

Demo for training a convolutional neural network to classify words and deploy the model to a Raspberry Pi using TensorFlow Lite.
Jupyter Notebook
87
star
8

rpi-pico-debugger-shoe

HTML
61
star
9

phaser-plugin-virtual-gamepad

Phaser plugin that provides joystick and button overlay for mobile games written in JavaScript. Playable demo at:
JavaScript
49
star
10

fail-badges

A community collection of image (svg) files to celebrate failure!
JavaScript
45
star
11

ai-nose

Jupyter Notebook
11
star
12

openmv-lego-brick-finder

Python
11
star
13

lora-weather

C++
10
star
14

MICS-4514_CO_and_NOx_Sensor_Breakout

Breakout board for the MiCS-4514 CO and NOx gas sensor.
C++
9
star
15

tflite-keyword-spotting

C
8
star
16

HoverPong

Classic Pong using a 32x32 LED matrix and two ZX Sensors from XYZ Interactive.
C++
7
star
17

Electronics_Workbench

Designs for an electronics workbench made of wood.
Ruby
7
star
18

555_badge

6
star
19

EdiBot

Demos for the Edison-based rover platform.
Eagle
6
star
20

CarHUD

Simple DIY heads-up display for a car.
Eagle
6
star
21

wifi_maximizer

Arduino
5
star
22

tensorflow-object-detection

Project that uses TensorFlow to train an object detection neural network that can be used with the Raspberry Pi.
Python
5
star
23

c-unit-test

Makefile
5
star
24

DIY_Breathalyzer

Read BAC with MQ-3 and display on 7-Segment Shield
Arduino
5
star
25

wenk-sao

C
5
star
26

perfect-toast-machine

Jupyter Notebook
4
star
27

github-action-docker-test

Dockerfile
4
star
28

Vortex

A continuous, infinite shooter Tempest clone. The goal is to get the high score, and that's it. There is no end.
JavaScript
4
star
29

pendulum-pid

Jupyter Notebook
4
star
30

kicon19-blinky

C++
4
star
31

ei-workshop-image-data-augmentation

Jupyter Notebook
4
star
32

mk-hallway-leds

C
3
star
33

Hardware_Mouse_Jiggler

A tech prank that jiggles your mouse pointer every 10-20 seconds.
C++
3
star
34

pico-deployment-demo

CMake
2
star
35

shawnhymel.github.io

CSS
2
star
36

MICS-2614_O3_Sensor_Breakout

Breakout board for the MiCS-2614 O3 sensor.
Arduino
2
star
37

face-tracking-camera-openmv

Python
2
star
38

course-embedded-ml-capstone

C
2
star
39

workshop-zephyr-device-driver

Python
1
star
40

myoken

Arduino project that buzzes whenever it's facing north.
C++
1
star
41

openmv-face-tracking

Python
1
star
42

neopixel-workshop

C++
1
star
43

Breadboard_Supply_5V

PCB design files for workshop.
Eagle
1
star
44

introduction-to-freecad

introduction-to-freecad
1
star
45

custom-speech-commands-dataset

1
star
46

SAMD11C_Mini_Breakout

1
star
47

reinforcement-learning-demos

Jupyter Notebook
1
star
48

M2X_CC3000

Example Arduino projects for communicating with AT&T's M2X service using a CC3000.
Arduino
1
star
49

xrp-object-detection

Python
1
star
50

google-coral-micro-object-detection

HTML
1
star
51

pendulum-rl

Jupyter Notebook
1
star
52

hopper-chat

Python
1
star
53

LearnScraper

JavaScript
1
star
54

serial-image-capture

C++
1
star
55

hex2c

Convert binary files and Python byte lists to C arrays
1
star
56

esp8266-temp-proto

C++
1
star
57

Getting_Started_With_RPi

Python code used in my "Getting Started With Raspberry Pi" video series.
Python
1
star
58

roshamglo_flashing_tool

Arduino
1
star
59

qwop-ai

Jupyter Notebook
1
star
60

Intar

Eagle
1
star
61

simple-recorderjs-projects

JavaScript
1
star
62

gaming-lap-desk

1
star