write_timing_model ignore set_clock_latency -source
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
e5774502c9
commit
be82087bdf
|
|
@ -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,
|
||||
|
|
|
|||
75
sdc/Sdc.cc
75
sdc/Sdc.cc
|
|
@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue