SDC: Perform buffer propagation after clock divider propagation
Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
diff --git a/sdc-plugin/clocks.cc b/sdc-plugin/clocks.cc
index 82944a4..d634bb7 100644
--- a/sdc-plugin/clocks.cc
+++ b/sdc-plugin/clocks.cc
@@ -141,6 +141,7 @@
log("PLL clock: %s\n", pll_clock.Name().c_str());
#endif
AddClock(pll_clock);
+ PropagateThroughBuffer(pass, pll_clock, Bufg());
}
}
}
@@ -149,7 +150,7 @@
#endif
}
-void Clocks::PropagateThroughBuffer(BufferPropagation* pass, Clock& clock,
+void Clocks::PropagateThroughBuffer(Propagation* pass, Clock& clock,
Buffer buffer) {
auto clock_wires = clock.GetClockWires();
for (auto clock_wire : clock_wires) {
diff --git a/sdc-plugin/clocks.h b/sdc-plugin/clocks.h
index df60b6d..f4b0e53 100644
--- a/sdc-plugin/clocks.h
+++ b/sdc-plugin/clocks.h
@@ -28,6 +28,7 @@
class NaturalPropagation;
class BufferPropagation;
class ClockDividerPropagation;
+class Propagation;
class Clock {
public:
@@ -76,7 +77,7 @@
private:
std::vector<Clock> clocks_;
- void PropagateThroughBuffer(BufferPropagation* pass, Clock& clock,
+ void PropagateThroughBuffer(Propagation* pass, Clock& clock,
Buffer buffer);
};