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

  • Start Here4
  • UVM Foundations14
  • UVM Phases & Simulation Lifecycle26
  • Factory & Configuration15
  • Transaction-Level Modeling (TLM)13
  • UVM Sequences & Stimulus21
    • Sequence Items and the Driver Handshake
      • Item vs Driver Boundary: What Belongs Where
      • Constraints and randomize() with: Legal Space, Defaults and Corners
      • Derived Items: Narrower Stimulus Without Editing the Agent
      • Field Macros and Item Ownership: Who May Change an Item
      • The Driver Handshake: start_item, finish_item, get_next_item, item_done
      • Stalled Sequences: Hang Triage
    • Sequence Mechanics: Lifecycle, Sequencer, Responses and Control
    • Virtual Sequences and Coordination
  • UVM Agents & Protocol VIP21
  • Environment & Test Classes11
  • Checking & Coverage in UVM21
  • UVM Register Abstraction Layer (RAL)22
  • Advanced UVM in Practice13
  • Debug & Regression10
  • Coding Practice47
  • Verification in Industry Practice10
  • Senior Prep: Architecture, Leadership and Interviews32
Loading lesson

‹UVM Sequences & Stimulus
  1. Topics
  2. UVM Verification
  3. UVM Sequences & Stimulus
  4. Sequence Items and the Driver Handshake

Part 5 · Sequences · Intermediate

Sequence Items and the Driver Handshake

What a sequence item carries, how constraints fill it, who may change it, and how the start_item / finish_item / get_next_item / item_done handshake moves it to the pins. Ends with hang triage.

  • 6topics
  • 6lessons
On this page

    Every transfer on the DMA bench starts life as a small object. apb_rw_seq creates an apb_item, randomizes it inside the rules the item allows, and hands it to the sequencer. The apb_driver pulls it, turns it into an APB transfer, writes the read data back into it, and says it is done. This topic follows that object from creation to the pins and back, and finishes with the question every DV engineer meets in the first month: why is nothing moving?

    What you will be able to do

    • Decide what belongs in an item and what belongs in the driver, and defend control knobs such as idle in a review.

    • Write constraints that keep stimulus legal, override soft defaults per test, and explain local:: and := versus :/.

    • Narrow stimulus with derived items without touching the agent, and know who may change an item at each moment.

    • Draw the four-call handshake from memory, write a driver loop that calls item_done exactly once, and triage a stalled sequence in order.

    Learning path: item boundary, constraints, derived items, item ownership, the driver handshake, hang triage, then the sequence mechanics topic.
    Read in order. The handshake lesson holds the key picture of this section; the Sequence Mechanics topic goes inside the sequencer after it.

    The lessons

    Lesson

    What you learn

    Item vs driver boundary

    Intent in the item, mechanics in the driver: apb_item, axis_item, response fields, knobs, and the monitor-rebuild test.

    Constraints and randomize() with

    Class, soft and in-line constraints from the bench, local::, := versus :/, and checked randomize calls.

    Derived items

    Register-map and error items that extend apb_item, the one registration rule, and why sequences stay typed on the base item.

    Field macros and item ownership

    Who may write an item at each step, fresh items versus reuse, and cloning before a change, as axis_truncating_driver does.

    The driver handshake

    The sequence diagram of start_item, finish_item, get_next_item and item_done; the bench's two driver loops; item_done() with no argument.

    Stalled sequences: hang triage

    Where a stuck sequence can be waiting, the tools that tell you which, and the order to check them in.

    Interview

    The handshake question appears in nearly every DV loop: "What does finish_item wait for, and what happens if the driver never calls item_done?" finish_item returns only after the driver's item_done, so a missing call leaves the sequence blocked and, if the test is waiting on it, the run ends in a PH_TIMEOUT fatal. The driver handshake lesson draws it, and hang triage shows how to find it.

    Related topics

    • Up: UVM Sequences & Stimulus

    • Next topic: Sequence mechanics

    PreviousNext: Item vs Driver Boundary: What Belongs Where

    Up next

    Up nextItem vs Driver Boundary: What Belongs Where

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Sequence Mechanics: Lifecycle, Sequencer, Responses and Control
    • Virtual Sequences and Coordination