sdc:isConstrained for clk latency pin
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
ef924bb0b5
commit
3b61817f90
2054
doc/OpenSTA.fodt
2054
doc/OpenSTA.fodt
File diff suppressed because it is too large
Load Diff
|
|
@ -149,7 +149,7 @@ using ExceptionPathPtHash = std::map<size_t, ExceptionPathSet>;
|
|||
using ClockLatencies = std::set<ClockLatency*, ClockLatencyLess>;
|
||||
using EdgeClockLatencyMap = std::map<PinPair, ClockLatency*, PinPairLess>;
|
||||
using PinClockUncertaintyMap = std::map<const Pin*, ClockUncertainties*>;
|
||||
using InterClockUncertaintySet = std::set<InterClockUncertainty*, InterClockUncertaintyLess>;
|
||||
using InterClockUncertaintySet=std::set<InterClockUncertainty*,InterClockUncertaintyLess>;
|
||||
using ClockGatingCheckMap = std::map<const Clock*, ClockGatingCheck*>;
|
||||
using InstanceClockGatingCheckMap = std::map<const Instance*, ClockGatingCheck*>;
|
||||
using PinClockGatingCheckMap = std::map<const Pin*, ClockGatingCheck*>;
|
||||
|
|
@ -1306,6 +1306,7 @@ protected:
|
|||
bool clk_hpin_disables_valid_;
|
||||
PinSet propagated_clk_pins_;
|
||||
ClockLatencies clk_latencies_;
|
||||
PinSet clk_latency_pins_;
|
||||
EdgeClockLatencyMap edge_clk_latency_map_;
|
||||
ClockInsertions clk_insertions_;
|
||||
PinClockUncertaintyMap pin_clk_uncertainty_map_;
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ Sdc::Sdc(Mode *mode,
|
|||
clk_hpin_disables_(network_),
|
||||
propagated_clk_pins_(network_),
|
||||
clk_latencies_(network_),
|
||||
clk_latency_pins_(network_),
|
||||
edge_clk_latency_map_(network_),
|
||||
clk_insertions_(network_),
|
||||
clk_sense_map_(network_),
|
||||
|
|
@ -169,6 +170,7 @@ Sdc::clear()
|
|||
clock_pin_map_.clear();
|
||||
clock_leaf_pin_map_.clear();
|
||||
clk_latencies_.clear();
|
||||
clk_latency_pins_.clear();
|
||||
edge_clk_latency_map_.clear();
|
||||
clk_insertions_.clear();
|
||||
|
||||
|
|
@ -1508,6 +1510,8 @@ Sdc::setClockLatency(Clock *clk,
|
|||
}
|
||||
}
|
||||
latency->setDelay(rf, min_max, delay);
|
||||
if (pin)
|
||||
clk_latency_pins_.insert(pin);
|
||||
|
||||
// set_clock_latency removes set_propagated_clock on the same object.
|
||||
if (clk && pin == nullptr)
|
||||
|
|
@ -1580,8 +1584,7 @@ Sdc::deleteClockLatenciesReferencing(Clock *clk)
|
|||
bool
|
||||
Sdc::hasClockLatency(const Pin *pin) const
|
||||
{
|
||||
ClockLatency probe(nullptr, pin);
|
||||
return clk_latencies_.contains(&probe);
|
||||
return clk_latency_pins_.contains(pin);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -1654,6 +1654,14 @@ set_propagate_all_clocks(bool prop)
|
|||
Sta::sta()->setPropagateAllClocks(prop);
|
||||
}
|
||||
|
||||
bool
|
||||
pin_is_constrained(const Pin *pin)
|
||||
{
|
||||
Sta *sta = Sta::sta();
|
||||
Sdc *sdc = sta->cmdSdc();
|
||||
return sdc->isConstrained(pin);
|
||||
}
|
||||
|
||||
%} // inline
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
|
|
|||
Loading…
Reference in New Issue