Skip to content

Commit 3f9df22

Browse files
[Docs] Added Syntax Coverage Draft
Added documentation which describes the set of SDC syntax we are hoping to support for this test suite. This is a first draft and is subject to review.
1 parent 8d43039 commit 3f9df22

File tree

1 file changed

+167
-0
lines changed

1 file changed

+167
-0
lines changed

docs/syntax/README.md

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
# SDC Syntax
2+
3+
## Timing Constraints
4+
5+
### create_clock
6+
7+
```
8+
create_clock -period <float>
9+
(-name <string>)?
10+
(-waveform {<float> <float>})?
11+
(-add)?
12+
(<pin_list>)?
13+
```
14+
15+
### create_generated_clock
16+
17+
```
18+
create_generated_clock (-name <string>)?
19+
-source <pin>
20+
(-master_clock <clock>)?
21+
(-divide_by <float>)?
22+
(-multiply_by <float>)?
23+
(-add)?
24+
<pin_list>
25+
```
26+
27+
Note: There are other options. Should confirm if we want to support them.
28+
29+
### set_clock_groups
30+
31+
```
32+
set_clock_groups (-name <string>)?
33+
(-logically_exclusive)?
34+
(-physically_exclusive)?
35+
(-asynchronous)?
36+
(-allow_paths)?
37+
-group <clocks>
38+
```
39+
40+
Note: VTR supports a flag called "-exclusive". Should check if we want this or not.
41+
42+
### set_false_path
43+
44+
```
45+
set_false_path (-setup)?
46+
(-hold)?
47+
(-rise)?
48+
(-fall)?
49+
(-from <from_list>)?
50+
(-to <to_list>)?
51+
(-through <through_list>)?
52+
```
53+
54+
Note: There are some extra to discuss.
55+
56+
### set_max_delay
57+
58+
```
59+
set_max_delay (-rise)?
60+
(-fall)?
61+
(-from <from_list>)?
62+
(-to <to_list>)?
63+
(-through <through_list>)?
64+
<delay: float>
65+
```
66+
67+
### set_min_delay
68+
69+
```
70+
set_min_delay (-rise)?
71+
(-fall)?
72+
(-from <from_list>)?
73+
(-to <to_list>)?
74+
(-through <through_list>)?
75+
<delay: float>
76+
```
77+
78+
### set_multicycle_path
79+
80+
```
81+
set_multicycle_path (-setup)?
82+
(-hold)?
83+
(-rise)?
84+
(-fall)?
85+
(-from <from_list>)?
86+
(-to <to_list>)?
87+
<path_multiplier: float>
88+
```
89+
90+
### set_input_delay
91+
92+
```
93+
set_input_delay (-rise)?
94+
(-fall)?
95+
(-max)?
96+
(-min)?
97+
(-clock <clock>)?
98+
(-clock_fall)?
99+
<delay: float>
100+
<pin/port list>
101+
```
102+
103+
### set_output_delay
104+
105+
```
106+
set_output_delay (-rise)?
107+
(-fall)?
108+
(-max)?
109+
(-min)?
110+
(-clock <clock>)?
111+
(-clock_fall)?
112+
<delay: float>
113+
<pin/port list>
114+
```
115+
116+
### set_clock_uncertainty
117+
118+
```
119+
set_clock_uncertainty (-from <clock>)?
120+
(-to <clock>)?
121+
(-rise)?
122+
(-fall)?
123+
(-setup)?
124+
(-hold)?
125+
<uncertainty: float>
126+
<clocks, ports, pins>
127+
```
128+
129+
### set_clock_latency
130+
131+
```
132+
set_clock_latency (-source)?
133+
(-rise)?
134+
(-fall)?
135+
(-min)?
136+
(-max)?
137+
<latency: float>
138+
<clocks, ports, pins>
139+
```
140+
141+
Note: VTR has `-early` and `-late` flags. Should decide if we want to support.
142+
143+
### set_disable_timing
144+
145+
```
146+
set_disable_timing (-from <from_port>)?
147+
(-to <to_port>)?
148+
<cell, instance, port, pin>
149+
```
150+
151+
# Query
152+
153+
get_ports
154+
155+
get_clocks
156+
157+
get_pins
158+
159+
get_cells
160+
161+
get_nets
162+
163+
all_inputs
164+
165+
all_outputs
166+
167+
all_clocks

0 commit comments

Comments
 (0)