Optimal design of synchronous circuits using software pipelining techniques

We present a method to optimize clocked circuits by relocating and changing the time of activation of registers to maximize the throughput. Our method is based on a modulo scheduling algorithm for software pipelining, instead of retiming. It optimizes the circuit without the constraint on the clock phases that retiming has, which permits to always achieve the optimal clock period. The two methods have the same overall time complexity, but we avoid the computation of all pair-shortest paths, which is a heavy burden regarding both space and time. From the optimal schedule found, registers are placed in the circuit without looking at where the original registers were. The resulting circuit is a multi-phase clocked circuit, where all the clocks have the same period and the phases are automatically determined by the algorithm. Edge-triggered flip-flops are used where the combinational delays exactly match that period, whereas level-sensitive latches are used elsewhere, improving the area occupied by the circuit. Experiments on existing and newly developed benchmarks show a substantial performance improvement compared to previously published work.

[1]  James B. Orlin,et al.  Finding minimum cost to time ratio cycles with small integral transit times , 1993, Networks.

[2]  Kunle Olukotun,et al.  Analysis and design of latch-controlled synchronous digital circuits , 1992, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[3]  Carl Ebeling,et al.  Optimal retiming of level-clocked circuits using symmetric clock schedules , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[4]  Kunle Olukotun,et al.  Analysis and design of latch-controlled synchronous digital circuits , 1990, DAC '90.

[5]  Giovanni De Micheli,et al.  Synthesis and Optimization of Digital Circuits , 1994 .

[6]  Marios C. Papaefthymiou,et al.  Optimizing two-phase, level-clocked circuitry , 1997, JACM.

[7]  Sachin S. Sapatnekar,et al.  An improved algorithm for minimum-area retiming , 1997, DAC.

[8]  Sachin S. Sapatnekar,et al.  A fresh look at retiming via clock skew optimization , 1995, DAC '95.

[9]  Guang R. Gao,et al.  A Polynomial Time Method for Optimal Software Pipelining , 1992, CONPAR.

[10]  Claire Hanen,et al.  Study of a NP-hard cyclic scheduling problem: The recurrent job-shop , 1994 .

[11]  Yu-Chin Hsu,et al.  Scheduling for functional pipelining and loop winding , 1991, 28th ACM/IEEE Design Automation Conference.

[12]  Sachin S. Sapatnekar,et al.  Efficient retiming of large circuits , 1998, IEEE Trans. Very Large Scale Integr. Syst..

[13]  Yvon Savaria,et al.  Optimal design of synchronous circuits using software pipelining techniques , 1998, Proceedings International Conference on Computer Design. VLSI in Computers and Processors (Cat. No.98CB36273).

[14]  Christopher W. Fraser,et al.  A Retargetable C Compiler: Design and Implementation , 1995 .