Skip to content

Commit aca55c9

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

File tree

1 file changed

+155
-0
lines changed

1 file changed

+155
-0
lines changed

doc/src/vpr/file_formats.rst

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,3 +1046,158 @@ 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+
:caption: TXT format of block types usage summary
1076+
:linenos:
1077+
1078+
Netlist num_nets: <int>
1079+
Netlist num_blocks: <int>
1080+
Netlist <block_type_name_0> blocks: <int>
1081+
Netlist <block_type_name_1> blocks: <int>
1082+
...
1083+
Netlist <block_type_name_n> blocks: <int>
1084+
Netlist inputs pins: <int>
1085+
Netlist output pins: <int>
1086+
1087+
.. _end:
1088+
1089+
JSON
1090+
~~~~
1091+
1092+
One of two available machine readable formats. The information is written as follows:
1093+
1094+
.. code-block:: json
1095+
:caption: JSON format of block types usage summary
1096+
:linenos:
1097+
1098+
{
1099+
"num_nets": "<int>",
1100+
"num_blocks": "<int>",
1101+
"input_pins": "<int>",
1102+
"output_pins": "<int>",
1103+
"blocks": {
1104+
"<block_type_name_0>": <int>,
1105+
"<block_type_name_1>": <int>,
1106+
...
1107+
"<block_type_name_n>": <int>
1108+
}
1109+
}
1110+
1111+
.. _end:
1112+
1113+
XML
1114+
~~~
1115+
1116+
Second machine readable format. The information is written as follows:
1117+
1118+
.. code-block:: xml
1119+
:caption: XML format of block types usage summary
1120+
:linenos:
1121+
1122+
<?xml version="1.0" encoding="UTF-8"?>
1123+
<block_usage_report>
1124+
<nets num="<int>"></nets>
1125+
<blocks num="<int>">
1126+
<block type="<block_type_name_0>" usage="<int>"></block>
1127+
<block type="<block_type_name_1>" usage="<int>"></block>
1128+
...
1129+
<block type="<block_type_name_n>" usage="<int>"></block>
1130+
</blocks>
1131+
<input_pins num="<int>"></input_pins>
1132+
<output_pins num="<int>"></output_pins>
1133+
</block_usage_report>
1134+
1135+
.. _end:
1136+
1137+
Timing summary (.txt .xml or .json)
1138+
-----------------------------------------
1139+
1140+
Timing summary is a file written in human or machine readable format.
1141+
It describes final timing parameters of design implemented for the FPGA device.
1142+
This file is generated after the routing step with option: `--write_timing_summary <filename>`.
1143+
It can be saved as a human readable text file or in XML or JSON file to provide
1144+
machine readable output. Format is selected based on the extension of the `<filename>`.
1145+
1146+
The summary consists of 4 parameters:
1147+
1148+
* `Critical Path Delay (cpd) [ns]`
1149+
* `Max Circuit Frequency (Fmax) [MHz]`
1150+
* `setup Worst Negative Slack (sWNS) [ns]`
1151+
* `setup Total Negative Slack (sTNS) [ns]`
1152+
1153+
TXT
1154+
~~~
1155+
1156+
Presents the information in human readable format, the same as in log output:
1157+
1158+
.. code-block:: none
1159+
:caption: TXT format of timing summary
1160+
:linenos:
1161+
1162+
Final critical path delay (least slack): <double> ns, Fmax: <double> MHz
1163+
Final setup Worst Negative Slack (sWNS): <double> ns
1164+
Final setup Total Negative Slack (sTNS): <double> ns
1165+
1166+
.. _end:
1167+
1168+
JSON
1169+
~~~~
1170+
1171+
One of two available machine readable formats. The information is written as follows:
1172+
1173+
.. code-block:: json
1174+
:caption: JSON format of timing summary
1175+
:linenos:
1176+
1177+
{
1178+
"cpd": <double>,
1179+
"fmax": <double>,
1180+
"swns": <double>,
1181+
"stns": <double>
1182+
}
1183+
1184+
.. _end:
1185+
1186+
XML
1187+
~~~
1188+
1189+
Second machine readable format. The information is written as follows:
1190+
1191+
.. code-block:: xml
1192+
:caption: XML format of timing summary
1193+
:linenos:
1194+
1195+
<?xml version="1.0" encoding="UTF-8"?>
1196+
<timing_summary_report>
1197+
<cpd value="<double>" unit="ns" description="Final critical path delay"></nets>
1198+
<fmax value="<double>" unit="MHz" description="Max circuit frequency"></fmax>
1199+
<swns value="<double>" unit="ns" description="setup Worst Negative Slack (sWNS)"></swns>
1200+
<stns value="<double>" unit="ns" description="setup Total Negative Slack (sTNS)"></stns>
1201+
</block_usage_report>
1202+
1203+
.. _end:

0 commit comments

Comments
 (0)