report max_fanout, max_cap do not report disabled pins

This commit is contained in:
James Cherry 2020-06-14 21:23:26 -07:00
parent bb9060160d
commit 68bd76e1a8
4 changed files with 28 additions and 9 deletions

View File

@ -249,8 +249,7 @@ CheckCapacitanceLimits::pinCapacitanceLimitViolations(Instance *inst,
InstancePinIterator *pin_iter = network->pinIterator(inst);
while (pin_iter->hasNext()) {
Pin *pin = pin_iter->next();
if (network->direction(pin)->isAnyOutput()
&& !sim->logicZeroOne(pin)) {
if (checkPin(pin)) {
const Corner *corner1;
const RiseFall *rf;
float capacitance, limit, slack;
@ -294,8 +293,7 @@ CheckCapacitanceLimits::pinMinCapacitanceLimitSlack(Instance *inst,
InstancePinIterator *pin_iter = network->pinIterator(inst);
while (pin_iter->hasNext()) {
Pin *pin = pin_iter->next();
if (network->direction(pin)->isAnyOutput()
&& !sim->logicZeroOne(pin)) {
if (checkPin(pin)) {
const Corner *corner1;
const RiseFall *rf;
float capacitance, limit, slack;
@ -312,4 +310,15 @@ CheckCapacitanceLimits::pinMinCapacitanceLimitSlack(Instance *inst,
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

View File

@ -84,6 +84,7 @@ protected:
// Return values.
Pin *&min_slack_pin,
float &min_slack);
bool checkPin(const Pin *pin);
const StaState *sta_;
};

View File

@ -224,8 +224,7 @@ CheckFanoutLimits::pinFanoutLimitViolations(Instance *inst,
InstancePinIterator *pin_iter = network->pinIterator(inst);
while (pin_iter->hasNext()) {
Pin *pin = pin_iter->next();
if (network->direction(pin)->isAnyOutput()
&& !sim->logicZeroOne(pin)) {
if (checkPin(pin)) {
float fanout;
float limit, slack;
checkFanout(pin, min_max, fanout, limit, slack );
@ -262,12 +261,10 @@ CheckFanoutLimits::pinMinFanoutLimitSlack(Instance *inst,
float &min_slack)
{
const Network *network = sta_->network();
const Sim *sim = sta_->sim();
InstancePinIterator *pin_iter = network->pinIterator(inst);
while (pin_iter->hasNext()) {
Pin *pin = pin_iter->next();
if (network->direction(pin)->isAnyOutput()
&& !sim->logicZeroOne(pin)) {
if (checkPin(pin)) {
float fanout;
float limit, slack;
checkFanout(pin, min_max, fanout, limit, slack);
@ -282,4 +279,15 @@ CheckFanoutLimits::pinMinFanoutLimitSlack(Instance *inst,
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

View File

@ -59,6 +59,7 @@ protected:
Pin *&min_slack_pin,
float &min_slack);
float fanoutLoad(const Pin *pin) const;
bool checkPin(const Pin *pin);
const StaState *sta_;
};