set sta_pocv_mode update delays/slews

Signed-off-by: James Cherry <cherry@CerezoBook.local>
This commit is contained in:
James Cherry 2026-06-10 10:38:15 -07:00
parent 424cb1dff1
commit 4249ab7b98
3 changed files with 11 additions and 22 deletions

View File

@ -384,13 +384,6 @@ Graph::makeWireEdge(const Pin *from_pin,
}
}
void
Graph::makeSceneAfter()
{
ap_count_ = dcalcAnalysisPtCount();
initSlews();
}
////////////////////////////////////////////////////////////////
Vertex *
@ -782,17 +775,13 @@ Graph::removeDelayAnnotated(Edge *edge)
////////////////////////////////////////////////////////////////
// This only gets called if the analysis type changes from single
// to bc_wc/ocv or visa versa.
void
Graph::setDelayCount(DcalcAPIndex ap_count)
Graph::delayCountChanged()
{
if (ap_count != ap_count_) {
// Discard any existing delays.
removePeriodCheckAnnotations();
ap_count_ = ap_count;
initSlews();
}
ap_count_ = dcalcAnalysisPtCount();
// Discard any existing delays.
removePeriodCheckAnnotations();
initSlews();
}
void

View File

@ -63,8 +63,7 @@ public:
void makeGraph();
~Graph() override;
// Number of arc delays and slews from sdf or delay calculation.
void setDelayCount(DcalcAPIndex ap_count);
void delayCountChanged();
size_t slewCount();
// Vertex functions.
@ -178,7 +177,6 @@ public:
// Remove all delay and slew annotations.
void removeDelaySlewAnnotations();
VertexSet &regClkVertices() { return reg_clk_vertices_; }
void makeSceneAfter();
static constexpr int vertex_level_bits = 24;
static constexpr int vertex_level_max = (1<<vertex_level_bits)-1;

View File

@ -805,7 +805,7 @@ Sta::setAnalysisType(AnalysisType analysis_type,
delaysInvalid();
search_->deletePathGroups();
if (graph_)
graph_->setDelayCount(dcalcAnalysisPtCount());
graph_->delayCountChanged();
}
}
@ -2311,6 +2311,8 @@ Sta::setPocvMode(PocvMode mode)
}
updateComponentsState();
delaysInvalid();
if (graph_)
graph_->delayCountChanged();
}
}
@ -2554,7 +2556,7 @@ Sta::makeScenes(const StringSeq &scene_names)
cmd_scene_ = scenes_[0];
updateComponentsState();
if (graph_)
graph_->makeSceneAfter();
graph_->delayCountChanged();
}
void
@ -2583,7 +2585,7 @@ Sta::makeScene(const std::string &name,
Scene *scene = makeScene(name, mode, parasitics_min, parasitics_max);
updateComponentsState();
if (graph_)
graph_->makeSceneAfter();
graph_->delayCountChanged();
updateSceneLiberty(scene, liberty_min_files, liberty_max_files);
cmd_scene_ = scene;
}