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 Puzzle Bank
  • SystemVerilog Language Puzzles25
  • Difficulty Guide
  • Full Topic Map
  • Interview-Day Tips
  • Study Route: One Week Before the Interview
  • Study Route: Two Weeks
  • Study Route: Four Weeks (Full Course)4
    • Four-Week Route: Week 1
    • Four-Week Route: Week 2
    • Four-Week Route: Week 3
    • Four-Week Route: Week 4
  • OOP & Testbench Puzzles25
  • Concurrency & Timing Puzzles25
  • Randomization & Constraint Puzzles25
  • SVA Assertion Puzzles25
  • Functional Coverage Puzzles25
  • Logic & Aptitude Puzzles25
  • Scenario & Debug Puzzles25
  • UVM Testbench Puzzles25
  • Clock, Reset & CDC Puzzles25
  • Bus and Interface Protocol Puzzles25
  • Interview Prep: Puzzle Rounds7
  • DV Puzzle Cheatsheet
Loading lesson

←Study Route: Four Weeks (Full Course)
  1. Topics
  2. DV Interview Puzzles
  3. Study Route: Four Weeks (Full Course)
  4. Four-Week Route: Week 1

VLSI DV Interview PuzzlesAll levels

Four-Week Route: Week 1

Week 1 of the full-course route, with every puzzle id by day.

Week 1

Day

Topics

Puzzles (by id)

Day 1

SystemVerilog Language Puzzles: Datatype and Bit Puzzles; SystemVerilog Language Puzzles: Fork Join Puzzles

datatype-and-bit-puzzles-1: X-Bit Comparisons and Mixed Arithmetic (M); datatype-and-bit-puzzles-2: Signed vs Unsigned Comparison Trap (M); datatype-and-bit-puzzles-3: Type Cast Controls Sign Extension (M); datatype-and-bit-puzzles-4: Signed Part-Select Is Still Unsigned (M); datatype-and-bit-puzzles-5: X Collapse into 2-State int (M); datatype-and-bit-puzzles-6: Expression Width Drops the Carry (M); fork-join-puzzles-1: join vs join_any vs join_none (E); fork-join-puzzles-2: Loop Variable Capture in Detached Threads (M); fork-join-puzzles-3: wait fork Synchronization Point (E); fork-join-puzzles-4: disable Named Fork Scope (M); fork-join-puzzles-5: join_any Without Cleanup (M); fork-join-puzzles-6: Inner disable fork Does Not Kill Outer Sibling (M)

Day 2

SystemVerilog Language Puzzles: Queue and Array Puzzles; SystemVerilog Language Puzzles: String and Casting Puzzles; OOP & Testbench Puzzles: Handle and Copy Puzzles

queue-and-array-puzzles-1: Queue Mutation Plus Dynamic Resize (E); queue-and-array-puzzles-2: Queue Assignment Copies by Value (E); queue-and-array-puzzles-3: Pop from Empty Queue (E); queue-and-array-puzzles-4: Dynamic Array Resize with Class Handles (M); queue-and-array-puzzles-5: Associative Array Iteration Order (M); queue-and-array-puzzles-6: Locator Methods Return New Queues (M); string-and-casting-puzzles-1: String Substr with Runtime Class Cast (E); string-and-casting-puzzles-2: putc/getc Index Semantics (E); string-and-casting-puzzles-3: Case-Sensitive vs Case-Insensitive Compare (E); string-and-casting-puzzles-4: Enum Safety with $cast (M); string-and-casting-puzzles-5: Upcast, Virtual Dispatch and Downcast (M); string-and-casting-puzzles-6: String Number Parsing Stops Early (E); handle-and-copy-puzzles-1: Shallow Copy in Nested Payload (E); handle-and-copy-puzzles-2: Queue of Handle Cells Still Aliases (M); handle-and-copy-puzzles-3: Analysis Port Lifetime Reuse (M); handle-and-copy-puzzles-4: Null Handle During Partial Deep Copy (M); handle-and-copy-puzzles-5: Handle Equality vs Content Equality (E); handle-and-copy-puzzles-6: Clone Without Overridden do_copy (M)

Day 3

OOP & Testbench Puzzles: Virtual Method Puzzles; OOP & Testbench Puzzles: Parameterized Class Puzzles; OOP & Testbench Puzzles: Factory Override Puzzles

virtual-method-puzzles-1: Non-Virtual vs Virtual Through Base Handle (E); virtual-method-puzzles-2: Missing super.new with Required Base Args (E); virtual-method-puzzles-3: Virtual Call from Base Constructor (H); virtual-method-puzzles-4: Same Name, Different Prototype: Hiding Not Overriding (M); virtual-method-puzzles-5: Template Method with Non-Virtual Wrapper (E); virtual-method-puzzles-6: super Method Call in Override Chain (E); parameterized-class-puzzles-1: Global Static vs Per-Specialization Static (E); parameterized-class-puzzles-2: Same Specialization via typedef Alias (M); parameterized-class-puzzles-3: $cast Between Specializations via a Common Base (M); parameterized-class-puzzles-4: Unrelated Specializations Cannot Be Assigned (M); parameterized-class-puzzles-5: Static Function Counters Per Specialization (M); parameterized-class-puzzles-6: Wrong UVM Macro for Parameterized Object (H); factory-override-puzzles-1: Type Override vs Instance Override Precedence (M); factory-override-puzzles-2: Chained Type Overrides (M); factory-override-puzzles-3: Replace Flag in Repeated set_type_override (M); factory-override-puzzles-4: Overlapping Instance Overrides: First Match Wins (H); factory-override-puzzles-5: Component Override in build_phase (M); factory-override-puzzles-6: Override Timing Relative to create Calls (E)

Day 4

Concurrency & Timing Puzzles: Event Scheduling Puzzles; Concurrency & Timing Puzzles: Race Condition Puzzles; Concurrency & Timing Puzzles: Clocking Block Puzzles

event-scheduling-puzzles-1: Assertion Samples Preponed Values (M); event-scheduling-puzzles-2: Does #0 Beat NBA? (E); event-scheduling-puzzles-3: Trigger Then Wait: The Missed Event (M); event-scheduling-puzzles-4: Program Drive Is Seen One Edge Later (M); event-scheduling-puzzles-5: Last NBA in a Process Wins (E); event-scheduling-puzzles-6: Assertion Action Block Cannot Rewind Edge (M); race-condition-puzzles-1: Competing Active Writers on x (M); race-condition-puzzles-2: Blocking Writer vs NBA Writer Same Signal (M); race-condition-puzzles-3: Reading q Before the NBA (Not a Race) (E); race-condition-puzzles-4: Fork join_none Loop Variable Capture and kill() (M); race-condition-puzzles-5: Lost Update in Forked Counter (M); race-condition-puzzles-6: Two always_ff Writers, One Register (M); clocking-block-puzzles-1: Why Every Sample Is One Cycle Old (M); clocking-block-puzzles-2: Interpreting |=> ##1 in Clocking Domain (E); clocking-block-puzzles-3: disable fork Kills Unrelated Background Threads (M); clocking-block-puzzles-4: input #0 vs input #1step Snapshot (M); clocking-block-puzzles-5: Nonzero Input Skew Looks Back in Time (M); clocking-block-puzzles-6: Mixing Direct Drive and cb Drive (H)

Day 5 (review)

SystemVerilog Language Puzzles Q&A; OOP & Testbench Puzzles Q&A; Concurrency & Timing Puzzles Q&A; Re-do every puzzle scored 2 or lower this week.

Re-do misses

Attempt every puzzle cold with the timer for its difficulty, score it 0 to 4, then read the solution, the checked-by line and the trap. See the difficulty guide.

E, M and H after a link mean easy, medium and hard. The plan is generated from the course data: if a section is added, the days re-balance.

Related topics

  • Four-week route overview

  • Week 2

Previous

13 / 293

Next: Fork Join Puzzles

Up next

Up nextFork Join Puzzles

Sign in to save progress

Practice this lessonPrevious lessonReport an error

See also

  • Four-Week Route: Week 2
  • Four-Week Route: Week 3
  • Four-Week Route: Week 4