system builder

RapidRTL System Builder

The system_config_mapper.py utility parses a system configuration YAML and generates a VHDL package (system_config_pkg.vhd) with constants for hardware parameterization.

The primary goal is to dynamically define the ID and logical mapping of blocks (e.g., sniffers) defined in the YAML. This allows the software stack to discover and adapt to the specific hardware configuration (number of instances, pin mappings, etc.) at runtime.

Usage

python system_config_mapper.py config/config_myboard.yml --out system_config_pkg.vhd

Modifying the Configuration

When adding or editing devices in the config file, note that pins are mapped to the RTL positionally. For example, an SPI device must define SCLK, CS, MOSI, MISO in that exact order to ensure they are routed correctly to the SPI sniffer.

Sniffer Summary

The sniffer_summary.py script provides a report of used and free IDs and logical pins.

python sniffer_summary.py config/config_myboard.yml

Optional Flags:

  • --id-max N: Set maximum valid ID (default: 31)
  • --pin-max N: Set maximum logical pin (default: 63)