A collection of VHDL labs, mini-projects, and reference code. This repo is meant to be practical: open a folder, run a simulation, learn a concept.
- Students taking a digital design / HDL course
- Self-learners practicing VHDL (combinational logic, sequential logic, testbenches, packages)
- Anyone who wants small, readable examples
- Install GHDL
- Optional: GTKWave for viewing waveforms
If your university/work uses it, you can run most designs there too.
If you’re new, start here:
- docs/getting-started.md
- docs/learning-path.md (the staircase)
- Install tools
- Ubuntu/Debian:
sudo apt-get install ghdl gtkwave
- Pick a project with a testbench Example:
Projects/alu-registerfile/containstb_*.vhd
- Simulate one project (example)
cd Projects/alu-registerfile
# Analyze
ghdl -a --std=08 pkg.vhd alu.vhd lab2_part2.vhd tb_lab2_part2.vhd
# Elaborate + run
ghdl -e --std=08 tb_lab2_part2
ghdl -r --std=08 tb_lab2_part2 --vcd=wave.vcd
# View
gtkwave wave.vcd- Projects/ — the best place to start (most consistent)
- LABS/ — lab exercises/submissions
- Codes to learn from/ — older material/exam solutions (less consistent)
- scripts/ — helper scripts
- docs/ — beginner docs and navigation help
- Most VHDL here targets VHDL-2008 (
--std=08). - If you add new code:
- Prefer clear entity/architecture names
- Include a short comment at the top: purpose + how to run
- If possible, include a
tb_*.vhdtestbench
PRs are welcome — even small fixes like typos, clearer READMEs, or adding a testbench. See CONTRIBUTING.md.
MIT (see LICENSE).