path enum for clks used as data
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
6ebd162d42
commit
c8537cbc4b
|
|
@ -506,16 +506,16 @@ PathEnum::makeDiversions(PathEnd *path_end,
|
||||||
Path *prev_path = path->prevPath();
|
Path *prev_path = path->prevPath();
|
||||||
TimingArc *prev_arc = path->prevArc(this);
|
TimingArc *prev_arc = path->prevArc(this);
|
||||||
PathEnumFaninVisitor fanin_visitor(path_end, path, unique_pins_, this);
|
PathEnumFaninVisitor fanin_visitor(path_end, path, unique_pins_, this);
|
||||||
while (prev_path
|
while (prev_path) {
|
||||||
// Do not enumerate paths in the clk network.
|
|
||||||
&& !path->isClock(this)) {
|
|
||||||
// Fanin visitor does all the work.
|
// Fanin visitor does all the work.
|
||||||
// While visiting the fanins the fanin_visitor finds the
|
// While visiting the fanins the fanin_visitor finds the
|
||||||
// previous path and arc as well as diversions.
|
// previous path and arc as well as diversions.
|
||||||
fanin_visitor.visitFaninPathsThru(path, prev_path->vertex(this), prev_arc);
|
fanin_visitor.visitFaninPathsThru(path, prev_path->vertex(this), prev_arc);
|
||||||
// Do not enumerate beyond latch D to Q edges.
|
// Do not enumerate beyond latch D to Q edges.
|
||||||
// This breaks latch loop paths.
|
// This breaks latch loop paths.
|
||||||
if (prev_arc->role() == TimingRole::latchDtoQ())
|
const TimingRole *prev_role = prev_arc->role();
|
||||||
|
if (prev_role == TimingRole::latchDtoQ()
|
||||||
|
|| prev_role == TimingRole::regClkToQ())
|
||||||
break;
|
break;
|
||||||
path = prev_path;
|
path = prev_path;
|
||||||
prev_path = path->prevPath();
|
prev_path = path->prevPath();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue