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 * 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 void
Graph::setDelayCount(DcalcAPIndex ap_count) Graph::delayCountChanged()
{ {
if (ap_count != ap_count_) { ap_count_ = dcalcAnalysisPtCount();
// Discard any existing delays. // Discard any existing delays.
removePeriodCheckAnnotations(); removePeriodCheckAnnotations();
ap_count_ = ap_count; initSlews();
initSlews();
}
} }
void void

View File

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

View File

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