write_timing_model ignore set_clock_latency -source

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2024-04-12 20:21:28 -07:00
parent e5774502c9
commit be82087bdf
3 changed files with 27 additions and 52 deletions

View File

@ -445,6 +445,8 @@ public:
float delay);
void removeClockInsertion(const Clock *clk,
const Pin *pin);
static void moveClockInsertions(Sdc *from,
Sdc *to);
bool hasClockInsertion(const Pin *pin) const;
float clockInsertion(const Clock *clk,
const RiseFall *rf,

View File

@ -668,17 +668,9 @@ Sdc::moveDeratingFactors(Sdc *from,
from->derating_factors_ = nullptr;
}
to->net_derating_factors_.deleteContents();
to->net_derating_factors_ = from->net_derating_factors_;
from->net_derating_factors_.clear();
to->inst_derating_factors_.deleteContents();
to->inst_derating_factors_ = from->inst_derating_factors_;
from->inst_derating_factors_.clear();
to->cell_derating_factors_.deleteContents();
to->cell_derating_factors_ = from->cell_derating_factors_;
from->cell_derating_factors_.clear();
to->net_derating_factors_ = std::move(from->net_derating_factors_);
to->inst_derating_factors_ = std::move(from->inst_derating_factors_);
to->cell_derating_factors_ = std::move(from->cell_derating_factors_);
}
void
@ -1740,6 +1732,13 @@ Sdc::removeClockInsertion(const Clock *clk,
deleteClockInsertion(insertion);
}
void
Sdc::moveClockInsertions(Sdc *from,
Sdc *to)
{
to->clk_insertions_ = std::move(from->clk_insertions_);
}
void
Sdc::deleteClockInsertion(ClockInsertion *insertion)
{
@ -2746,46 +2745,18 @@ void
Sdc::movePortDelays(Sdc *from,
Sdc *to)
{
to->input_delays_.deleteContents();
to->input_delays_ = from->input_delays_;
from->input_delays_.clear();
to->input_delay_pin_map_.deleteContents();
to->input_delay_pin_map_ = from->input_delay_pin_map_;
from->input_delay_pin_map_.clear();
to->input_delay_ref_pin_map_.deleteContents();
to->input_delay_ref_pin_map_ = from->input_delay_ref_pin_map_;
from->input_delay_ref_pin_map_.clear();
to->input_delay_leaf_pin_map_.deleteContents();
to->input_delay_leaf_pin_map_ = from->input_delay_leaf_pin_map_;
from->input_delay_leaf_pin_map_.clear();
to->input_delay_internal_pin_map_.deleteContents();
to->input_delay_internal_pin_map_ = from->input_delay_internal_pin_map_;
from->input_delay_internal_pin_map_.clear();
to->input_delays_ = std::move(from->input_delays_);
to->input_delay_pin_map_ = std::move(from->input_delay_pin_map_);
to->input_delay_ref_pin_map_ = std::move(from->input_delay_ref_pin_map_);
to->input_delay_leaf_pin_map_ = std::move(from->input_delay_leaf_pin_map_);
to->input_delay_internal_pin_map_ = std::move(from->input_delay_internal_pin_map_);
to->input_delay_index_ = from->input_delay_index_;
from->input_delay_index_ = 0;
////////////////
to->output_delays_.deleteContents();
to->output_delays_ = from->output_delays_;
from->output_delays_.clear();
to->output_delay_pin_map_.deleteContents();
to->output_delay_pin_map_ = from->output_delay_pin_map_;
from->output_delay_pin_map_.clear();
to->output_delay_ref_pin_map_.deleteContents();
to->output_delay_ref_pin_map_ = from->output_delay_ref_pin_map_;
from->output_delay_ref_pin_map_.clear();
to->output_delay_leaf_pin_map_.deleteContents();
to->output_delay_leaf_pin_map_ = from->output_delay_leaf_pin_map_;
from->output_delay_leaf_pin_map_.clear();
to->output_delays_ = std::move(from->output_delays_);
to->output_delay_pin_map_ = std::move(from->output_delay_pin_map_);
to->output_delay_ref_pin_map_ = std::move(from->output_delay_ref_pin_map_);
to->output_delay_leaf_pin_map_ = std::move(from->output_delay_leaf_pin_map_);
}
////////////////////////////////////////////////////////////////
@ -3355,11 +3326,11 @@ Sdc::movePortExtCaps(Sdc *from,
Sdc *to)
{
for (int corner_index = 0; corner_index < from->corners()->count(); corner_index++) {
to->port_ext_cap_maps_[corner_index] = from->port_ext_cap_maps_[corner_index];
from->port_ext_cap_maps_[corner_index].clear();
to->port_ext_cap_maps_[corner_index] =
std::move(from->port_ext_cap_maps_[corner_index]);
to->net_wire_cap_maps_[corner_index] = from->net_wire_cap_maps_[corner_index];
from->net_wire_cap_maps_[corner_index].clear();
to->net_wire_cap_maps_[corner_index] =
std::move(from->net_wire_cap_maps_[corner_index]);
}
}

View File

@ -114,6 +114,7 @@ MakeTimingModel::saveSdc()
Sdc::movePortDelays(sdc_, sdc_backup_);
Sdc::movePortExtCaps(sdc_, sdc_backup_);
Sdc::moveDeratingFactors(sdc_, sdc_backup_);
Sdc::moveClockInsertions(sdc_, sdc_backup_);
sta_->delaysInvalid();
}
@ -123,6 +124,7 @@ MakeTimingModel::restoreSdc()
Sdc::movePortDelays(sdc_backup_, sdc_);
Sdc::movePortExtCaps(sdc_backup_, sdc_);
Sdc::moveDeratingFactors(sdc_backup_, sdc_);
Sdc::moveClockInsertions(sdc_backup_, sdc_);
delete sdc_backup_;
sta_->delaysInvalid();
}