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

  • RTL Foundations36
  • Combinational Design25
  • Sequential Design27
  • FSM & Control27
  • Timing & Clocking39
    • STA Foundations
    • Setup, Hold and Slack
    • Skew and Variation
    • Timing Exceptions
    • Clock Gating
    • RTL for Timing
    • Clock Architecture
      • Clock-Domain Plan
      • Glitch-Free Clock Mux
      • Generated and Virtual Clocks
      • PLL Lock and Reset Coordination
      • Source-Synchronous Interfaces
      • DVFS Transition Protocol
      • Clock Constraint Examples
  • Reset & CDC34
  • Memory & Buses57
  • Advanced RTL28
  • Senior & Interview76
  • Glossary and Notation
Loading lesson

‹Clock Architecture
  1. Topics
  2. RTL Design
  3. Timing & Clocking
  4. Clock Architecture
  5. Source-Synchronous Interfaces

Part 5 · Timing & Clocking · Intermediate

Source-Synchronous Interfaces

Capture data relative to a forwarded strobe and constrain board/package delay, skew, and input/output windows.

Why this matters

When data travels with its own clock, the receiver captures against that forwarded strobe, not the system clock. In the SDR budget the setup margin is 1.55 ns and the hold margin 4.10 ns, and all eight bits must meet both.

After this lesson you can: build a setup and hold budget for a source-synchronous receive, and say where the capture domain ends and the transfer into the core begins.

In a source-synchronous interface, the transmitter sends data and a clock/strobe together. The receiver captures relative to that forwarded clock, not the chip's unrelated system clock.

The worked interface receives eight data bits beside rx_strobe_i. IO cells capture the bus in the strobe domain, then an elastic buffer transfers complete beats into the 400 MHz core without treating the strobe as synchronous to the PLL.

Concern

RTL/constraint response

Launch relationship

Register data and forwarded clock from controlled source logic

Board/package skew

Input/output delay min/max around forwarded clock

DDR

Capture both edges with approved IO cells

Deskew

Delay training or phase adjustment where required

Transfer to core

Elastic buffer or CDC after the IO capture domain

Keep the high-speed capture in the IO/forwarded-clock domain. Cross into the core using a documented FIFO or handshake rather than pretending the clocks are synchronous.

Tip

A source-synchronous timing diagram needs four boundaries: earliest/latest data arrival and setup/hold capture edges. One nominal waveform is not a timing constraint.

One SDR receive budget

Illustrative assumptions, all times in ns at the receiver pins: an 8.00 ns strobe launches data on its falling edge at 4.00 and captures on the next rising edge at 8.00. External clock-to-data plus data-minus-strobe board/package skew gives arrival offsets of 0.35 to 2.10 ns relative to the falling strobe at the pin. Assume an ideal pin-to-capture path for this paper budget, setup 0.20, hold 0.10 and relative uncertainty 0.15 for each check. Internal IO/data/clock insertion delays must be included by STA in the actual design.

Receiver-pin timing for the SDR budget: the strobe, the data-change bounds, and the setup and hold boundaries around the 8.00 ns capture edge (times in ns)

Read the picture left to right along the time axis. The hatched areas are when the data may be changing; the shaded area is when the current beat is guaranteed stable.

  • The data finishes changing at 6.10 (4.00 + 2.10) and the next beat cannot start changing before 12.35 (12.00 + 0.35).

  • The capture edge at 8.00 sits inside the stable region, but the check is against the two boundaries: 7.65 for setup and 8.25 for hold.

  • Setup margin is the gap from 6.10 to 7.65, which is 1.55 ns. Hold margin is the gap from 8.25 to 12.35, which is 4.10 ns.

  • The margins are paper numbers from the assumptions above, not measured slack.

Paper check

Calculation / illustrative margin

Setup

8.00 - 0.20 - 0.15 - (4.00 + 2.10) = 1.55 ns

Hold

(12.00 + 0.35) - (8.00 + 0.10 + 0.15) = 4.10 ns

Boundary

All eight bits must satisfy both bounds; nominal bus arrival is insufficient

These arithmetic margins are assumptions, not measured slack or physical signoff. DDR needs separate rising/falling budgets; deskew changes the edge relationship and must be reflected in constraints. The forwarded strobe closes pin-to-IO capture timing only. Subsequent complete-beat transfer into the unrelated core needs CDC/FIFO analysis, not a setup budget against the core PLL. The constraint example uses this same falling-launch/rising-capture contract.

Check yourself Why is a forwarded strobe often followed by a FIFO before core logic?

The strobe captures pins in its own timing domain; the FIFO absorbs phase/frequency differences and safely transfers data into the core clock domain.

Remember

  • Keep the high-speed capture in the IO or forwarded-clock domain, then cross into the core with a FIFO or handshake.

  • The budget needs earliest and latest data arrival and the setup and hold capture edges. One nominal waveform is not a constraint.

  • DDR needs separate rising and falling budgets, and deskew changes the edge relationship.

Rule of thumb: the forwarded strobe closes pin-to-IO timing only; the crossing into the core needs CDC analysis.

How this was checked

The SDR numbers are paper assumptions: ideal pin-to-capture path, setup 0.20, hold 0.10 and relative uncertainty 0.15. They are not measured slack or physical signoff, and STA must add the internal IO, data and clock insertion delays.

Keep going

  • Interview: run a mock interview on this topic

Related topics

  • Async FIFO

  • DVFS transition protocol

Previous

152 / 350

Next: DVFS Transition Protocol

Up next

Up nextDVFS Transition Protocol

Sign in to save progress

Practice this lessonReport an error

See also

  • Clock-Domain Plan
  • Glitch-Free Clock Mux
  • Generated and Virtual Clocks