Skip to content

Commit dc3e5dc

Browse files
authored
Merge pull request #2774 from AlexandreSinger/feature-incr-slack-issue
[STA] Fixed Incremental Slack Timing Analysis Verify Code
2 parents b3b3084 + e45f0cd commit dc3e5dc

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

vpr/src/timing/slack_evaluation.cpp

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -436,33 +436,28 @@ bool SetupSlackCrit::verify_pin_criticalities(const tatum::TimingGraph& timing_g
436436

437437
bool SetupSlackCrit::verify_max_req_worst_slack(const tatum::TimingGraph& timing_graph, const tatum::SetupTimingAnalyzer& analyzer) {
438438
auto calc_max_req = max_req_;
439-
auto calc_max_req_node = max_req_node_;
440-
441439
auto calc_worst_slack = worst_slack_;
442-
auto calc_worst_slack_node = worst_slack_node_;
443440

444441
recompute_max_req_and_worst_slack(timing_graph, analyzer);
445442

443+
// NOTE: We only check if the required time and the worst slack matches, we
444+
// do not check if the max required nodes or the worst slack nodes
445+
// match. This is because the incremental timing analysis and the non-
446+
// incremental timing analysis do not break ties deterministically,
447+
// so they may get different nodes; but they should always get the same
448+
// required time and worst slack. If the incremental timing analysis
449+
// gets different nodes, this will not change the results of the
450+
// timing analysis.
446451
if (calc_max_req != max_req_) {
447452
VPR_ERROR(VPR_ERROR_TIMING,
448453
"Calculated max required times does not match value calculated from scratch");
449454
return false;
450455
}
451-
if (calc_max_req_node != max_req_node_) {
452-
VPR_ERROR(VPR_ERROR_TIMING,
453-
"Calculated max required nodes does not match value calculated from scratch");
454-
return false;
455-
}
456456
if (calc_worst_slack != worst_slack_) {
457457
VPR_ERROR(VPR_ERROR_TIMING,
458458
"Calculated worst slack does not match value calculated from scratch");
459459
return false;
460460
}
461-
if (calc_worst_slack_node != worst_slack_node_) {
462-
VPR_ERROR(VPR_ERROR_TIMING,
463-
"Calculated worst slack nodes does not match value calculated from scratch");
464-
return false;
465-
}
466461

467462
return true;
468463
}

0 commit comments

Comments
 (0)