Genclks:: deleteGenclkSrcPaths

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2025-09-08 16:08:26 -07:00
parent dcbaaf4c05
commit aa27e3372e
2 changed files with 17 additions and 8 deletions

View File

@ -352,11 +352,8 @@ Genclks::seedSrcPins(Clock *clk,
{ {
VertexSet src_vertices(graph_); VertexSet src_vertices(graph_);
clk->srcPinVertices(src_vertices, network_, graph_); clk->srcPinVertices(src_vertices, network_, graph_);
VertexSet::Iterator vertex_iter(src_vertices); for (Vertex *vertex : src_vertices)
while (vertex_iter.hasNext()) {
Vertex *vertex = vertex_iter.next();
iter.enqueue(vertex); iter.enqueue(vertex);
}
} }
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
@ -972,11 +969,22 @@ Genclks::recordSrcPaths(Clock *gclk)
network_->pathName(gclk_pin), network_->pathName(gclk_pin),
gclk->masterClk()->name()); gclk->masterClk()->name());
} }
// This can be narrowed to visited vertices. deleteGenclkSrcPaths(gclk);
VertexIterator vertex_iter(graph_); }
while (vertex_iter.hasNext()) {
Vertex *vertex = vertex_iter.next(); void
Genclks:: deleteGenclkSrcPaths(Clock *gclk)
{
GenclkInfo *genclk_info = genclkInfo(gclk);
GenClkInsertionSearchPred srch_pred(gclk, nullptr, genclk_info, this);
BfsFwdIterator insert_iter(BfsIndex::other, &srch_pred, this);
FilterPath *src_filter = genclk_info->srcFilter();
seedSrcPins(gclk, src_filter, insert_iter);
GenClkArrivalSearchPred eval_pred(gclk, this);
while (insert_iter.hasNext()) {
Vertex *vertex = insert_iter.next();
search_->deletePaths(vertex); search_->deletePaths(vertex);
insert_iter.enqueueAdjacentVertices(vertex, &srch_pred);
} }
} }

View File

@ -130,6 +130,7 @@ private:
VertexSet &path_vertices, VertexSet &path_vertices,
VertexSet &visited_vertices, VertexSet &visited_vertices,
EdgeSet *&fdbk_edges); EdgeSet *&fdbk_edges);
void deleteGenclkSrcPaths(Clock *gclk);
bool found_insertion_delays_; bool found_insertion_delays_;
GenclkSrcPathMap genclk_src_paths_; GenclkSrcPathMap genclk_src_paths_;