RouteRTL Report Analyzer
The report-analyzer suite provides utilities for parsing and filtering
Vivado implementation reports. It extracts actionable insights from
verbose vendor output.
Tools
Control Set Analyzer
Parses control_set_detail.rpt to identify high-fanout control sets
and suggest optimization targets.
python filter_control_sets.py control_set_details.rpt \
--min_sets 10 --max_ratio 25 --sort merit --desc
Flags:
--min_sets N— Only show groups with ≥ N control sets--max_ratio N— Filter by maximum clock-enable ratio (%)--sort merit|ratio|count— Sort results by optimization priority--desc— Descending order
Generating the Input Report (Vivado TCL):
report_control_sets -verbose -sort_by {clk set} \ -hierarchical -hierarchical_depth 1 \ -cells [get_cells *sniffer_gather*] \ -file sniffer_gather_cs.rpt
Replication (register duplication) is bad for reducing control sets. See AMD UG949.
Utilization Filter
Extracts per-module resource utilization from hierarchical reports.
python utilization_filter.py \ ../../reports/utilization/hierarchical_utilization.rpt \ spisniffer
Pass a module name to get its specific utilization breakdown (LUTs, FFs, BRAMs, DSPs).
Integration
Both tools work on reports generated by rr impl or
rr npm-synth. The report files are typically found in
reports/control_sets/ and reports/utilization/.