Synthesis and implementation results

Some synthesis and all implementation tools do provide reports about area/resource usage and estimated maximum clock frequency. However, most tools do print tables in logs. Parsing them is not complex (see YosysHQ/arachne-pnr#78), but it needs to be done ad-hoc. Some vendors, such as Vivado, do also report resource in text logs, but do allow to export them as *.xls (say CSV) files.

Edalize supports parsing/reading reports from some EDA tools:

  • edalize.reporting

  • edalize.vivado_reporting

  • edalize.quartus_reporting

  • edalize.ise_reporting

SymbiFlow/fpga-tool-perf does also support extracting results from Vivado, Yosys, Verilog to Routing and Nextpnr. Moreover, results are gathered in a Collab Dashboard: Symbiflow Dashboard GCS.

mattvenn/logLUTs allows parsing yosys and nextpnr logfiles to then plot LUT, flip-flop and maximum frequency stats.

Note

The fields in resource usage reports can be provided as absolute values or relative to the capacity of the device. Therefore, fields in resource reports of OSVR can and should match the ones in hdl/constraints: template/device.info.yml. Since both OSVR and the device template in hdl/constraints are subject to change yet, we should make them similar to existing solutions.