StaState::crprEnabled
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
efee9ec7e4
commit
109bc9ab5e
|
|
@ -130,10 +130,10 @@ protected:
|
|||
Search *search_;
|
||||
Latches *latches_;
|
||||
ClkNetwork *clk_network_;
|
||||
Variables *variables_;
|
||||
int thread_count_;
|
||||
DispatchQueue *dispatch_queue_;
|
||||
float sigma_factor_;
|
||||
Variables *variables_;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ clkInfoEqual(const ClkInfo *clk_info1,
|
|||
const ClkInfo *clk_info2,
|
||||
const StaState *sta)
|
||||
{
|
||||
bool crpr_on = sta->sdc()->crprActive();
|
||||
bool crpr_on = sta->crprActive();
|
||||
ClockUncertainties *uncertainties1 = clk_info1->uncertainties();
|
||||
ClockUncertainties *uncertainties2 = clk_info2->uncertainties();
|
||||
return clk_info1->clkEdge() == clk_info2->clkEdge()
|
||||
|
|
@ -290,7 +290,7 @@ clkInfoCmp(const ClkInfo *clk_info1,
|
|||
if (gen_clk_src1 > gen_clk_src2)
|
||||
return 1;
|
||||
|
||||
bool crpr_on = sta->sdc()->crprActive();
|
||||
bool crpr_on = sta->crprActive();
|
||||
if (crpr_on) {
|
||||
const Path *crpr_path1 = clk_info1->crprClkPath(sta);
|
||||
const Path *crpr_path2 = clk_info2->crprClkPath(sta);
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ CheckCrpr::checkCrpr(const Path *src_path,
|
|||
{
|
||||
crpr = 0.0;
|
||||
crpr_pin = nullptr;
|
||||
if (sdc_->crprActive()
|
||||
if (crprActive()
|
||||
&& src_path && tgt_clk_path) {
|
||||
bool same_pin = (variables_->crprMode() == CrprMode::same_pin);
|
||||
checkCrpr1(src_path, tgt_clk_path, same_pin, crpr, crpr_pin);
|
||||
|
|
@ -330,7 +330,7 @@ CheckCrpr::outputDelayCrpr(const Path *src_path,
|
|||
{
|
||||
crpr = 0.0;
|
||||
crpr_pin = nullptr;
|
||||
if (sdc_->crprActive()) {
|
||||
if (crprActive()) {
|
||||
const PathAnalysisPt *path_ap = src_path->pathAnalysisPt(this);
|
||||
const PathAnalysisPt *tgt_path_ap = path_ap->tgtClkAnalysisPt();
|
||||
bool same_pin = (variables_->crprMode() == CrprMode::same_pin);
|
||||
|
|
|
|||
|
|
@ -352,8 +352,7 @@ Latches::latchOutArrival(const Path *data_path,
|
|||
q_arrival = adjusted_data_arrival + arc_delay;
|
||||
// Tag switcheroo - data passing thru gets latch enable tag.
|
||||
// States and path ap come from Q, everything else from enable.
|
||||
Path *crpr_clk_path =
|
||||
sdc_->crprActive() ? enable_path : nullptr;
|
||||
Path *crpr_clk_path = crprActive() ? enable_path : nullptr;
|
||||
ClkInfo *q_clk_info =
|
||||
search_->findClkInfo(en_clk_edge,
|
||||
en_clk_info->clkSrc(),
|
||||
|
|
|
|||
|
|
@ -295,7 +295,7 @@ PathEnumFaninVisitor::PathEnumFaninVisitor(PathEnd *path_end,
|
|||
before_div_ap_index_(before_div_->pathAnalysisPtIndex(this)),
|
||||
before_div_arrival_(before_div_->arrival()),
|
||||
path_enum_(path_enum),
|
||||
crpr_active_(sdc_->crprActive())
|
||||
crpr_active_(crprActive())
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -605,7 +605,7 @@ PathEnum::updatePathHeadDelays(PathSeq &paths,
|
|||
prev_arrival = arrival;
|
||||
const Tag *tag = path->tag(this);
|
||||
const ClkInfo *clk_info = tag->clkInfo();
|
||||
if (sdc_->crprActive()
|
||||
if (crprActive()
|
||||
&& clk_info != prev_clk_info
|
||||
// D->Q paths use the EN->Q clk info so no need to update.
|
||||
&& arc->role() != TimingRole::latchDtoQ()) {
|
||||
|
|
|
|||
|
|
@ -1112,7 +1112,7 @@ ArrivalVisitor::init(bool always_to_endpoints,
|
|||
{
|
||||
always_to_endpoints_ = always_to_endpoints;
|
||||
pred_ = pred;
|
||||
crpr_active_ = sdc_->crprActive();
|
||||
crpr_active_ = crprActive();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -2390,7 +2390,7 @@ Search::clkInfoWithCrprClkPath(ClkInfo *from_clk_info,
|
|||
Path *from_path,
|
||||
const PathAnalysisPt *path_ap)
|
||||
{
|
||||
if (sdc_->crprActive())
|
||||
if (crprActive())
|
||||
return findClkInfo(from_clk_info->clkEdge(),
|
||||
from_clk_info->clkSrc(),
|
||||
from_clk_info->isPropagated(),
|
||||
|
|
@ -2491,7 +2491,7 @@ Search::thruClkInfo(Path *from_path,
|
|||
// the clkinfo.
|
||||
const Pin *gen_clk_src = nullptr;
|
||||
if (from_clk_info->isGenClkSrcPath()
|
||||
&& sdc_->crprActive()
|
||||
&& crprActive()
|
||||
&& sdc_->isClock(to_pin)) {
|
||||
// Don't care that it could be a regular clock root.
|
||||
gen_clk_src = to_pin;
|
||||
|
|
@ -2499,7 +2499,7 @@ Search::thruClkInfo(Path *from_path,
|
|||
}
|
||||
|
||||
Path *to_crpr_clk_path = nullptr;
|
||||
if (sdc_->crprActive()
|
||||
if (crprActive()
|
||||
// Update crpr clk path for combinational paths leaving the clock
|
||||
// network (ie, tristate en->out) and buffer driving reg clk.
|
||||
&& ((from_is_clk
|
||||
|
|
|
|||
|
|
@ -52,10 +52,10 @@ StaState::StaState() :
|
|||
search_(nullptr),
|
||||
latches_(nullptr),
|
||||
clk_network_(nullptr),
|
||||
variables_(nullptr),
|
||||
thread_count_(1),
|
||||
dispatch_queue_(nullptr),
|
||||
sigma_factor_(1.0),
|
||||
variables_(nullptr)
|
||||
sigma_factor_(1.0)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -418,7 +418,7 @@ tagMatch(const Tag *tag1,
|
|||
&& tag1->isSegmentStart() == tag2->isSegmentStart()
|
||||
&& clk_info1->isGenClkSrcPath() == clk_info2->isGenClkSrcPath()
|
||||
&& (!match_crpr_clk_pin
|
||||
|| !sta->sdc()->crprActive()
|
||||
|| !sta->crprActive()
|
||||
|| clk_info1->crprClkVertexId(sta) == clk_info2->crprClkVertexId(sta))
|
||||
&& tagStateEqual(tag1, tag2));
|
||||
}
|
||||
|
|
@ -479,7 +479,7 @@ tagMatchCmp(const Tag *tag1,
|
|||
return 1;
|
||||
|
||||
if (match_crpr_clk_pin
|
||||
&& sta->sdc()->crprActive()) {
|
||||
&& sta->crprActive()) {
|
||||
VertexId crpr_vertex1 = clk_info1->crprClkVertexId(sta);
|
||||
VertexId crpr_vertex2 = clk_info2->crprClkVertexId(sta);
|
||||
if (crpr_vertex1 < crpr_vertex2)
|
||||
|
|
|
|||
Loading…
Reference in New Issue