Skip to content

Commit

Permalink
write_timing_model ignore set_timing_derate
Browse files Browse the repository at this point in the history
Signed-off-by: James Cherry <[email protected]>
  • Loading branch information
jjcherry56 committed Jan 4, 2023
1 parent 1af03c8 commit 2a2b5cd
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 0 deletions.
Binary file modified doc/OpenSTA.odt
Binary file not shown.
Binary file modified doc/OpenSTA.pdf
Binary file not shown.
3 changes: 3 additions & 0 deletions include/sta/Sdc.hh
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,9 @@ public:
const RiseFall *rf,
const EarlyLate *early_late) const;
void unsetTimingDerate();
static void moveDeratingFactors(Sdc *from,
Sdc *to);

void setInputSlew(Port *port, const RiseFallBoth *rf,
const MinMaxAll *min_max, float slew);
// Set the rise/fall drive resistance on design port.
Expand Down
22 changes: 22 additions & 0 deletions sdc/Sdc.cc
Original file line number Diff line number Diff line change
Expand Up @@ -686,6 +686,28 @@ Sdc::unsetTimingDerate()
deleteDeratingFactors();
}

void
Sdc::moveDeratingFactors(Sdc *from,
Sdc *to)
{
if (from->derating_factors_) {
to->derating_factors_ = from->derating_factors_;
from->derating_factors_ = nullptr;
}
if (from->net_derating_factors_) {
to->net_derating_factors_ = from->net_derating_factors_;
from->net_derating_factors_ = nullptr;
}
if (from->inst_derating_factors_) {
to->inst_derating_factors_ = from->inst_derating_factors_;
from->inst_derating_factors_ = nullptr;
}
if (from->cell_derating_factors_) {
to->cell_derating_factors_ = from->cell_derating_factors_;
from->cell_derating_factors_ = nullptr;
}
}

void
Sdc::deleteDeratingFactors()
{
Expand Down
2 changes: 2 additions & 0 deletions search/MakeTimingModel.cc
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ MakeTimingModel::saveSdc()
sdc_backup_ = new Sdc(this);
Sdc::movePortDelays(sdc_, sdc_backup_);
Sdc::movePortExtCaps(sdc_, sdc_backup_);
Sdc::moveDeratingFactors(sdc_, sdc_backup_);
sta_->delaysInvalid();
}

Expand All @@ -101,6 +102,7 @@ MakeTimingModel::restoreSdc()
{
Sdc::movePortDelays(sdc_backup_, sdc_);
Sdc::movePortExtCaps(sdc_backup_, sdc_);
Sdc::moveDeratingFactors(sdc_backup_, sdc_);
sta_->delaysInvalid();
delete sdc_backup_;
}
Expand Down

0 comments on commit 2a2b5cd

Please sign in to comment.