Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • Logic Synthesis Glossary
  • Logic Synthesis Cheatsheet
  • Synthesis Foundations14
  • Logic Optimisation and Mapping20
  • Constraints and Timing15
  • Sequential, FSM and Memory19
    • Flops, Resets and Enables
    • FSM Synthesis
    • Memory and Macro Inference
    • Retiming and Pipelining
      • What Retiming Moves
      • Latency, Throughput and Register Count
      • Reset, Initial State and Equivalence
      • Pipelining a Long Path by Hand
      • A Retiming Model and the Tool Flow
  • Datapath Synthesis14
  • Area, Power and Test14
  • Verification, ECO and Handoff15
  • Flows and Debugging15
  • Interview and Judgment11
Loading lesson

‹Retiming and Pipelining
  1. Topics
  2. Logic Synthesis
  3. Sequential, FSM and Memory
  4. Retiming and Pipelining
  5. What Retiming Moves

Part 4 · Sequential, FSM and Memory · Intermediate

What Retiming Moves

How forward and backward retiming move registers across gates, keeping the steady-state stream.

On this page

    Registers move, paths stay

    Retiming repositions registers without adding or removing any along a path. Each input-to-output path crosses the same number of registers before and after.

    Only the split of logic between consecutive registers changes. That split sets the clock period.

    Forward and backward moves

    A forward move pushes registers across a gate toward the outputs. A backward move pulls a register back across a gate toward the inputs.

    Move

    Across

    Register count

    Forward

    A 2-input gate: two input registers become one output register

    Falls by one.

    Backward

    A 2-input gate: one output register becomes two input registers

    Rises by one.

    Forward

    A 2-way fanout stem: one register becomes one per branch

    Rises by one.

    Backward

    A 2-way fanout stem: one register per branch merges into one

    Falls by one.

    Across plain wire fanout there is no logic to cross. A forward move still duplicates one register per branch, and a backward move merges them.

    A balanced pair

    Take three EXAMPLE blocks of 6, 2 and 4 ns between two registers. The middle register starts between the second and third block.

    Diagram
    EXAMPLE block delays (classroom parameters, not a process): A = 6 ns, B = 2 ns, C = 4 ns
    before: stage 1 = 6 + 2 = 8 ns, stage 2 = 4 ns
    period before = max(8, 4) = 8 ns, EXAMPLE frequency = 1 / 8 ns = 125 MHz
    move the middle register back across B
    after: stage 1 = 6 ns, stage 2 = 2 + 4 = 6 ns
    period after = max(6, 6) = 6 ns, EXAMPLE frequency = 1 / 6 ns = 166.67 MHz
    one register moved, none added: count 1 -> 1 on this path

    The period falls from 8 ns to 6 ns. Latency stays at two register stages either way.

    Common mistakes

    Common pitfall

    Moving a register across a gate with side fanout changes every branch at once. Recount each branch, or one path keeps the old timing while another changes.

    Interview

    Likely probes: which direction adds registers, and what stays fixed.

    • Backward moves across gates and forward moves across fanout add registers.

    • Every input-to-output path keeps its register count, so latency is fixed.

    • The 8 and 4 ns pair rebalances to 6 and 6 ns with one moved register.

    Check yourself A register moves back across a 2-input gate. How many registers replace it, and what happens to path latency?

    Two registers replace it, one per input. Path latency is unchanged: each path still crosses one register at the new position.

    Check yourself The balanced pair above runs at 125 MHz before the move. What sets the 166.67 MHz after it?

    The slower of the two new 6 ns stages. Both stages are 6 ns, so the period is 6 ns.

    Related topics

    • Latency, throughput and register count

    • Flops, resets and enables

    Previous

    66 / 139

    Next: Latency, Throughput and Register Count

    Up next

    Up nextLatency, Throughput and Register Count

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Reset, Initial State and Equivalence
    • Pipelining a Long Path by Hand
    • A Retiming Model and the Tool Flow