Retiming is the technique of moving the structural location of
latches or registers in a
digital circuit In theoretical computer science, a circuit is a model of computation in which input values proceed through a sequence of gates, each of which computes a function. Circuits of this kind provide a generalization of Boolean circuits and a mathematical ...
to improve its performance, area, and/or
power characteristics in such a way that preserves its functional behavior at its outputs. Retiming was first described by
Charles E. Leiserson and
James B. Saxe
James Benjamin Saxe is an American computer scientist who has worked for many years at the DEC Systems Research Center and its successors, the Compaq Systems Research Center and the Systems Research Center of HP Labs.
Saxe is known for his highly ...
in 1983.
The technique uses a
directed graph where the vertices represent asynchronous combinational blocks and the directed edges represent a series of registers or latches (the number of registers or latches can be zero). Each vertex has a value corresponding to the delay through the combinational circuit it represents. After doing this, one can attempt to optimize the circuit by pushing registers from output to input and vice versa - much like
bubble pushing
A logic gate is an idealized or physical device implementing a Boolean function, a logical operation performed on one or more Binary number, binary inputs that produces a single binary output. Depending on the context, the term may refer to an id ...
. Two operations can be used - deleting a register from each input of a vertex while adding a register to all outputs, and conversely adding a register to each input of vertex and deleting a register from all outputs. In all cases, if the rules are followed, the circuit will have the same functional behavior as it did before retiming.
Formal description
The initial formulation of the retiming problem as described by Leiserson and Saxe is as follows. Given a
directed graph whose vertices represent
logic gates or combinational delay elements in a circuit, assume there is a directed edge
between two elements that are connected directly or through one or more registers. Let the ''weight'' of each edge
be the number of registers present along edge
in the initial circuit. Let
be the
propagation delay through vertex
. The goal in retiming is to compute an integer ''lag'' value
for each vertex such that the retimed weight
of every edge is non-negative. There is a proof that this preserves the output functionality.
Minimizing the clock period with network flow
The most common use of retiming is to minimize the
clock period
In computing, the clock rate or clock speed typically refers to the frequency at which the clock generator of a processor can generate pulses, which are used to synchronize the operations of its components, and is used as an indicator of the pr ...
. A simple technique to optimize the clock period is to search for the minimum feasible period (e.g. using
binary search).
The feasibility of a clock period
can be checked in one of several ways. The
linear program below is feasible if and only if
is a feasible clock period. Let
be the minimum number of registers along any path from
to
(if such a path exists), and
is the maximum delay along any path from
to
with W(u,v) registers. The dual of this program is a
minimum cost circulation problem The circulation problem and its variants are a generalisation of network flow problems, with the added constraint of a lower bound on edge flows, and with flow conservation also being required for the source and sink (i.e. there are no special node ...
, which can be solved efficiently as a network problem. The limitations of this approach arise from the enumeration and size of the
and
matrices.
Minimizing the clock period with MILP
Alternatively, feasibility of a clock period
can be expressed as a mixed-integer
linear program (MILP). A solution will exist and a valid lag function
will be returned if and only if the period is feasible.
Other formulations and extensions
Alternate formulations allow the minimization of the register count and the minimization of the register count under a delay constraint. The initial paper includes extensions that allow the consideration of fan-out sharing and a more general delay model. Subsequent work has addressed the inclusion of register delays,
[K. N. Lalgudi, M. C. Papaefthymiou, , IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol.16, no.12, pp.1393-1408, Dec. 1997.] load-dependent delay models,
and hold constraints.
[M. C. Papaefthymiou, , IEEE/ACM International Conference on Computer-Aided Design, 1998.]
Problems
Retiming has found industrial use, albeit sporadic. Its primary drawback is that the state encoding of the circuit is destroyed, making debugging, testing, and verification substantially more difficult. Some retimings may also require complicated initialization logic to have the circuit start in an identical initial state. Finally, the changes in the circuit's topology have consequences in other logical and physical synthesis steps that make
design closure difficult.
Alternatives
Clock skew scheduling is a related technique for optimizing sequential circuits. Whereas retiming relocates the structural position of the registers, clock skew scheduling moves their temporal position by scheduling the arrival time of the clock signals. The lower bound of the achievable minimum clock period of both techniques is the maximum mean cycle time (i.e. the total combinational delay along any path divided by the number of registers along it).
See also
*
Logic Synthesis
*
Electronic Design Automation
Electronic design automation (EDA), also referred to as electronic computer-aided design (ECAD), is a category of software tools for designing Electronics, electronic systems such as integrated circuits and printed circuit boards. The tools wo ...
Notes
References
*{{cite journal, last1=Leiserson, first=1C. E. , first2=J. B. , last2=Saxe, year=1983, title=Optimizing Synchronous Systems, journal=Journal of VLSI and Computer Systems, volume=1, issue=1, pages=41–67
External links
Presentation on retiming from MITA Safe and Complete Gate-Level Register Retiming Algorithm
Timing in electronic circuits
Formal methods