ArticleslgStudy

engineering

Retiming

Retiming is a engineering topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Retiming rather than just read about it. In short: 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 characteristics in such a way that preserves its functional behavior at its outputs. Retiming was first described by Charles E.

Key takeaways

  • Retiming belongs to engineering; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Retiming to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Retiming from memory before moving on to harder problems.

Reference excerpt

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 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 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. 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 G := ( V , E ) {\displaystyle G:=(V,E)} whose vertices represent logic gates or combinational delay elements in a circuit, assume there is a directed edge e := ( u , v ) {\displaystyle e:=(u,v)} between two elements that are connected directly or through one or more registers. Let the weight of each edge w ( e ) {\displaystyle w(e)} be the number of registers present along edge e {\displaystyle e} in the initial circuit. Let d ( v ) {\displaystyle d(v)} be the propagation delay through vertex v {\displaystyle v} . The goal in retiming is to compute an integer lag value r ( v ) {\displaystyle r(v)} for each vertex such that the retimed weight w r ( e ) := w ( e ) + r ( v ) − r ( u ) {\displaystyle 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). The feasibility of a clock period T {\displaystyle T} can be checked in one of several ways. The linear program below is feasible if and only if T {\displaystyle T} is a feasible clock period. Let W ( u , v ) {\displaystyle W(u,v)} be the minimum number of registers along any path from u {\displaystyle u} to v {\displaystyle v} (if such a path exists), and D ( u , v ) {\displaystyle D(u,v)} is the maximum delay along any path from u {\displaystyle u} to v {\displaystyle 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 {\displaystyle W} and D {\displaystyle D} matrices.

Minimizing the clock period with MILP Alternatively, feasibility of a clock period T {\displaystyle T} can be expressed as a mixed-integer linear program (MILP). A solution will exist and a valid lag function r ( v ) {\displaystyle 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, load-dependent delay models, and hold constraints.

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

Notes

References Leiserson, Charles E.; Saxe, James B. (1981). "Optimizing synchronous systems". 22nd Annual Symposium on Foundations of Computer Science (SFCS 1981). pp. 23–36. doi:10.1109/SFCS.1981.34. Leiserson, Charles E.; Saxe, James B. (1983). "Optimizing synchronous systems". Journal of VLSI and Computer Systems. 1 (1): 41–67. Zbl 0532.94015.

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with Retiming

Start with the simplest possible case. Write down what Retiming claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In engineering, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Retiming before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Retiming ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Retiming

In research
Retiming appears in engineering research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Retiming in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Retiming is common in secondary-school and first-year university syllabi. It links to neighbouring topics Formal methods, Timing in electronic circuits, so understanding it makes those chapters shorter.
In everyday life
Look for Retiming outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “Retiming” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Retiming in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Retiming means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Retiming out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Retiming in simple terms?

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 characteristics in such a way that preserves its functional behavior at its outputs. Retiming was first described by Charles E.

Why does Retiming matter?

Because it connects several engineering ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Retiming?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Retiming.

Tags

  • Formal methods
  • Timing in electronic circuits

Keep exploring