report max_fanout, max_cap do not report disabled pins
This commit is contained in:
parent
bb9060160d
commit
68bd76e1a8
|
|
@ -249,8 +249,7 @@ CheckCapacitanceLimits::pinCapacitanceLimitViolations(Instance *inst,
|
||||||
InstancePinIterator *pin_iter = network->pinIterator(inst);
|
InstancePinIterator *pin_iter = network->pinIterator(inst);
|
||||||
while (pin_iter->hasNext()) {
|
while (pin_iter->hasNext()) {
|
||||||
Pin *pin = pin_iter->next();
|
Pin *pin = pin_iter->next();
|
||||||
if (network->direction(pin)->isAnyOutput()
|
if (checkPin(pin)) {
|
||||||
&& !sim->logicZeroOne(pin)) {
|
|
||||||
const Corner *corner1;
|
const Corner *corner1;
|
||||||
const RiseFall *rf;
|
const RiseFall *rf;
|
||||||
float capacitance, limit, slack;
|
float capacitance, limit, slack;
|
||||||
|
|
@ -294,8 +293,7 @@ CheckCapacitanceLimits::pinMinCapacitanceLimitSlack(Instance *inst,
|
||||||
InstancePinIterator *pin_iter = network->pinIterator(inst);
|
InstancePinIterator *pin_iter = network->pinIterator(inst);
|
||||||
while (pin_iter->hasNext()) {
|
while (pin_iter->hasNext()) {
|
||||||
Pin *pin = pin_iter->next();
|
Pin *pin = pin_iter->next();
|
||||||
if (network->direction(pin)->isAnyOutput()
|
if (checkPin(pin)) {
|
||||||
&& !sim->logicZeroOne(pin)) {
|
|
||||||
const Corner *corner1;
|
const Corner *corner1;
|
||||||
const RiseFall *rf;
|
const RiseFall *rf;
|
||||||
float capacitance, limit, slack;
|
float capacitance, limit, slack;
|
||||||
|
|
@ -312,4 +310,15 @@ CheckCapacitanceLimits::pinMinCapacitanceLimitSlack(Instance *inst,
|
||||||
delete pin_iter;
|
delete pin_iter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
CheckCapacitanceLimits::checkPin(const Pin *pin)
|
||||||
|
{
|
||||||
|
const Network *network = sta_->network();
|
||||||
|
const Sim *sim = sta_->sim();
|
||||||
|
const Sdc *sdc = sta_->sdc();
|
||||||
|
return network->direction(pin)->isAnyOutput()
|
||||||
|
&& !sim->logicZeroOne(pin)
|
||||||
|
&& !sdc->isDisabled(pin);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,7 @@ protected:
|
||||||
// Return values.
|
// Return values.
|
||||||
Pin *&min_slack_pin,
|
Pin *&min_slack_pin,
|
||||||
float &min_slack);
|
float &min_slack);
|
||||||
|
bool checkPin(const Pin *pin);
|
||||||
|
|
||||||
const StaState *sta_;
|
const StaState *sta_;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -224,8 +224,7 @@ CheckFanoutLimits::pinFanoutLimitViolations(Instance *inst,
|
||||||
InstancePinIterator *pin_iter = network->pinIterator(inst);
|
InstancePinIterator *pin_iter = network->pinIterator(inst);
|
||||||
while (pin_iter->hasNext()) {
|
while (pin_iter->hasNext()) {
|
||||||
Pin *pin = pin_iter->next();
|
Pin *pin = pin_iter->next();
|
||||||
if (network->direction(pin)->isAnyOutput()
|
if (checkPin(pin)) {
|
||||||
&& !sim->logicZeroOne(pin)) {
|
|
||||||
float fanout;
|
float fanout;
|
||||||
float limit, slack;
|
float limit, slack;
|
||||||
checkFanout(pin, min_max, fanout, limit, slack );
|
checkFanout(pin, min_max, fanout, limit, slack );
|
||||||
|
|
@ -262,12 +261,10 @@ CheckFanoutLimits::pinMinFanoutLimitSlack(Instance *inst,
|
||||||
float &min_slack)
|
float &min_slack)
|
||||||
{
|
{
|
||||||
const Network *network = sta_->network();
|
const Network *network = sta_->network();
|
||||||
const Sim *sim = sta_->sim();
|
|
||||||
InstancePinIterator *pin_iter = network->pinIterator(inst);
|
InstancePinIterator *pin_iter = network->pinIterator(inst);
|
||||||
while (pin_iter->hasNext()) {
|
while (pin_iter->hasNext()) {
|
||||||
Pin *pin = pin_iter->next();
|
Pin *pin = pin_iter->next();
|
||||||
if (network->direction(pin)->isAnyOutput()
|
if (checkPin(pin)) {
|
||||||
&& !sim->logicZeroOne(pin)) {
|
|
||||||
float fanout;
|
float fanout;
|
||||||
float limit, slack;
|
float limit, slack;
|
||||||
checkFanout(pin, min_max, fanout, limit, slack);
|
checkFanout(pin, min_max, fanout, limit, slack);
|
||||||
|
|
@ -282,4 +279,15 @@ CheckFanoutLimits::pinMinFanoutLimitSlack(Instance *inst,
|
||||||
delete pin_iter;
|
delete pin_iter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
CheckFanoutLimits::checkPin(const Pin *pin)
|
||||||
|
{
|
||||||
|
const Network *network = sta_->network();
|
||||||
|
const Sim *sim = sta_->sim();
|
||||||
|
const Sdc *sdc = sta_->sdc();
|
||||||
|
return network->direction(pin)->isAnyOutput()
|
||||||
|
&& !sim->logicZeroOne(pin)
|
||||||
|
&& !sdc->isDisabled(pin);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ protected:
|
||||||
Pin *&min_slack_pin,
|
Pin *&min_slack_pin,
|
||||||
float &min_slack);
|
float &min_slack);
|
||||||
float fanoutLoad(const Pin *pin) const;
|
float fanoutLoad(const Pin *pin) const;
|
||||||
|
bool checkPin(const Pin *pin);
|
||||||
|
|
||||||
const StaState *sta_;
|
const StaState *sta_;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue