skew-programmable clock design for fpga and skew-aware placement
In this paper, we propose a skew-programmable clock-routing architecture. The skews can be adjusted using programmable delay elements ( PDEs ) which we insert into the clock trees. We develop efficient, shortest-path-based algorithms for programming PDEs to optimize timing. Unlike previous methods for FPGA skew optimization which require large power and routing penalty, our method can achieve large timing improvement with small overhead. Typically, if timing requirements are tight, placers make efforts to satisfy them, often at a cost of compromising routability, total wire length, and power. In this work, we propose novel clock-skew-aware placement algorithms which allow us to relax the timing constraints during placement. Timing can be later optimized as a post process. Even though we demonstrate the efficiency of our approach using FPGAs , the new skew optimization method and the new placement algorithm are quite general and can be applied to any general, topology-constrained skew optimization problem. Experimental results indicate that using the new clock-architecture we can obtain a 22\% timing improvement for post-layout skew optimization and an additional 21\% improvement from our skew-aware placement algorithm. In one fabric, the cost of added logic is 2.19\% as measured by dynamic power dissipation, and 0.85\% in terms of area overhead.
placement skew optimization clock architecture