@@ -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