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)