This repository contains the code and resources for the "APB2 Blinky" project, which focuses on developing APB2 peripherals for the Gowin Tangnano 4K FPGA dev board. It serves as a practical guide and experience sharing post on developing custom peripherals and burning the FPGA device from Linux using the openFPGALoader tool.
fpga/
: This directory contains the Verilog code for the APB2 peripheral that controls the onboard LED.mcu/
: This directory contains the MCU firmware code written in C++ for interacting with the APB2 peripheral.
The project utilizes various development tools, including:
- Verilog-HDL/SystemVerilog/Bluespec SystemVerilog Extension for VS Code: Used for writing the Verilog code for the custom peripherals.
- Iverilog: Used for verification and simulation of the designs.
- Gowin EDA: Utilized for synthesis, placement, routing, and IP generation.
- Gowin GMD IDE: Employed for developing MCU firmware code.
- openFPGALoader: Used for burning the FPGA device.
To get started with the "APB2 Blinky" project and develop APB2 peripherals for the Gowin Tangnano 4K FPGA dev board, follow these steps:
- Clone this repository to your local machine.
- Review the Verilog code in the
fpga/
directory for the APB2 peripheral implementation. - Explore the MCU firmware code in the
mcu/
directory for interacting with the APB2 peripheral. - Refer to the Reddit post for a detailed guide and insights into the development process.
- Install the necessary development tools mentioned above.
- Set up the environment for Gowin EDA, Gowin GMD IDE, and openFPGALoader following the provided documentation and resources.
Contributions to the "APB2 Blinky" project are welcome! If you have any improvements or additional features to propose, please feel free to submit a pull request.
This project is licensed under the MIT License.