Skip to content

Commit 0acd071

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

File tree

1 file changed

+156
-0
lines changed

1 file changed

+156
-0
lines changed

doc/src/vpr/file_formats.rst

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

0 commit comments

Comments
 (0)