HOME

TheInfoList



OR:

Retiming is the technique of moving the structural location of latches or registers in a digital circuit to improve its performance, area, and/or
power Power most often refers to: * Power (physics), meaning "rate of doing work" ** Engine power, the power put out by an engine ** Electric power * Power (social and political), the ability to influence people or events ** Abusive power Power may a ...
characteristics in such a way that preserves its functional behavior at its outputs. Retiming was first described by
Charles E. Leiserson Charles Eric Leiserson is a computer scientist, specializing in the theory of parallel computing and distributed computing, and particularly practical applications thereof. As part of this effort, he developed the Cilk multithreaded language. ...
and James B. Saxe in 1983. The technique uses a
directed graph In mathematics, and more specifically in graph theory, a directed graph (or digraph) is a graph that is made up of a set of vertices connected by directed edges, often called arcs. Definition In formal terms, a directed graph is an ordered pa ...
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. 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 In mathematics, and more specifically in graph theory, a directed graph (or digraph) is a graph that is made up of a set of vertices connected by directed edges, often called arcs. Definition In formal terms, a directed graph is an ordered pa ...
G:=(V,E) whose vertices represent
logic gates A logic gate is an idealized or physical device implementing a Boolean function, a logical operation performed on one or more binary inputs that produces a single binary output. Depending on the context, the term may refer to an ideal logic gate ...
or combinational delay elements in a circuit, assume there is a directed edge e:=(u,v) between two elements that are connected directly or through one or more registers. Let the ''weight'' of each edge w(e) be the number of registers present along edge e in the initial circuit. Let d(v) be the
propagation delay Propagation delay is the time duration taken for a signal to reach its destination. It can relate to networking, electronics or physics. ''Hold time'' is the minimum interval required for the logic level to remain on the input after triggering ed ...
through vertex v. The goal in retiming is to compute an integer ''lag'' value r(v) for each vertex such that the retimed weight w_r(e):=w(e)+r(v)-r(u) 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. A simple technique to optimize the clock period is to search for the minimum feasible period (e.g. using
binary search In computer science, binary search, also known as half-interval search, logarithmic search, or binary chop, is a search algorithm that finds the position of a target value within a sorted array. Binary search compares the target value to the ...
). The feasibility of a clock period T can be checked in one of several ways. The
linear program Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear relationships. Linear programming i ...
below is feasible if and only if T is a feasible clock period. Let W(u,v) be the minimum number of registers along any path from u to v (if such a path exists), and D(u,v) is the maximum delay along any path from u to v with W(u,v) registers. The dual of this program is a minimum cost circulation problem, which can be solved efficiently as a network problem. The limitations of this approach arise from the enumeration and size of the W and D matrices.


Minimizing the clock period with MILP

Alternatively, feasibility of a clock period T can be expressed as a mixed-integer
linear program Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear relationships. Linear programming i ...
(MILP). A solution will exist and a valid lag function r(v) 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 ''IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems'' (sometimes abbreviated ''IEEE TCAD'' or ''IEEE Transactions on CAD'') is a monthly peer-reviewed scientific journal covering the design, analysis, and use of computer ...
, 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 Design Closure is a part of the digital electronic design automation workflow by which an integrated circuit (i.e. VLSI) design is modified from its initial description to meet a growing list of design constraints and objectives. Every step i ...
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 In computer engineering, logic synthesis is a process by which an abstract specification of desired circuit behavior, typically at register transfer level (RTL), is turned into a design implementation in terms of logic gates, typically by a com ...
* Electronic Design Automation


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 MIT

A Safe and Complete Gate-Level Register Retiming Algorithm
Timing in electronic circuits Formal methods