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
    • Synthesis Flow Overview
      • What Synthesis Does
      • The Five Flow Stages
      • Why Constraints Change the Netlist
      • A Small Design Through Yosys
      • Concepts, Not Commands
    • Synthesizable RTL and Inference
    • Reading Netlists and Reports
  • Logic Optimisation and Mapping20
  • Constraints and Timing15
  • Sequential, FSM and Memory19
  • Datapath Synthesis14
  • Area, Power and Test14
  • Verification, ECO and Handoff15
  • Flows and Debugging15
  • Interview and Judgment11
Loading lesson

‹Synthesis Flow Overview
  1. Topics
  2. Logic Synthesis
  3. Synthesis Foundations
  4. Synthesis Flow Overview
  5. Why Constraints Change the Netlist

Part 1 · Synthesis Foundations · Intermediate

Why Constraints Change the Netlist

Why the same RTL gives different netlists under different constraints, with examples.

On this page

    Constraints steer the tool

    Constraints tell the tool what counts as good enough: the clock target and the electrical limits. The tool then picks cells and structures that meet them.

    Constraint

    Meaning

    create_clock

    Defines the clock and its target period.

    set_input_delay

    How late inputs arrive relative to the clock.

    set_output_delay

    How early outputs must settle relative to the clock.

    set_max_fanout

    The most loads one output may drive.

    set_load

    The assumed load on an output pin.

    One RTL, two targets

    The same RTL under a relaxed clock target leaves a small slow cover acceptable. The block below is an illustrative sketch, not tool output.

    Diagram
    illustrative SDC sketch, not tool output
    create_clock -period 10.0 [get_ports clk]
    set_input_delay 2.0 -clock clk [all_inputs]
    set_output_delay 2.0 -clock clk [all_outputs]

    A tighter target may push the tool toward faster cells or a more parallel structure. The block below sketches that tighter target, again illustrative.

    Diagram
    illustrative SDC sketch, not tool output
    create_clock -period 5.0 [get_ports clk]
    set_input_delay 1.0 -clock clk [all_inputs]
    set_output_delay 1.0 -clock clk [all_outputs]

    The two runs implement the same function with different cells. Which cover wins varies by tool and library, so no transform always helps.

    A small area model

    The program below prices a netlist from cell counts at course.lib areas. Its three self-checks repeat the hand arithmetic style of this topic.

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    import sys
    
    AREA = {"NAND2": 2, "INV": 1, "DFF": 8}
    
    def design_area(counts):
        total = 0
        for cell in counts:
            total += counts[cell] * AREA[cell]
        return total
    
    checks = [
        (design_area({"NAND2": 5, "INV": 2, "DFF": 1}), 20),
        (design_area({"NAND2": 1}), 2),
        (design_area({"DFF": 2, "INV": 3}), 19),
    ]
    
    for i in range(len(checks)):
        got, want = checks[i]
        if got != want:
            print("FAIL: check " + str(i + 1) + " got " + str(got) + " want " + str(want))
            sys.exit(1)
    
    print("PASS: area model matches hand arithmetic on 3 checks")

    A tighter target may accept a larger area for more speed. The model prices that trade by counting cells, never by guessing.

    Common mistakes

    Common pitfall

    Tightening the clock past what the library can do buys area without buying speed. Check the report: if timing stops improving while area keeps growing, the target is past the useful point.

    Interview

    Likely probes: why one RTL maps two ways, and what tightening buys.

    • Constraints pick the cover, so different targets give different netlists.

    • A tighter target may trade more area for more speed.

    • No transform always helps; the library and the target decide.

    Check yourself Two runs of identical RTL give different netlists. Name two inputs that could differ.

    The constraints and the cell library. Either steers mapping, so either can change the result.

    Check yourself The area model prices 2 DFF plus 3 INV at course.lib areas. What is the total?

    19 library units: 2 x 8 + 3 x 1. The program checks exactly this case.

    Related topics

    • A small design through Yosys

    • SDC for Synthesis

    • Area Power Timing Tradeoffs

    Previous

    5 / 139

    Next: A Small Design Through Yosys

    Up next

    Up nextA Small Design Through Yosys

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • What Synthesis Does
    • Concepts, Not Commands