Skip to content

Commit ab27f1a

Browse files
committed
docs: vpr: add description of summary file formats
Signed-off-by: Pawel Czarnecki <[email protected]>
1 parent e380586 commit ab27f1a

File tree

1 file changed

+131
-0
lines changed

1 file changed

+131
-0
lines changed

doc/src/vpr/file_formats.rst

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,3 +1046,134 @@ An example of what a generated routing resource graph file would look like is sh
10461046
</rr_edges>
10471047
</rr_graph>
10481048
.. _end:
1049+
1050+
Block types usage summary (.txt .xml or .json)
1051+
-----------------------------------------
1052+
1053+
Block types usage summary is a file written in human or machine readable format.
1054+
It describes types and the amount of FPGA resources that are used by implemented design.
1055+
This file is generated after the placement step with option: `--write_block_usage <filename>`.
1056+
It can be saved as a human readable text file or in XML or JSON file to provide
1057+
machine readable output. Format is selected based on the extension of the `<filename>`.
1058+
1059+
The summary consists of 4 parameters:
1060+
1061+
* `nets number` - the amount of created nets
1062+
* `blocks number` - sum of blocks used to implement the design
1063+
* `input pins` - sum of input pins
1064+
* `output pins` - sum of output pins
1065+
1066+
and a list of `block types` followed by the number of specific block types that
1067+
are used in the design.
1068+
1069+
TXT
1070+
~~~
1071+
1072+
Presents the information in human readable format, the same as in log output:
1073+
1074+
.. code-block:: none
1075+
1076+
Netlist num_nets: <int>
1077+
Netlist num_blocks: <int>
1078+
Netlist <block_type_name_0> blocks: <int>
1079+
Netlist <block_type_name_1> blocks: <int>
1080+
...
1081+
Netlist <block_type_name_n> blocks: <int>
1082+
Netlist inputs pins: <int>
1083+
Netlist output pins: <int>
1084+
1085+
JSON
1086+
~~~~
1087+
1088+
One of two available machine readable formats. The information is written as follows:
1089+
1090+
.. code-block:: none
1091+
1092+
{
1093+
"num_nets": "<int>",
1094+
"num_blocks": "<int>",
1095+
"input_pins": "<int>",
1096+
"output_pins": "<int>",
1097+
"blocks": {
1098+
"<block_type_name_0>": <int>,
1099+
"<block_type_name_1>": <int>,
1100+
...
1101+
"<block_type_name_n>": <int>
1102+
}
1103+
}
1104+
1105+
XML
1106+
~~~
1107+
1108+
Second machine readable format. The information is written as follows:
1109+
1110+
.. code-block:: none
1111+
1112+
<?xml version="1.0" encoding="UTF-8"?>
1113+
<block_usage_report>
1114+
<nets num="<int>"></nets>
1115+
<blocks num="<int>">
1116+
<block type="<block_type_name_0>" usage="<int>"></block>
1117+
<block type="<block_type_name_1>" usage="<int>"></block>
1118+
...
1119+
<block type="<block_type_name_n>" usage="<int>"></block>
1120+
</blocks>
1121+
<input_pins num="<int>"></input_pins>
1122+
<output_pins num="<int>"></output_pins>
1123+
</block_usage_report>
1124+
1125+
Timing summary (.txt .xml or .json)
1126+
-----------------------------------------
1127+
1128+
Timing summary is a file written in human or machine readable format.
1129+
It describes final timing parameters of design implemented for the FPGA device.
1130+
This file is generated after the routing step with option: `--write_timing_summary <filename>`.
1131+
It can be saved as a human readable text file or in XML or JSON file to provide
1132+
machine readable output. Format is selected based on the extension of the `<filename>`.
1133+
1134+
The summary consists of 4 parameters:
1135+
1136+
* `Critical Path Delay (cpd) [ns]`
1137+
* `Max Circuit Frequency (Fmax) [MHz]`
1138+
* `setup Worst Negative Slack (sWNS) [ns]`
1139+
* `setup Total Negative Slack (sTNS) [ns]`
1140+
1141+
TXT
1142+
~~~
1143+
1144+
Presents the information in human readable format, the same as in log output:
1145+
1146+
.. code-block:: none
1147+
1148+
Final critical path delay (least slack): <double> ns, Fmax: <double> MHz
1149+
Final setup Worst Negative Slack (sWNS): <double> ns
1150+
Final setup Total Negative Slack (sTNS): <double> ns
1151+
1152+
JSON
1153+
~~~~
1154+
1155+
One of two available machine readable formats. The information is written as follows:
1156+
1157+
.. code-block:: none
1158+
{
1159+
"cpd": <double>,
1160+
"fmax": <double>,
1161+
"swns": <double>,
1162+
"stns": <double>
1163+
1164+
}
1165+
1166+
XML
1167+
~~~
1168+
1169+
Second machine readable format. The information is written as follows:
1170+
1171+
.. code-block:: none
1172+
1173+
<?xml version="1.0" encoding="UTF-8"?>
1174+
<timing_summary_report>
1175+
<cpd value="<double>" unit="ns" description="Final critical path delay"></nets>
1176+
<fmax value="<double>" unit="MHz" description="Max circuit frequency"></fmax>
1177+
<swns value="<double>" unit="ns" description="setup Worst Negative Slack (sWNS)"></swns>
1178+
<stns value="<double>" unit="ns" description="setup Total Negative Slack (sTNS)"></stns>
1179+
</block_usage_report>

0 commit comments

Comments
 (0)