1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
<?xml version="1.0" encoding="UTF-8"?>
<!--
/*******************************************************************************
* Copyright (c) 2014 Elphel, Inc.
* This file is a part of VDT plug-in.
* VDT plug-in is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* VDT plug-in is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Additional permission under GNU GPL version 3 section 7:
* If you modify this Program, or any covered work, by linking or combining it
* with Eclipse or Eclipse plugins (or a modified version of those libraries),
* containing parts covered by the terms of EPL/CPL, the licensors of this
* Program grant you additional permission to convey the resulting work.
* {Corresponding Source for a non-source form of such a combination shall
* include the source code for the parts of Eclipse or Eclipse plugins used
* as well as that of the covered work.}
*******************************************************************************/
-->
<vdt-project>
<interface name="VivadoReportTimingSummaryInterface" extends="VivadoInterface">
<typedef name = "Cardinal_0_3">
<paramtype kind="number" lo="0" hi="3" format="%d" />
</typedef>
<typedef name="DelayTypeType">
<paramtype kind= "enum" base="String">
<item value="min" label="Analyse minimal times"/>
<item value="max" label="Analyze maximal times"/>
<item value="min_max" label="Analyze both minimal and maximal times"/>
</paramtype>
</typedef>
<typedef name="PathTypeType">
<paramtype kind= "enum" base="String">
<item value="end" label="Shows the endpoint of the path only, with calculated timing values."/>
<item value="summary" label="Displays the startpoints and endpoints with slack calculation."/>
<item value="short" label="Displays the startpoints and endpoints with calculated timing values."/>
<item value="full" label="Displays the full timing path, including startpoints, through points, and endpoints."/>
<item value="full_clock" label="Displays full clock paths in addition to the full timing path."/>
<item value="full_clock_expanded" label=" Displays full clock paths between a master clock and generated clocks in addition to the full_clock timing path."/>
</paramtype>
</typedef>
</interface>
<tool name="VivadoReportTimingSummary" label="Report Timimg Summary"
project="FPGA_project"
interface="VivadoReportTimingSummaryInterface"
package="FPGA_package"
shell="/bin/bash"
description="Report timing summary"
log-dir="VivadoLogDir"
state-dir="VivadoLocalDir"
disable="DisableVivadoTimingSummary"
abstract="true"
inherits="VivadoToolPrototype"
priority="0.4"
>
<action-menu>
<action label="Report timing summary" resource="" icon="clock_sum.png" />
</action-menu>
<parameter id="DisableVivadoTimingSummary" label="Disable" tooltip="Disable timing report"
default="false" type= "Boolean" format="None"/>
<parameter id="SkipTCL" label="Skip TCL commands" tooltip="Do not run pre-timing summary TCL commands"
default="false" type= "Boolean" format="None"/>
<!--
<parameter id="SkipTCL" label="Skip TCL commands" tooltip="Do not run pre-timing summary TCL commands"
default="false" type= "Boolean" format="None"/>
-->
<parameter id="PreTCL" label="Pre timing summary TCL commands" tooltip="TCL commands to run before timing summary"
type="Stringlist" format="ProgramSyntax" default="" omit=""
readonly="false" visible="true" />
<!-- report_timing_summary arguments -->
<parameter id="check_timing_verbose" label="Verbose summary" tooltip= "Output a verbose timing summary report."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="delay_type" label="Delay type" tooltip= "Delay types to analyze."
default="min_max" visible="true" omit="min_max" type="DelayTypeType" format="Dash"/>
<parameter id="no_detailed_paths" label="No detailed paths"
tooltip= "Do not report the full timing path for each clock or path group analyzed."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="setup" label="Check for setup violations" tooltip= "Same as -delay_type max."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="hold" label="Check for hold violations" tooltip= "Same as -delay_type min."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="max_paths" label="Number of paths per group"
tooltip= "Maximal number of paths to report per group."
default="1" visible="true" omit="1" type="Cardinal_1" format="Dash"/>
<parameter id="nworst" label="Number of paths" tooltip= "Maximal number of paths per endpoint."
default="1" visible="true" omit="1" type="Cardinal_1" format="Dash"/>
<parameter id="unique_pins" label="One path per unique set"
tooltip= "Only report timing paths through each unique set of pins, reporting one path per path group."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="path_type" label="Path type" tooltip= " Specify the path data to output in the timing summary report."
default="full_clock_expanded" visible="true" omit="full_clock_expanded" type="PathTypeType" format="Dash"/>
<parameter id="slack_lesser_than" label="Slack lesser than"
tooltip= " Report timing on paths with a calculated slack value less than the specified value."
default="" visible="true" omit="" type="String" format="Dash"/>
<parameter id="slack_greater_than" label="Slack greater than"
tooltip= " Report timing on paths with a calculated slack value greater than the specified value."
default="" visible="true" omit="" type="String" format="Dash"/>
<parameter id="report_unconstrained" label="Report unconstrained paths"
tooltip= "Report timing on unconstrained paths in the design."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="significant_digits" label="Number of digits" tooltip= "Number of significat digits ion the output."
default="3" visible="true" omit="3" type="Cardinal_0_3" format="Dash"/>
<parameter id="no_header" label="No header" tooltip= "Do not add header information to the report."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="rawfile" label="Result filename" tooltip= "Write report to the specified file."
default="%%ProjectName.timing_summary" visible="true" omit="" type="String" format="CopyValue"/>
<parameter id="append" label="Append to file" tooltip= "Append to the output file."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="return_string" label="Return string" tooltip= "Write result to TCL to be captured into variable."
default="" visible="true" omit="" type="String" format="Dash"/>
<parameter id="datasheet" label="Datasheet info" tooltip= "Generate datasheet information for the report."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="quiet" outid="quiet" label="Quiet" tooltip= "Ignore errors, return TCL_OK in any case"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="verbose" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<parameter id="MaxMsg"/>
<!-- Invisible (calculated) parameters -->
<!-- same value as %file, but will appear withou "-file" prefix -->
<parameter id="file" default="%VivadoRemoteDir/%rawfile" visible="false" omit="" type="String" format="Dash"/>
<input>
<group name="General">
"DisableVivadoTimingSummary"
"SkipTCL"
</group>
<group name="TCL commands">
"PreTCL"
</group>
<group name="Timing Summary">
"check_timing_verbose"
"delay_type"
"no_detailed_paths"
"setup"
"hold"
"max_paths"
"nworst"
"unique_pins"
"path_type"
"slack_lesser_than"
"slack_greater_than"
"report_unconstrained"
"significant_digits"
"no_header"
"rawfile"
"append"
"return_string"
"datasheet"
"---"
"quiet"
"verbose"
</group>
</input>
<output>
<line name="vivado_run_timing_summary"
dest="VivadoConsole"
mark="``"
sep=" "
prompt="@@FINISH@@"
failure="ERROR"
log=""
stdout="parser_Vivado">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
<!-- Run pre-bitstream TCL commands (if specified) -->
<if SkipTCL="false">
<if-not PreTCL="">
"%PreTCL\n"
</if-not>
<if PreTCL="">
"puts \"No TCL commands specified\"\n"'
</if>
</if>
<!-- Run routing -->
"report_timing_summary "
"%check_timing_verbose"
"%delay_type"
"%no_detailed_paths"
"%setup"
"%hold"
"%max_paths"
"%nworst"
"%unique_pins"
"%path_type"
"%slack_lesser_than"
"%slack_greater_than"
"%report_unconstrained"
"%significant_digits"
"%no_header"
"%file"
"%append"
"%return_string"
"%datasheet"
"%quiet"
"%verbose"
"\n"
"puts \"@@FINISH@@\"\n"
</line>
<line name="vivado_copy_after_timing_summary">
"-c"
"mkdir -p %VivadoLocalResultDir ;"
"rsync -avr -e ssh"
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/%VivadoRemoteDir/%rawfile"
"%VivadoLocalResultDir/"
</line>
</output>
</tool>
</vdt-project>