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
      • Flows as Code
      • Parameterised Runs in Yosys
      • Logging and QoR Extraction
      • Nightly Regression and Thresholds
      • Noise Versus Real Change
    • Debugging QoR
    • Simulation-Synthesis Mismatch
  • Interview and Judgment11
Loading lesson

‹Scripted Flows and Regression
  1. Topics
  2. Logic Synthesis
  3. Flows and Debugging
  4. Scripted Flows and Regression
  5. Flows as Code

Part 8 · Flows and Debugging · Intermediate

Flows as Code

A synthesis flow as versioned code: stages, parameters, and pinned versions.

On this page

    A flow is a program

    A flow runs the same stages in the same order on every invocation. Hand-driven runs with tweaked options cannot be compared.

    Stage

    What it does

    Read

    Load RTL, the cell library and constraints under recorded revisions.

    Elaborate and optimise

    Build the generic netlist and simplify it independent of cells.

    Map and time

    Bind to library cells and optimise against timing constraints.

    Report

    Write the log and the QoR record: area, slack and power.

    Parameters and pins

    Widths, effort levels and target corners are parameters of one script, not five scripts. Tool, library, constraint and script revisions are pins recorded with every run.

    Pin

    Example value

    Why it matters

    Tool revision

    Recorded version string

    A new release may remap identical RTL differently.

    Cell library

    course.lib at a recorded revision

    Areas are library units, so a library swap moves every number.

    Constraints

    Recorded constraint revision

    A changed clock target moves slack without touching RTL.

    Flow script

    Recorded script revision

    A stage reorder is a flow change, not an RTL change.

    The sketch below is illustrative only. It shows the shape of one parameterised invocation, not runnable tool syntax.

    Diagram
    illustrative sketch, not a runnable script
    run_flow --tool <recorded-version> --lib course.lib@<rev> --top top --width 8
             --log run_w8.log --qor qor_w8.json
    one script, width as a parameter, every revision on the command line

    Common mistakes

    Common pitfall

    Rerunning by hand with slightly different options and then comparing the numbers compares two different flows. Change one parameter at a time and keep the log of each run.

    Interview

    Likely probes: what makes two runs comparable, and what a pin list contains.

    • Same script revision, same tool and library revisions, same constraints.

    • Parameters carry the intent; pins carry the context of each run.

    • No log means no comparison, only an anecdote.

    Check yourself Two runs differ only in the library revision. Can their area numbers be compared directly?

    No. Areas are library units, so a library change moves every number. Repin one library and rerun before comparing.

    Check yourself One script takes the signal width as a parameter. What does that buy over one script per width?

    A single maintained flow with comparable logs. Per-width scripts drift apart and their numbers stop being comparable.

    Related topics

    • Parameterised runs in Yosys

    • Reading netlists and reports

    Previous

    114 / 139

    Next: Parameterised Runs in Yosys

    Up next

    Up nextParameterised Runs in Yosys

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Logging and QoR Extraction
    • Nightly Regression and Thresholds
    • Noise Versus Real Change