Learn how software on a PC communicates with programmable hardware over a serial link.
Study a minimal example of a hardware dot-product accelerator used in neural-network math.
Test the full hardware and software workflow using a simulator without owning the FPGA board.
Explore FPGA hardware and software co-design using Verilog, Python, and C++.
| yii2004/tinycodesign | agg23/openfpga-template | fguzman82/gategpt | |
|---|---|---|---|
| Stars | 20 | 6 | 117 |
| Language | Verilog | Verilog | Verilog |
| Last pushed | — | 2023-12-11 | — |
| Maintenance | — | Dormant | — |
| Setup difficulty | hard | moderate | hard |
| Complexity | 4/5 | 3/5 | — |
| Audience | researcher | developer | researcher |
Figures from each repo's GitHub metadata at analysis time.
Requires Vivado and, for real hardware testing, a DaVinci Pro 100T FPGA board.
TinyCoDesign is a teaching demo that shows how to connect a computer program to a piece of programmable hardware (an FPGA, a chip you can configure to do custom tasks). The specific board used is the DaVinci Pro 100T, which contains an Xilinx Artix-7 chip. The goal is deliberately small: show the complete loop from a software command on a PC all the way through to a hardware calculation and back, without the complexity of large AI chips or full-scale deep learning systems. The hardware side implements a scratchpad memory (a simple scratch space for storing numbers) and a dot-product accelerator, which multiplies two lists of small integers element-by-element and sums the results, a building block of neural-network math. Communication between the PC and the FPGA happens over UART, a basic serial protocol running at 115200 baud, which is the same standard used by many microcontrollers and USB-serial adapters. The software side has two runtimes: one in Python and one in C++, each able to talk to either the real board or a software simulator for testing without hardware. You would use this project if you are learning FPGA-based hardware acceleration, studying how software and programmable hardware cooperate on a task, or exploring how to send commands over a serial link and get results back. The code is written in Verilog for the hardware description and Python plus C++ for the host software. Vivado (Xilinx's design tool) is required to synthesize and program the hardware.
A minimal teaching demo showing how a PC program can send commands over a serial link to an FPGA that runs a small dot-product accelerator.
Mainly Verilog. The stack also includes Verilog, Python, C++.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.