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
    • Simulation-Synthesis Mismatch
      • Sensitivity Lists and Races
      • Blocking and Non-Blocking Assignments
      • X Pessimism, Optimism, and Init
      • Case Priority and Wildcards
      • Directives, Widths, and Gate Simulation
  • Interview and Judgment11
Loading lesson

‹Flows and Debugging
  1. Topics
  2. Logic Synthesis
  3. Flows and Debugging
  4. Simulation-Synthesis Mismatch

Part 8 · Flows and Debugging · Intermediate

Simulation-Synthesis Mismatch

Sensitivity lists, blocking versus non-blocking, X handling, case priority, and gate simulation.

  • 5topics
  • 5lessons

Simulation and synthesis can disagree on the same RTL. This topic collects the classic disagreements and the coding rule that prevents each one.

Mismatch

Simulation shows

The gates build

Preventing rule

Incomplete sensitivity list

A stale value until a listed signal moves

The combinational body

Complete the list or use always_comb

Blocking versus non-blocking

Order-dependent updates in one step

Parallel registers or plain gates

= in combinational code, <= in clocked code

X in a condition or select

The else path or the default branch

One concrete path for a real 0 or 1

Reset before use and never decide on x

Overlapping case items

First match wins

First match wins, unless a parallel promise said otherwise

Write the priority plainly or prove one-hot

Build-hidden code and widths

Test helpers and wide constants

Trimmed logic with no test region

Keep non-build code out and size every constant

Two views of one RTL intent compared by gate simulation.
RTL simulation and the gate netlist are two views of one intent; gate simulation compares them.

Lesson

What it covers

Sensitivity lists and races

Stale outputs, ignored event lists, and races between concurrent blocks.

Blocking and non-blocking

Immediate versus clocked updates with a worked shift trace.

X pessimism, optimism, and init

Four-state surprises and the reset rule.

Case priority and wildcards

Overlapping items, casez and casex, with a demo and a proof.

Directives, widths, and gate simulation

Hidden regions, truncation, and zero-delay versus timed simulation.

Check yourself A testbench passes but the gate netlist misbehaves on one vector. Where do you look first?

The mismatch list: sensitivity, blocking assignments, X handling, and case priority. Reproduce the vector at the gate level before blaming the tool.

Interview

Carry one sentence per lesson: synthesis ignores event lists, blocking is for combinational code and non-blocking for clocks, X resolves or spreads by table, overlap means priority, and timed delays show what zero-delay runs hide.

PreviousNext: Sensitivity Lists and Races

Up next

Up nextSensitivity Lists and Races

Sign in to save progress

Practice this lessonReport an error

See also

  • Scripted Flows and Regression
  • Debugging QoR