Dependencies

This document is currently under development.

This section outlines the system requirements and dependencies for the OCAH project. To install the required packages, refer to Environment Setup.

1. System Requirements

  • Operating System: x86_64 or arm64 Linux, or macOS, with the prebuilt container. See Supported platforms for what each setup supports.

  • Python: Version 3.11 - 3.13 (3.14+ is not supported at this time)

  • CPU: Multi-core processor (8+ cores recommended for simulation and synthesis)

  • Memory: Minimum 16GB RAM recommended for full builds, 32GB recommended for large designs

    • Synthesis is especially memory-hungry. Smaller blocks may be able to be synthesised on 16GB, but larger blocks require more memory. Synthesising the full OCA Harness uses 48GB, so a machine running this would ideally have at least 64GB.

    • Containers on MacOS use additional memory as they run in a virtual machine. A MacOS host with 16GB RAM is more likely to run out of memory than an equivalent Linux host.

  • Storage: Minimum 50GB available disk space, SSD recommended for build performance

2. Software Dependencies

The project uses the following documentation tools. See Environment Setup for installation/setup options.

  • Asciidoctor: AsciiDoc documentation processing and PDF generation

    • asciidoctor-pdf Version 2.3.24+

    • asciidoctor-diagram — renders diagrams during the PDF builds; the Integrator and Programmer guides require it. PlantUML diagrams are drawn by its bundled jar, so a Java runtime is also needed. The HTML builds instead render diagrams through the asciidoctor-kroki Antora extension and need no Java.

  • Antora: Multi-repository documentation site generator for AsciiDoc - Version 3.1.10+

  • Python packages: Managed by the repo-level pyproject.toml and uv.lock; run make uv-sync or uv sync from the repository root.

    • PeakRDL: SystemRDL processing and RTL generation

  • RISC-V Toolchain: riscv64-unknown-elf-* with support for both 32-bit and 64-bit architectures — used to compile firmware and bootcode. Provided by the project container; a native install is optional.

    • riscv-unknown-elf-gcc - Version 15.3.0+ recommended

    • binutils-riscv-unknown-elf - Version 2.44+ recommended

    • picolibc-riscv64-unknown-elf - Version 1.8.12+ recommended

  • Verilator: Used for simulation workflows - Version 5.050+

  • Verible: Version v0.0-4148-g1ea007ec or newer

  • GnuMake: Version 4.4.1

  • Bender: Version 0.32.0 - Used to manage Vendor RTL and code

  • Slang: Version 9.1+

  • Yosys: Version 0.68+

    • SV-Elab: Version 2026-08-30+ (formerly yosys-slang)

  • GCC: Version 15.3.0+ recommended

  • CCache: Version 4.12.3+

  • CMake: Version 4.2.3+

  • The Virtual Platform for testing the SEP Firmware has the following additional dependencies, but installs and manages them itself unless configured otherwise:

    • SystemC: Version 3.0.2, built with C++20

    • Boost: Version 1.84.0

    • OPENSSL: Version 3.3.2

    • SystemC CCI: Version 1.0.2, built with the above SystemC and C++20

    • Whisper: RISC-V Simulator - Pinned Version Managed Automatically

3. License Requirements

  • Open Source Tools: No additional licenses required

  • Commercial Tools: Valid licenses for VCS, Design Compiler, etc are optional, these may be used for alternate workflows.

  • Dependencies: All External IPs used within the project are distributed under open-source licenses (Mostly Apache/MIT).