slew limit check respect set_disable_timing [get_lib_ports]
This commit is contained in:
parent
7c02b7425a
commit
c8b2b65fe3
11
sdc/Sdc.cc
11
sdc/Sdc.cc
|
|
@ -6128,6 +6128,17 @@ Sdc::annotateDisables(bool annotate)
|
||||||
annotateGraphDisabled(pin, annotate);
|
annotateGraphDisabled(pin, annotate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!disabled_lib_ports_.empty()) {
|
||||||
|
VertexIterator vertex_iter(graph_);
|
||||||
|
while (vertex_iter.hasNext()) {
|
||||||
|
Vertex *vertex = vertex_iter.next();
|
||||||
|
Pin *pin = vertex->pin();
|
||||||
|
LibertyPort *port = network_->libertyPort(pin);
|
||||||
|
if (disabled_lib_ports_.hasKey(port))
|
||||||
|
annotateGraphDisabled(pin, annotate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Instance *top_inst = network_->topInstance();
|
Instance *top_inst = network_->topInstance();
|
||||||
PortSet::Iterator port_iter(disabled_ports_);
|
PortSet::Iterator port_iter(disabled_ports_);
|
||||||
while (port_iter.hasNext()) {
|
while (port_iter.hasNext()) {
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,8 @@ CheckSlewLimits::checkSlews1(const Pin *pin,
|
||||||
{
|
{
|
||||||
Vertex *vertex, *bidirect_drvr_vertex;
|
Vertex *vertex, *bidirect_drvr_vertex;
|
||||||
sta_->graph()->pinVertices(pin, vertex, bidirect_drvr_vertex);
|
sta_->graph()->pinVertices(pin, vertex, bidirect_drvr_vertex);
|
||||||
if (!vertex->isDisabledConstraint())
|
if (vertex
|
||||||
|
&& !vertex->isDisabledConstraint())
|
||||||
checkSlews1(vertex, corner, min_max,
|
checkSlews1(vertex, corner, min_max,
|
||||||
corner1, rf, slew, limit, slack);
|
corner1, rf, slew, limit, slack);
|
||||||
if (bidirect_drvr_vertex
|
if (bidirect_drvr_vertex
|
||||||
|
|
|
||||||
|
|
@ -5242,6 +5242,7 @@ find_cells_matching(const char *pattern,
|
||||||
} // Library methods
|
} // Library methods
|
||||||
|
|
||||||
%extend LibertyLibrary {
|
%extend LibertyLibrary {
|
||||||
|
const char *name() { return self->name(); }
|
||||||
|
|
||||||
LibertyCell *
|
LibertyCell *
|
||||||
find_liberty_cell(const char *name)
|
find_liberty_cell(const char *name)
|
||||||
|
|
@ -5326,6 +5327,7 @@ find_ports_matching(const char *pattern,
|
||||||
} // Cell methods
|
} // Cell methods
|
||||||
|
|
||||||
%extend LibertyCell {
|
%extend LibertyCell {
|
||||||
|
const char *name() { return self->name(); }
|
||||||
bool is_leaf() { return self->isLeaf(); }
|
bool is_leaf() { return self->isLeaf(); }
|
||||||
LibertyLibrary *liberty_library() { return self->libertyLibrary(); }
|
LibertyLibrary *liberty_library() { return self->libertyLibrary(); }
|
||||||
Cell *cell() { return reinterpret_cast<Cell*>(self); }
|
Cell *cell() { return reinterpret_cast<Cell*>(self); }
|
||||||
|
|
@ -5883,6 +5885,8 @@ is_clock()
|
||||||
return search->isClock(self);
|
return search->isClock(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_disabled_constraint() { return self->isDisabledConstraint(); }
|
||||||
|
|
||||||
} // Vertex methods
|
} // Vertex methods
|
||||||
|
|
||||||
%extend Edge {
|
%extend Edge {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue