vtr-verilog-to-routing icon indicating copy to clipboard operation
vtr-verilog-to-routing copied to clipboard

Request: Add options for enabling machine readable summary output

Open lpawelcz opened this issue 3 years ago • 0 comments

Proposed Behaviour

It would be really nice to have options that would enable VPR to write machine readable output files with:

  • summary of block types usage
  • summary of timing parameters

Current Behaviour

This information is available in plain log output.

Block types usage:

Netlist num_nets: 8
Netlist num_blocks: 11
Netlist EMPTY blocks: 0.
Netlist PB-MULT blocks: 0.
Netlist PB-CLOCK blocks: 0.
Netlist PB-ASSP blocks: 0.
Netlist PB-SDIOMUX blocks: 0.
Netlist PB-SYN_GND blocks: 1.
Netlist PB-GMUX blocks: 0.
Netlist PB-LOGIC blocks: 4.
Netlist PB-RAM blocks: 0.
Netlist PB-SYN_VCC blocks: 1.
Netlist PB-BIDIR blocks: 5.
Netlist inputs pins: 1
Netlist output pins: 14

Timings:

Final critical path delay (least slack): 30.3589 ns, Fmax: 32.9393 MHz
Final setup Worst Negative Slack (sWNS): -30.3589 ns
Final setup Total Negative Slack (sTNS): -150.906 ns

Possible Solution

I would see this as two separate options, something like:

  • --save-block-types-usage <filename>
  • --save-timing-summary <filename>

Both of them should enable VPR to write JSON files with info:

  • Block usage: names of the block types and the number of blocks that were used to implement the design
  • Timings: Final setup timing parameters such as: max frequency, critical path delay, worst negative slack, total negative slack

Context

This information is used in SymbiFlow to perform tests that verify the block usage and timings against reference values in order to catch possible regression. Current way of getting the information from VPR requires parsing the log output in search of timing summary and block usage info. It would be better solution to let VPR prepare the output in easy to read format so that we won't rely on log output that could be changed in the future and cause failures in log parsers.

lpawelcz avatar Dec 29 '21 12:12 lpawelcz