PathEnd::copy use copy constructors
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
464d4047ad
commit
fbd171019a
|
|
@ -270,11 +270,6 @@ public:
|
||||||
protected:
|
protected:
|
||||||
PathEndClkConstrained(Path *path,
|
PathEndClkConstrained(Path *path,
|
||||||
Path *clk_path);
|
Path *clk_path);
|
||||||
PathEndClkConstrained(Path *path,
|
|
||||||
Path *clk_path,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid);
|
|
||||||
|
|
||||||
float sourceClkOffset(const ClockEdge *src_clk_edge,
|
float sourceClkOffset(const ClockEdge *src_clk_edge,
|
||||||
const ClockEdge *tgt_clk_edge,
|
const ClockEdge *tgt_clk_edge,
|
||||||
const TimingRole *check_role,
|
const TimingRole *check_role,
|
||||||
|
|
@ -300,11 +295,6 @@ protected:
|
||||||
PathEndClkConstrainedMcp(Path *path,
|
PathEndClkConstrainedMcp(Path *path,
|
||||||
Path *clk_path,
|
Path *clk_path,
|
||||||
MultiCyclePath *mcp);
|
MultiCyclePath *mcp);
|
||||||
PathEndClkConstrainedMcp(Path *path,
|
|
||||||
Path *clk_path,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid);
|
|
||||||
float checkMcpAdjustment(const Path *path,
|
float checkMcpAdjustment(const Path *path,
|
||||||
const ClockEdge *tgt_clk_edge,
|
const ClockEdge *tgt_clk_edge,
|
||||||
const StaState *sta) const;
|
const StaState *sta) const;
|
||||||
|
|
@ -341,13 +331,6 @@ public:
|
||||||
virtual Delay clkSkew(const StaState *sta);
|
virtual Delay clkSkew(const StaState *sta);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
PathEndCheck(Path *path,
|
|
||||||
TimingArc *check_arc,
|
|
||||||
Edge *check_edge,
|
|
||||||
Path *clk_path,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid);
|
|
||||||
Delay sourceClkDelay(const StaState *sta) const;
|
Delay sourceClkDelay(const StaState *sta) const;
|
||||||
virtual Required requiredTimeNoCrpr(const StaState *sta) const;
|
virtual Required requiredTimeNoCrpr(const StaState *sta) const;
|
||||||
|
|
||||||
|
|
@ -404,18 +387,6 @@ public:
|
||||||
virtual bool ignoreClkLatency(const StaState *sta) const;
|
virtual bool ignoreClkLatency(const StaState *sta) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
PathEndLatchCheck(Path *path,
|
|
||||||
TimingArc *check_arc,
|
|
||||||
Edge *check_edge,
|
|
||||||
Path *clk_path,
|
|
||||||
Path *disable,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
PathDelay *path_delay,
|
|
||||||
Delay src_clk_arrival,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid);
|
|
||||||
|
|
||||||
private:
|
|
||||||
Path *disable_path_;
|
Path *disable_path_;
|
||||||
PathDelay *path_delay_;
|
PathDelay *path_delay_;
|
||||||
// Source clk arrival for set_max_delay -ignore_clk_latency.
|
// Source clk arrival for set_max_delay -ignore_clk_latency.
|
||||||
|
|
@ -450,12 +421,6 @@ public:
|
||||||
const StaState *sta) const;
|
const StaState *sta) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
PathEndOutputDelay(OutputDelay *output_delay,
|
|
||||||
Path *path,
|
|
||||||
Path *clk_path,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid);
|
|
||||||
Arrival tgtClkDelay(const ClockEdge *tgt_clk_edge,
|
Arrival tgtClkDelay(const ClockEdge *tgt_clk_edge,
|
||||||
const TimingRole *check_role,
|
const TimingRole *check_role,
|
||||||
const StaState *sta) const;
|
const StaState *sta) const;
|
||||||
|
|
@ -491,14 +456,6 @@ public:
|
||||||
const StaState *sta) const;
|
const StaState *sta) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
PathEndGatedClock(Path *gating_ref,
|
|
||||||
Path *clk_path,
|
|
||||||
const TimingRole *check_role,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
ArcDelay margin,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid);
|
|
||||||
|
|
||||||
const TimingRole *check_role_;
|
const TimingRole *check_role_;
|
||||||
ArcDelay margin_;
|
ArcDelay margin_;
|
||||||
};
|
};
|
||||||
|
|
@ -525,20 +482,12 @@ public:
|
||||||
virtual const Path *dataClkPath() const { return data_clk_path_; }
|
virtual const Path *dataClkPath() const { return data_clk_path_; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
PathEndDataCheck(DataCheck *check,
|
|
||||||
Path *data_path,
|
|
||||||
Path *data_clk_path,
|
|
||||||
Path *clk_path,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid);
|
|
||||||
Path *clkPath(Path *path,
|
Path *clkPath(Path *path,
|
||||||
const StaState *sta);
|
const StaState *sta);
|
||||||
Arrival requiredTimeNoCrpr(const StaState *sta) const;
|
Arrival requiredTimeNoCrpr(const StaState *sta) const;
|
||||||
// setup uses zero cycle default
|
// setup uses zero cycle default
|
||||||
virtual int setupDefaultCycles() const { return 0; }
|
virtual int setupDefaultCycles() const { return 0; }
|
||||||
|
|
||||||
private:
|
|
||||||
Path *data_clk_path_;
|
Path *data_clk_path_;
|
||||||
DataCheck *check_;
|
DataCheck *check_;
|
||||||
};
|
};
|
||||||
|
|
@ -588,15 +537,6 @@ public:
|
||||||
virtual bool ignoreClkLatency(const StaState *sta) const;
|
virtual bool ignoreClkLatency(const StaState *sta) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
PathEndPathDelay(PathDelay *path_delay,
|
|
||||||
Path *path,
|
|
||||||
Path *clk_path,
|
|
||||||
TimingArc *check_arc,
|
|
||||||
Edge *check_edge,
|
|
||||||
OutputDelay *output_delay,
|
|
||||||
Arrival src_clk_arrival,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid);
|
|
||||||
void findSrcClkArrival(const StaState *sta);
|
void findSrcClkArrival(const StaState *sta);
|
||||||
|
|
||||||
PathDelay *path_delay_;
|
PathDelay *path_delay_;
|
||||||
|
|
|
||||||
|
|
@ -449,7 +449,7 @@ PathEndUnconstrained::PathEndUnconstrained(Path *path) :
|
||||||
PathEnd *
|
PathEnd *
|
||||||
PathEndUnconstrained::copy() const
|
PathEndUnconstrained::copy() const
|
||||||
{
|
{
|
||||||
return new PathEndUnconstrained(path_);
|
return new PathEndUnconstrained(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
@ -512,17 +512,6 @@ PathEndClkConstrained::PathEndClkConstrained(Path *path,
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEndClkConstrained::PathEndClkConstrained(Path *path,
|
|
||||||
Path *clk_path,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid) :
|
|
||||||
PathEnd(path),
|
|
||||||
clk_path_(clk_path),
|
|
||||||
crpr_(crpr),
|
|
||||||
crpr_valid_(crpr_valid)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PathEndClkConstrained::setPath(Path *path)
|
PathEndClkConstrained::setPath(Path *path)
|
||||||
{
|
{
|
||||||
|
|
@ -765,16 +754,6 @@ PathEndClkConstrainedMcp::PathEndClkConstrainedMcp(Path *path,
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEndClkConstrainedMcp::PathEndClkConstrainedMcp(Path *path,
|
|
||||||
Path *clk_path,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid) :
|
|
||||||
PathEndClkConstrained(path, clk_path, crpr, crpr_valid),
|
|
||||||
mcp_(mcp)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
float
|
float
|
||||||
PathEndClkConstrainedMcp::targetClkMcpAdjustment(const StaState *sta) const
|
PathEndClkConstrainedMcp::targetClkMcpAdjustment(const StaState *sta) const
|
||||||
{
|
{
|
||||||
|
|
@ -945,24 +924,10 @@ PathEndCheck::PathEndCheck(Path *path,
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEndCheck::PathEndCheck(Path *path,
|
|
||||||
TimingArc *check_arc,
|
|
||||||
Edge *check_edge,
|
|
||||||
Path *clk_path,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid) :
|
|
||||||
PathEndClkConstrainedMcp(path, clk_path, mcp, crpr, crpr_valid),
|
|
||||||
check_arc_(check_arc),
|
|
||||||
check_edge_(check_edge)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
PathEnd *
|
PathEnd *
|
||||||
PathEndCheck::copy() const
|
PathEndCheck::copy() const
|
||||||
{
|
{
|
||||||
return new PathEndCheck(path_, check_arc_, check_edge_,
|
return new PathEndCheck(*this);
|
||||||
clk_path_, mcp_, crpr_, crpr_valid_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEnd::Type
|
PathEnd::Type
|
||||||
|
|
@ -1129,29 +1094,10 @@ PathEndLatchCheck::PathEndLatchCheck(Path *path,
|
||||||
src_clk_arrival_ = search->pathClkPathArrival(path_);
|
src_clk_arrival_ = search->pathClkPathArrival(path_);
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEndLatchCheck::PathEndLatchCheck(Path *path,
|
|
||||||
TimingArc *check_arc,
|
|
||||||
Edge *check_edge,
|
|
||||||
Path *clk_path,
|
|
||||||
Path *disable_path,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
PathDelay *path_delay,
|
|
||||||
Delay src_clk_arrival,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid) :
|
|
||||||
PathEndCheck(path, check_arc, check_edge, clk_path, mcp, crpr, crpr_valid),
|
|
||||||
disable_path_(disable_path),
|
|
||||||
path_delay_(path_delay),
|
|
||||||
src_clk_arrival_(src_clk_arrival)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
PathEnd *
|
PathEnd *
|
||||||
PathEndLatchCheck::copy() const
|
PathEndLatchCheck::copy() const
|
||||||
{
|
{
|
||||||
return new PathEndLatchCheck(path_, check_arc_, check_edge_,
|
return new PathEndLatchCheck(*this);
|
||||||
clk_path_, disable_path_, mcp_, path_delay_,
|
|
||||||
src_clk_arrival_, crpr_, crpr_valid_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEnd::Type
|
PathEnd::Type
|
||||||
|
|
@ -1357,22 +1303,10 @@ PathEndOutputDelay::PathEndOutputDelay(OutputDelay *output_delay,
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEndOutputDelay::PathEndOutputDelay(OutputDelay *output_delay,
|
|
||||||
Path *path,
|
|
||||||
Path *clk_path,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid) :
|
|
||||||
PathEndClkConstrainedMcp(path, clk_path, mcp, crpr, crpr_valid),
|
|
||||||
output_delay_(output_delay)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
PathEnd *
|
PathEnd *
|
||||||
PathEndOutputDelay::copy() const
|
PathEndOutputDelay::copy() const
|
||||||
{
|
{
|
||||||
return new PathEndOutputDelay(output_delay_, path_, clk_path_,
|
return new PathEndOutputDelay(*this);
|
||||||
mcp_, crpr_, crpr_valid_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEnd::Type
|
PathEnd::Type
|
||||||
|
|
@ -1564,24 +1498,10 @@ PathEndGatedClock::PathEndGatedClock(Path *gating_ref,
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEndGatedClock::PathEndGatedClock(Path *gating_ref,
|
|
||||||
Path *clk_path,
|
|
||||||
const TimingRole *check_role,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
ArcDelay margin,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid) :
|
|
||||||
PathEndClkConstrainedMcp(gating_ref, clk_path, mcp, crpr, crpr_valid),
|
|
||||||
check_role_(check_role),
|
|
||||||
margin_(margin)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
PathEnd *
|
PathEnd *
|
||||||
PathEndGatedClock::copy() const
|
PathEndGatedClock::copy() const
|
||||||
{
|
{
|
||||||
return new PathEndGatedClock(path_, clk_path_, check_role_,
|
return new PathEndGatedClock(*this);
|
||||||
mcp_, margin_, crpr_, crpr_valid_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEnd::Type
|
PathEnd::Type
|
||||||
|
|
@ -1680,24 +1600,10 @@ PathEndDataCheck::clkPath(Path *path,
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEndDataCheck::PathEndDataCheck(DataCheck *check,
|
|
||||||
Path *data_path,
|
|
||||||
Path *data_clk_path,
|
|
||||||
Path *clk_path,
|
|
||||||
MultiCyclePath *mcp,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid) :
|
|
||||||
PathEndClkConstrainedMcp(data_path, clk_path, mcp, crpr, crpr_valid),
|
|
||||||
data_clk_path_(data_clk_path),
|
|
||||||
check_(check)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
PathEnd *
|
PathEnd *
|
||||||
PathEndDataCheck::copy() const
|
PathEndDataCheck::copy() const
|
||||||
{
|
{
|
||||||
return new PathEndDataCheck(check_, path_, data_clk_path_,
|
return new PathEndDataCheck(*this);
|
||||||
clk_path_, mcp_, crpr_, crpr_valid_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEnd::Type
|
PathEnd::Type
|
||||||
|
|
@ -1838,30 +1744,10 @@ PathEndPathDelay::PathEndPathDelay(PathDelay *path_delay,
|
||||||
findSrcClkArrival(sta);
|
findSrcClkArrival(sta);
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEndPathDelay::PathEndPathDelay(PathDelay *path_delay,
|
|
||||||
Path *path,
|
|
||||||
Path *clk_path,
|
|
||||||
TimingArc *check_arc,
|
|
||||||
Edge *check_edge,
|
|
||||||
OutputDelay *output_delay,
|
|
||||||
Arrival src_clk_arrival,
|
|
||||||
Crpr crpr,
|
|
||||||
bool crpr_valid) :
|
|
||||||
PathEndClkConstrained(path, clk_path, crpr, crpr_valid),
|
|
||||||
path_delay_(path_delay),
|
|
||||||
check_arc_(check_arc),
|
|
||||||
check_edge_(check_edge),
|
|
||||||
output_delay_(output_delay),
|
|
||||||
src_clk_arrival_(src_clk_arrival)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
PathEnd *
|
PathEnd *
|
||||||
PathEndPathDelay::copy() const
|
PathEndPathDelay::copy() const
|
||||||
{
|
{
|
||||||
return new PathEndPathDelay(path_delay_, path_, clk_path_,
|
return new PathEndPathDelay(*this);
|
||||||
check_arc_, check_edge_, output_delay_,
|
|
||||||
src_clk_arrival_, crpr_, crpr_valid_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PathEnd::Type
|
PathEnd::Type
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue