Project Structure
Overview
This page provides a detailed description of the repository organization for the LimeSDR GW project. For a high-level overview of the project, please refer to the Introduction page.
Repository Layout
The repository is organized into several key directories, each serving a specific purpose:
/ (root)
├── boards/
│ ├── platforms/ <-- Board-specific I/O constraints and configuration files.
│ └── targets/ <-- Integration scripts that define the build process (instantiating LiteX cores, peripherals, CPU, and firmware).
├── docs/ <-- Documentation (design descriptions, build instructions, modification guidelines, etc.).
├── firmware/ <-- Firmware source code for the softcore CPU (drivers and application-specific logic).
├── gateware/ <-- FPGA hardware description files (Verilog/VHDL/LiteX) for custom logic and interconnects.
├── riscv_jtag_tunneled.tcl <-- TCL script for automating JTAG debugging.
├── README.md <-- Project overview and documentation links.
└── .gitignore <-- Files and directories ignored by version control.
Key Highlights
Boards Directory: - platforms/ contains the board-specific configuration files. - targets/ houses scripts that integrate hardware cores, peripheral components, the CPU, and firmware as part of the build process.
Documentation (docs/): Contains comprehensive guides covering gateware design, build procedures, and project modifications.
Firmware and Gateware: The firmware directory provides the software for the softcore CPU, while the gateware directory holds the RTL files (in Verilog, VHDL, or LiteX format) defining the FPGA logic.
Open Source Integration: The project leverages open source tools (such as LiteX, VexRiscv, OpenOCD, GHDL, Yosys, and nextpnr) to ensure a transparent and community-driven development flow.
Additional Files
- riscv_jtag_tunneled.tcl
A TCL script used for automating JTAG debugging with the RISC-V softcore. It streamlines tasks such as setting breakpoints and managing JTAG connections.
- README.md
Provides an introduction to the project, build instructions, and links to additional documentation.
- .gitignore
Lists files and directories that should be ignored by version control (e.g., temporary files and build outputs).