@@ -2611,6 +2611,9 @@ def _context(self):
2611
2611
"USE_PRI_DIST" ,
2612
2612
False ,
2613
2613
"0" if not self .enable_jitter_distribution else "1" ,
2614
+ "SID" ,
2615
+ False ,
2616
+ "0" ,
2614
2617
]
2615
2618
if self .enable_jitter_distribution and str (self .quantity_type ) == "3" :
2616
2619
sim_context = [
@@ -2655,6 +2658,9 @@ def _context(self):
2655
2658
"PID" ,
2656
2659
False ,
2657
2660
"0" ,
2661
+ "SID" ,
2662
+ False ,
2663
+ "0" ,
2658
2664
"PRIDIST" ,
2659
2665
False ,
2660
2666
"0" ,
@@ -2680,6 +2686,31 @@ def _context(self):
2680
2686
"SimValueContext:=" ,
2681
2687
sim_context ,
2682
2688
]
2689
+ if len (self .expressions ) == 1 :
2690
+ sid = 0
2691
+ pid = 0
2692
+ expr = self .expressions [0 ]
2693
+ category = "Eye"
2694
+ found = False
2695
+ while not found :
2696
+ available_quantities = self ._post .available_report_quantities (
2697
+ self .report_category , self .report_type , self .setup , category , arg
2698
+ )
2699
+ if len (available_quantities ) == 1 and available_quantities [0 ].lower () == expr .lower ():
2700
+ found = True
2701
+ else :
2702
+ sid += 1
2703
+ pid += 1
2704
+ arg [2 ][arg [2 ].index ("SID" ) + 2 ] = str (sid )
2705
+ arg [2 ][arg [2 ].index ("PID" ) + 2 ] = str (pid )
2706
+ # Limited maximum iterations to 1000 in While loop (Too many probes to analyze even in a single design)
2707
+ if sid > 1000 :
2708
+ self ._post .logger .error (
2709
+ "Failed to find right context for expression : {}" .format ("," .join (self .expressions ))
2710
+ )
2711
+ # arg[2][arg[2].index("SID") + 2] = "0"
2712
+ # arg[2][arg[2].index("PID") + 2] = "0"
2713
+ break
2683
2714
return arg
2684
2715
2685
2716
@property
@@ -3202,8 +3233,43 @@ def _context(self):
3202
3233
"QTID" ,
3203
3234
False ,
3204
3235
str (self .quantity_type ),
3236
+ "SCID" ,
3237
+ False ,
3238
+ "-1" ,
3239
+ "SID" ,
3240
+ False ,
3241
+ "0" ,
3205
3242
],
3206
3243
]
3244
+ if len (self .expressions ) == 1 :
3245
+ sid = 0
3246
+ pid = 0
3247
+ expr = self .expressions [0 ]
3248
+ category = "Wave"
3249
+ if self .report_category == "Statistical Eye" :
3250
+ category = "Eye"
3251
+ if self .report_category == "Eye Diagram" and self .report_type == "Rectangular Plot" :
3252
+ category = "Voltage"
3253
+ found = False
3254
+ while not found :
3255
+ available_quantities = self ._post .available_report_quantities (
3256
+ self .report_category , self .report_type , self .setup , category , arg
3257
+ )
3258
+ if len (available_quantities ) == 1 and available_quantities [0 ].lower () == expr .lower ():
3259
+ found = True
3260
+ else :
3261
+ sid += 1
3262
+ pid += 1
3263
+ arg [2 ][arg [2 ].index ("SID" ) + 2 ] = str (sid )
3264
+ arg [2 ][arg [2 ].index ("PID" ) + 2 ] = str (pid )
3265
+ # Limited maximum iterations to 1000 in While loop (Too many probes to analyze even in a single design)
3266
+ if sid > 1000 :
3267
+ self ._post .logger .error (
3268
+ "Failed to find right context for expression : {}" .format ("," .join (self .expressions ))
3269
+ )
3270
+ # arg[2][arg[2].index("SID") + 2] = "0"
3271
+ # arg[2][arg[2].index("PID") + 2] = "0"
3272
+ break
3207
3273
return arg
3208
3274
3209
3275
@property
0 commit comments