Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / man / man1 / stb.1
1 .TH STB 1 "06 November 2001" "AVERTEC" "AVERTEC CAD Tools"
2
3 .SH NAME
4 .PP
5 \fBstb\fP \- A stability analyzer that verify that setup and hold constraints are met.
6
7 .so man1/avt_origin.1
8
9 .SH SYNOPSIS
10 .PP
11 stb \fI[options] root_file \fP
12
13 .SH DESCRIPTION
14 .PP
15 \fBstb\fP is a stability analyzer, which performs calculation of setup times and
16 hold times in CMOS circuits, handling clock skew and enabling cycle sharing exploitation.
17 Constraints are calculated for flip-flops and latches, precharged points, commands, output
18 connectors and user-defined points.
19 \fBstb\fP enables multiple clock domains analysis, and handles flip-flop based designs as well
20 as latch-based multiphases designs.
21 \fBstb\fP generates comprehensive stability reports, enabling the visualization of all the stability
22 states for constrained points.
23
24 .SH OPTIONS
25 .PP
26 Options may appear in any order before or after the input filename.
27
28 .TP 10
29 \fI-dg\fP
30 To be used generally with the -da option for crosstalk analysis.
31 With this option, STB uses the timing database in DTX format (gate graph). In this case, stability intervals for auxiliary nodes are also calculated.
32
33 .TP 10
34 \fI-da\fP
35 Essential for crosstalk analysis.
36 With this option, all stability intervals are maintained, instead of merging them into a single interval for setup/hold verification.
37
38 .TP 10
39 \fI-w\fP
40 With this option, STB performs a worst case analysis. Any latches are initialized assuming zero exploitation of the transparency, and the system is relaxed to identify stable operation with minimum transparency.
41 The default is to initialize the latches assuming maximum transparency.
42
43 .TP 10
44 \fI-ff\fP
45 With this option, latches clocked on the same phase as the origin of their data input are assumed to be flip-flops.
46
47 .TP 10
48 \fI-lt\fP
49 With this option, latches clocked on the same phase as the origin of their data input are assumed to be transparent.
50
51 .TP 10
52 \fI-er\fP
53 With this option, latches clocked on the same phase as the origin of their data input are assumed to be errors.
54
55 .TP 10
56 \fI-setup\fP
57 With this option, only setup times are calculated.
58
59 .TP 10
60 \fI-hold\fP
61 With this option, only hold times are calculated.
62
63 .TP 10
64 \fI-tl\fP
65 With this option, only top level paths are taked into account for stability analysis.
66
67 .TP 10
68 \fI-fe\fP
69 With this option, all errors saved are redirected to a separate error file (suffix .ste).
70
71 .TP 10
72 \fI-s\fP
73 With this option, the execution is in silent mode. No errors or warnings are reported unless they are fatal.
74
75 .SH INPUT SPECIFICATION FORMAT
76 .PP
77 The input format is generate by \fBhitas(1)\fP. It contains the information on the shortest and longest path delays, this is the timing database of a particular circuit or block.
78
79 .TP 10
80 \fIinput_file.stb\fP
81 The ".stb" file is an ascii text file made up of five sections. Any blank lines are ignored and lines starting with the "#" character are considered to be comment.
82
83 .br
84 The five sections are:
85 .br
86 - General header
87 .br
88 - Clock Specifications
89 .br
90 - Clock domains
91 .br
92 - Equivalent clocks
93 .br
94 - Clock priorities
95 .br
96 - Conditioned clock states
97 .br
98 - Input connector stability specifications
99 .br
100 - Output connector constraints to verify
101 .br
102
103
104 As part of the general header any or all of the sections can be omitted. This sections must appear in the specified order.
105 The character '*' canbe used for any of the specified node names, matching any legal character string.
106 .br
107 For example:
108 .br
109 com* matches com1, com2, command, etc...
110
111 .TP 10
112 \fIThe general header\fP
113 The format of the header is as follows :
114
115 .br
116 name: <name>;
117 .br
118 version: 1.00;
119 .br
120 period: <integer>;
121 .br
122 setup: <integer>;
123 .br
124 hold: <integer>;
125 .br
126
127
128 The name is the name of the block to analyse, and is the the as the basename of the file.
129 The version "1.00" corresponds to the current file format version.The last three values are integers representing times in picoseconds.
130 The period is the default clock period for clocks whose period is not specified. The setup and hold are global margins of safety for the setup and hold verifications.
131 It is possible to omit the default period specification so long as each clock has a period associated with its definition or via the domain definition.
132
133 .TP 10
134 \fIClock specifications\fP
135 This section is used to define all the external clock signals.
136 .br
137 The syntax is as follows:
138
139 .br
140 clock connectors
141 .br
142 begin
143 .br
144 <ck1>:
145 .br
146 down (<min>:<max>);
147 .br
148 up (<min>:<max>);
149 .br
150 [period <integer>]
151 .br
152 | |
153 .br
154 | |
155 .br
156 <ckn>:
157 .br
158 down (<min>:<max>);
159 .br
160 up (<min>:<max>);
161 .br
162 [period <integer>]
163 .br
164 end;
165 .br
166
167
168 For each of the external clock connectors, four parameters must be given:
169 the earliest and latest instant of the falling edge, and the earliest and latest instant of the rising edge.
170 The order is irrelevant, the actual values themselves are used to order the clock phases within the period.
171
172 .TP 10
173 \fIClock domains specifications\fP
174 This section allows the user to assign clock connectors to clock domains. Timing checks are only performed on paths which do not cross domain boundaries. Each domain must be given a name, however the name itself is purely facultatif.
175 .br
176 The syntax is as follows :
177
178 .br
179 asynchronous clock groups
180 .br
181 begin
182 .br
183 <domain1>: <list_of_clocks>
184 .br
185 [period <integer>]
186 .br
187 | |
188 .br
189 | |
190 .br
191 <domainn>: <list_of_clocks>
192 .br
193 [period <integer>]
194 .br
195 end;
196 .br
197
198
199 Each domain contains the list of clock connectors which make up the domain. The period of the clocks can be specified here, since clocks in the same domain must have identical periods.
200
201 .TP 10
202 \fIEquivalent clocks\fP
203 This section allows the user to indicate that separate clock connectors should be treated as having identical phases.
204 .br
205 The syntax is as follows :
206
207 .br
208 equivalent clock groups
209 .br
210 begin
211 .br
212 <group1>: <list_of_clocks>
213 .br
214 | |
215 .br
216 | |
217 .br
218 <groupn>: <list_of_clocks>
219 .br
220 end;
221 .br
222
223
224 Each group contains the list of clock connectors which make up the equivalent group.
225
226 .TP 10
227 \fIMultiple clock priority\fP
228 This section allows the user to specify which clock should be considered as having the priority in the case of clocked signals (latches, flip-flops or precharges) which depend on multiple clocks.
229 Defining priority clocks is useful in the case4 of multiple clocks due to multiple operating modes (e.g. test mode or functional mode).
230 .br
231 The syntax is as follows :
232
233 .br
234 multiple clock priority
235 .br
236 begin
237 .br
238 <clocked_signal>: <clock_connector>
239 .br
240 | |
241 .br
242 | |
243 .br
244 <clocked_signal>: <clock_connector>
245 .br
246 end;
247 .br
248
249 Each line associates a clocked signal with its highest priority clock connector.
250
251 .SH THE OUTPUT STABILITY FILE FORMAT
252 .PP
253 \fBstb\fP generates the extension ".sto", and an extension ".str" for the timing report.
254
255 .TP 10
256 \fIoutput_file.sto\fP
257 The '.sto' file is an ascii text file made up of six distinct sections.
258 .br
259 The six sections are :
260 - General header
261 .br
262 - Clock Specifications
263 .br
264 - Conditioned clock states
265 .br
266 - Input connector stabilityintervals
267 .br
268 - Output connector stability intervals
269 .br
270 - Internal node stability intervals
271 .br
272
273 Apart from the general header, some of the sections may be omitted.
274
275 .TP 10
276 \fIInput connector stability intervals\fP
277 This section gives the stability intervals at the input terminals.
278 .br
279 The syntax is as follows :
280
281 .br
282 input connectors stability
283 .br
284 begin
285 .br
286 <input1> [from <phase>]:
287 .br
288 unstable: <value>
289 .br
290 stable: <value>
291 .br
292 | |
293 .br
294 | |
295 .br
296 <inputn> [from <phase>]:
297 .br
298 unstable: <value>
299 .br
300 stable: <value>
301 .br
302 end;
303 .br
304
305 That will be equivalent to the input connectors stability specification given in the '.stb' file except that every input connector is specified explicitly.
306 INOUT connectors are grouped with the output connectos in the subsequent section.
307
308
309 .TP 10
310 \fIOutput connector stability intervals\fP
311 This section specifies the stability intervals at the output terminals.
312 .br
313 The syntax is as follows:
314
315 .br
316 output connectors stability
317 begin
318 .br
319 <output1> [from <phase>]:
320 .br
321 unstable: <value>
322 .br
323 stable: <value>
324 .br
325 | |
326 .br
327 | |
328 .br
329 <outputn> [from <phase>]:
330 .br
331 unstable: <value>
332 .br
333 stable: <value>
334 .br
335 end;
336 .br
337
338 This section gives the stability intervals calculated for all internal nodes.
339 If the analysis is performed on the critical path graph (the default), then the set of internal nodes consists solely of latch data and command input and precharges. If the analysis is performed on the causality (gate) graph, then the set includes all auxiliary nodes.
340
341 .TP 10
342 \fIThe timing report\fP
343 Generated by \fBstb\fP, it has the suffix '.str' and a basename identical to that of the original circuit. It lists the setup and hold margins calculated for all critical circuit nodes.
344 .br
345 This includes :
346 .br
347 - Output connectors
348 .br
349 - Memory nodes
350 .br
351 - Conditioned memory commands
352 .br
353 - Precharged nodes
354 .br
355
356 All memory and conditioned command nodes are specified with the details of their local clock, since this is the reference for the setup and hold calculations.
357 A negative value for a setup or hold margin indicates a violation. In the event of a violation on a particular node, all data sources resulting in a violation are listed for that node, together with their individual setup and hold margins.
358
359 .SH ENVIRONMENT VARIABLES
360
361 .TP 10
362 \fISTB_TRACE_MODE\fP
363 If this variable is "yes" then STB displays all intermediary values of the stability intervals calculations on stdout.
364 Useful to see how the relaxation progresse
365
366 .TP 10
367 \fITAS_LANGUAGE\fP
368 Indicates the language used by TAS and STB, "english" by default or "french".
369
370 .TP 10
371 \fIMBK_WORK_LIB\fP
372 Indicates where STB has to read the input file and write the resulting files.
373 The default is the current directory.
374
375 .SH EXECUTION MODES
376
377 .PP
378 The STB command is used as follows :
379 stb \fI[options] root_file\fP
380
381 .PP
382 \fBstb\fP requires a complete timing database for the circuit to be analyzed (in DTX or TTX format, corresponding to the gate graph and the critical path graph respectively).
383 The default mode generates a timing report STR file containing the calculated setup and hold margins and an STO file containing the stability intervals calculated at the interface of the circuit analyzed.
384
385 .SH EXAMPLE STABILITY SPECIFICATION FILE
386 .PP
387 Since this file must be provided by the user, an example is shown here for clarification.
388
389 .br
390 name = mycircuit;
391 .br
392 version = 1.00;
393 .br
394 period = 180000;
395 .br
396 setuptime = 100;
397 .br
398 holdtime = 200;
399 .br
400
401 .br
402 clock connectors
403 .br
404 begin
405 .br
406 ck:
407 .br
408 up (90000:90100);
409 .br
410 down (10000:10100);
411 .br
412 end;
413 .br
414
415 .br
416 conditioned command states
417 .br
418 begin
419 .br
420 com1: up
421 .br
422 end;
423 .br
424
425 .br
426
427 .br
428 specify input connectors
429 .br
430 begin
431 .br
432 out1:
433 .br
434 unstable 1000 after ck rising;
435 .br
436 stable 3000 after ck rising;
437 .br
438 default:
439 .br
440 unstable 500 after ck rising;
441 .br
442 stable 4000 after ck rising;
443 .br
444 end;
445 .br
446
447 .br
448 verify output connectors
449 .br
450 begin
451 .br
452 out1:
453 .br
454 unstable 1000 after ck rising;
455 .br
456 stable 3000 after ck rising;
457 .br
458 default:
459 .br
460 unstable 500 after ck rising;
461 .br
462 stable 4000 after ck rising;
463 .br
464 end;
465 .br
466
467 .SH SEE ALSO
468 .PP
469 hitas(1), tas(1), inf(5), dtx(5), ttx(5)
470
471 .SH DIAGNOSTICS
472 .PP
473
474 .so man1/avt_bug_report.1