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
  • Datapath Synthesis14
  • Area, Power and Test14
  • Verification, ECO and Handoff15
  • Flows and Debugging15
    • Scripted Flows and Regression
    • Debugging QoR
      • The QoR Debug Method
      • Reading Reports to Localise
      • Constraint Causes
      • RTL Structure Causes
      • Fanout, Black Boxes and Classifying Paths
    • Simulation-Synthesis Mismatch
  • Interview and Judgment11
Loading lesson

‹Debugging QoR
  1. Topics
  2. Logic Synthesis
  3. Flows and Debugging
  4. Debugging QoR
  5. The QoR Debug Method

Part 8 · Flows and Debugging · Intermediate

The QoR Debug Method

Reproduce a QoR result, isolate the worst path, classify it, fix one thing.

On this page

    Reproduce first

    A QoR number means nothing until the run reproduces. Pin the RTL revision, the constraint sources, the library, and the flow script.

    Rerun the exact script before changing anything. If the number moves between identical runs, the flow itself has noise to fix first.

    Pin down

    Why it matters

    RTL revision

    Edits move paths, so the same source must give the same netlist.

    Constraints

    Clock and delay asks set every slack, so a changed ask looks like a changed design.

    Library and script

    Cell choice and pass order vary results, so both stay fixed during debug.

    Isolate the worst path

    Sort paths by slack and start with the worst one. Slack is required time minus arrival time, in the same EXAMPLE time units.

    One EXAMPLE path asks for 5.0 ns and arrives at 5.6 ns. The calc block works the slack.

    Diagram
    EXAMPLE parameters: required time 5.0 ns, arrival time 5.6 ns
    slack = required - arrival = 5.0 - 5.6 = -0.6 ns
    verdict: negative slack, so this path misses its ask

    Fixing a kinder path first wastes the run. The worst path sets the clock the design can close.

    Classify, then fix one thing

    Each worst path falls into one of four classes. The class picks the fix, so naming it comes before editing.

    Class

    Typical sign

    Fix direction

    Constraint

    Missing clock, loose path, or impossible ask

    Correct the ask, then rerun before touching RTL.

    RTL structure

    Latch, deep priority chain, or repeated arithmetic

    Restructure the source logic.

    Library

    Missing cell or weak drive option

    Widen the cell choice or revisit the library setup.

    Tool behaviour

    Pass order or mapping choice varies the result

    Narrow the flow change and compare against the pinned baseline.

    Change one thing per rerun. Two simultaneous fixes hide which one worked.

    Common mistakes

    Common pitfall

    Retuning tool knobs before reproducing the run bakes noise into the baseline. Pin revisions, constraints, library, and script first, then debug.

    Interview

    Likely probes: the debug order and the slack definition.

    • Reproduce, isolate the worst path, classify, then fix one thing.

    • Slack is required minus arrival; the worst path has the smallest slack.

    • The cause class selects the fix: ask, structure, library, or flow.

    Check yourself Required time is 5.0 ns and arrival is 5.6 ns. What is the slack?

    Slack is 5.0 minus 5.6, which is -0.6 ns. The path misses its ask.

    Check yourself Two fixes land in one rerun and timing improves. What went wrong with the method?

    The run cannot say which fix helped. One change per rerun keeps cause and effect linked.

    Related topics

    • Reading reports to localise

    • Delay models and slack

    • Scripted flows and regression

    Previous

    119 / 139

    Next: Reading Reports to Localise

    Up next

    Up nextReading Reports to Localise

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Constraint Causes
    • RTL Structure Causes
    • Fanout, Black Boxes and Classifying Paths