The Directory Structure

<BoxLambda Root Directory>
├── boxlambda_setup.sh
├── activate_env.sh
├── CMakeLists.txt
├── scripts/
│   └── <build system scripts>
├── sub/
│   └── <git submodules>
├── gw/
│   ├── CMakeLists.txt
│   ├── ip/
│   │   ├── dfx_controller/
│   │   │   ├── dfx_controller_0.xci
│   │   │   └── <other DFX Controller IP files>
│   │   └── <other Vivado IP>
│   ├── components/
│   │   ├── CMakeLists.txt
│   │   ├── wbuart32/
│   │   │   ├── rtl/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── lint.vlt
│   │   │   └── Bender.yml
│   │   └── <other gw component directories>
│   └── projects/
│       ├── CMakeLists.txt
│       ├── ddr_test/
│       │   ├── constr/
│       │   ├── rtl/
│       │   ├── sim/
│       │   ├── CMakeLists.txt
│       │   ├── lint.vlt
│       │   └── Bender.yml
│       └── <other gw project directories>
├── sw/
│   ├── CMakeLists.txt
│   ├── components/
│   │   ├── CMakeLists.txt
│   │   └── <sw component directories>
│   └── projects/
│       ├── CMakeLists.txt
│       ├── ddr_test/
│       │   ├── CMakeLists.txt
│       │   └── <ddr_test sources>
│       └── <other sw project directories>
├── tools/
│   └── <3rd party tools used by build system>
└── build/
    ├── sim-a7-100/
    │   └─── codegen/
    │        └── <code-generated files>
    └── arty-a7-100/
        └─── codegen/
             └── <code-generated files>

Note: The software tree (sw/) is separate from the gateware tree (gw/), and the build trees (build/) are distinct from both the software and gateware source trees.

The build trees are CMake build trees generated by the boxlambda_setup.sh script. This script creates the following build trees:

  • sim-a7-100: Arty-A7-100T simulation build tree.
  • arty-a7-100: Arty-A7-100T FPGA build tree.

The boxlambda_setup.sh script also populates the tools/ directory. It contains third-party tools used by the build system, such as Bender, the RISCV compiler, and OSS CAD Suite.

Important: The build trees and tools directory are not tracked under version control.