Skip to content

Commit f05da24

Browse files
committed
Changed rules.
- setup__ws: 5% of clock period -> 5% padding, to avoid setup__ws (5% of clock period) < setup__tns (20% padding) case. - hold__ws: 20% padding -> 5% padding, to make it consistent with setup. Signed-off-by: Jaehyun Kim <[email protected]>
1 parent ff7980a commit f05da24

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

flow/util/genRuleFile.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,14 @@ def gen_rule_file(
3535
print(f"[WARNING] No old rules file found {rules_file}")
3636
OLD_RULES = None
3737

38+
# Notes
39+
# - Apply tighter margin on timing__setup__ws than timing__setup__tns
40+
# because WNS is more important.
41+
# - Apply the consistent margins on timing__setup__* and timing__hold__*
42+
# - Using 'period' mode for timing__setup__ws is conceptually right.
43+
# But it can cause smaller timing__setup__ws than timing__setup__tns,
44+
# which does not make sense. So we use 'mode=padding' for setup__ws now.
45+
3846
# dict format
3947
# 'metric_name': {
4048
# 'padding': <float>, percentage of padding to use
@@ -91,7 +99,7 @@ def gen_rule_file(
9199
"compare": "<=",
92100
},
93101
"cts__timing__setup__ws": {
94-
"mode": "period",
102+
"mode": "padding",
95103
"padding": 5,
96104
"min_max": min,
97105
"min_max_direct": 0,
@@ -108,7 +116,7 @@ def gen_rule_file(
108116
},
109117
"cts__timing__hold__ws": {
110118
"mode": "padding",
111-
"padding": 20,
119+
"padding": 5,
112120
"min_max": min,
113121
"min_max_direct": 0,
114122
"round_value": False,
@@ -133,7 +141,7 @@ def gen_rule_file(
133141
"compare": "<=",
134142
},
135143
"globalroute__timing__setup__ws": {
136-
"mode": "period",
144+
"mode": "padding",
137145
"padding": 5,
138146
"min_max": min,
139147
"min_max_direct": 0,
@@ -150,7 +158,7 @@ def gen_rule_file(
150158
},
151159
"globalroute__timing__hold__ws": {
152160
"mode": "padding",
153-
"padding": 20,
161+
"padding": 5,
154162
"min_max": min,
155163
"min_max_direct": 0,
156164
"round_value": False,
@@ -191,7 +199,7 @@ def gen_rule_file(
191199
"compare": "<=",
192200
},
193201
"detailedroute__timing__setup__ws": {
194-
"mode": "period",
202+
"mode": "padding",
195203
"padding": 5,
196204
"min_max": min,
197205
"min_max_direct": 0,
@@ -208,7 +216,7 @@ def gen_rule_file(
208216
},
209217
"detailedroute__timing__hold__ws": {
210218
"mode": "padding",
211-
"padding": 20,
219+
"padding": 5,
212220
"min_max": min,
213221
"min_max_direct": 0,
214222
"round_value": False,
@@ -224,7 +232,7 @@ def gen_rule_file(
224232
},
225233
# finish
226234
"finish__timing__setup__ws": {
227-
"mode": "period",
235+
"mode": "padding",
228236
"padding": 5,
229237
"min_max": min,
230238
"min_max_direct": 0,
@@ -241,7 +249,7 @@ def gen_rule_file(
241249
},
242250
"finish__timing__hold__ws": {
243251
"mode": "padding",
244-
"padding": 20,
252+
"padding": 5,
245253
"min_max": min,
246254
"min_max_direct": 0,
247255
"round_value": False,

0 commit comments

Comments
 (0)