Hands-on FPGA Development using Python & Digital Logic Design
Built on the PYNQ-Z2 (Zynq-7000 SoC)
This repository showcases practical FPGA experiments performed using the PYNQ-Z2 development board. The project focuses on building a strong foundation in digital logic design through real-time hardware interaction.
Unlike purely theoretical learning, this project demonstrates how inputs from physical switches are processed and visualized using LEDs on an FPGA board.
- ⚡ Real-time hardware interaction using FPGA
- 🧠 Strong foundation in digital logic design
- 🐍 Python-based control using PYNQ framework
- 🔌 Hands-on experience with embedded systems
- 🛠️ Beginner-friendly yet conceptually strong implementation
- AND, OR, NOT, NAND, NOR, XOR gates
- Truth table-based implementation
- Binary → Gray Code
- Gray → Binary
- Half Adder
- Half Subtractor
- 2:1 Multiplexer (MUX)
| Category | Technology Used |
|---|---|
| Hardware | PYNQ-Z2 FPGA Board |
| Architecture | Xilinx Zynq-7000 SoC |
| Programming | Python (PYNQ) |
| Interface | Jupyter Notebook |
Switch Inputs → Logic Processing → LED Outputs
while True:
read_inputs()
apply_logic()
update_leds()FPGA-Workshop/
│
├── Day 1/ # Basic Logic Gates
├── Day 2/ # Code Conversion
├── Day 3/ # Adders & Multiplexer
├── Day 4/ # Practice / Extended Work
└── README.md- Connect PYNQ-Z2 board to your system
- Power using USB
- Open Jupyter Notebook (PYNQ environment)
- Upload or open project files
- Execute cells
- Use switches as input
- Observe LED outputs
- Programs run continuously using
while True - Use Ctrl + C to stop execution
- Ensure stable power supply to the board
- Practical understanding of FPGA-based systems
- Implementation of combinational circuits
- Exposure to hardware-software co-design
- Confidence in working with embedded platforms
- Full Adder & Full Subtractor
- Sequential circuits (Flip-Flops, Counters)
- Verilog/VHDL implementations
- Hardware acceleration projects
- Integration with sensors or IoT
Contributions are welcome! Feel free to fork this repository and improve implementations or add new experiments.
If you found this project helpful:
- ⭐ Star this repository
- 🍴 Fork it
- 📢 Share with others
💡 Learning by building is the best way to master hardware design.

