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

AboutRoadmapCareersInternshipsFAQContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • The NanoSoC Tour
  • Reading Path
  • SoC Glossary10
  • SoC Metrics Reference
  • SoC Cheatsheet
  • What SoC Integration Is12
  • Architecture and Budgets21
  • Memory Maps and Address Decode26
  • Interconnect and Bus Fabrics26
  • Clock and Reset Architecture24
    • Clock Sources and PLLs
    • Dividers, Muxes and Glitch-Free Switching
    • Clock Gating Architecture
    • Clock Domain Planning
      • Choosing Domains and Ratios
      • Phase-Related Versus Asynchronous Signoff
      • Domain Table and Ownership
    • Top-Level Crossings
    • Always-On Domain, Wake Policy and a Timer Extension
    • Reset Sources and Reset Tree
    • Reset Sequencing and Release
  • Power Architecture21
  • Interrupts, DMA and Peripherals15
  • Memories, Boot and Security21
  • IP Integration and Handoff21
  • Top-Level Verification and Bring-up21
  • Package, Pads and I/O18
  • Chip Signoff and Tapeout18
  • SoC Interview Prep16
  • Capstone: Integrate NanoSoC14
Loading lesson

←Clock Domain Planning
  1. Topics
  2. SoC Design
  3. Clock and Reset Architecture
  4. Clock Domain Planning
  5. Phase-Related Versus Asynchronous Signoff
On this page

    Part 5 of 14, lesson 11 of 24Part 5 of 14/Clock and Reset Architecture/Lesson 11 of 24All levels

    Phase-Related Versus Asynchronous Signoff

    One PLL makes edges coincide; separate trees make skew uncontrolled. Why NanoSoC signs off the pair as asynchronous.

    Why it matters

    The most expensive sentence in clock planning is these clocks are related, so we can treat them as synchronous. On NanoSoC it is half true: clk_cpu and clk_sys leave one VCO through two dividers, so their edges coincide by construction. But they travel through separate clock trees with independent insertion delay, and no balance constraint ties the two roots together. Signoff must assume the skew it cannot bound, which means asynchronous. This lesson draws that line precisely, because the FIFO-based CPU crossings exist only on the far side of it. Its one job is the signoff decision; the table that records it is next.

    The core idea

    Phase-related describes silicon: at the divider outputs, every clk_sys rising edge coincides with a clk_cpu rising edge, every 10.417 ns. Synchronous for signoff demands more: a known, bounded phase between the clocks at every flop, proven by the trees. NanoSoC does not build that proof. The dividers feed separate roots, the trees balance each domain against itself, and process, voltage and temperature move the two delays independently. A 5.208 ns CPU period leaves no room for an unbounded inter-tree skew, so the methodology declares the pair asynchronous and every crossing between them gets a FIFO or a handshake. The crystal clock is the PLL's reference, so the three frequencies are locked in the exact ratio 8 : 4 : 1 and do not drift apart. What is unknown is the fixed phase offset at the flops: the PLL feedback is taken before the separate clock trees, and jitter adds to it. That offset is neither known nor bounded, so clk_per shares only the frequency ratio with the divided clocks and signs off as asynchronous to both.

    Diagram
    # not-run: why the skew cannot be absorbed, NanoSoC teaching values
    clk_cpu period 5.208 ns; clk_sys period 10.417 ns
    Inter-tree skew is unbounded by construction (separate roots, separate trees).
    A synchronous crossing would need skew + jitter + margin < period for every
    flop pair, which no constraint states and no tree guarantees.
    Therefore: the pair is declared asynchronous (one clock-group declaration),
    the crossings X1/X2 use FIFOs, and the only extra constraints on them are the
    bounded-delay and skew limits on pointers and handshake data.

    What the review looks for

    • The clock-relationship document states per pair whether signoff is synchronous or asynchronous, with the tree evidence for each synchronous claim.

    • The pair is declared asynchronous in the constraints (one clock-group declaration). The only extra constraints on those paths are the bounded-delay and skew constraints on the FIFO pointers and handshake data; no other false path or multicycle crosses the pair, and the exception audit proves it.

    • The divider coincidence is still used where it is valid: testbench alignment and ratio sweeps, never latency bounds or timing closure.

    Verify and debug

    Run the CDC signoff with the pair declared asynchronous and confirm every crossing is covered by a synchroniser or FIFO rule; a clean report on a synchronous declaration followed by failures on the asynchronous one means the design relied on the skew it never bounded. On silicon, failures that move with voltage and temperature while passing at nominal point at exactly this optimism.

    Same frequency but no bounded phase relation, treated as synchronous. Symptom: setup and hold failures with uncontrolled skew, failing in silicon but not in zero-delay simulation. Caught by timing analysis with clock relationships and by CDC tools treating the pair as asynchronous. Fixed by declaring asynchronous and crossing properly, or by deriving from one PLL with a balanced tree when synchrony is truly required.

    If asked whether two clocks from one PLL are synchronous, answer with the two meanings: edges coincide, but signoff synchrony needs bounded skew at the flops. Then say what NanoSoC does and what hardware follows: asynchronous, hence FIFOs.

    Check yourself What would it take to sign clk_cpu and clk_sys off as synchronous?

    A balanced tree from one root with a stated skew bound, timing constraints written against that bound, and margins that hold across corners. The cost is tree effort and lost flexibility; NanoSoC spends FIFOs instead.

    Related topics

    • Choosing Domains and Ratios

    • Next: Domain Table and Ownership

    • CDC and RDC: CDC Signoff Methodology

    Previous

    101 / 289

    Next: Domain Table and Ownership

    Up next

    Up nextDomain Table and Ownership

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error