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
    • TLM 1: Ports, Exports and Analysis
      • Who Calls, Who Implements: Ports, Exports and Imps
      • connect() Rules: Which Way Each Link Points
      • put, get, peek and transport: Flow-Controlled TLM
      • Analysis Broadcast: One write(), Many Listeners
      • TLM1 Channels and Port Cardinality
      • Analysis Connectivity Patterns: imp_decl vs FIFOs
      • Connection Triage and FIFO Sizing: A Debug Playbook
      • The TLM Lessons' Bench File: Full Source
    • TLM 2.0 Sockets
  • UVM Sequences & Stimulus21
  • 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

‹Transaction-Level Modeling (TLM)
  1. Topics
  2. UVM Verification
  3. Transaction-Level Modeling (TLM)
  4. TLM 1: Ports, Exports and Analysis

Part 4 · TLM & Analysis · Intermediate

TLM 1: Ports, Exports and Analysis

How the DMA bench's components exchange transactions: ports, exports and imps, connect rules, put/get/transport, analysis broadcast, channels and cardinality, imp_decl versus analysis FIFOs, and connection triage.

  • 8topics
  • 8lessons
On this page

    Every arrow in the DMA bench is a TLM 1 connection. Three monitors publish on analysis ports, each agent hands its monitor's port up to the env, the scoreboard receives three streams through three imps, and each driver pulls items from its sequencer through a port and an imp. This topic explains each of those links well enough to wire a new one without guessing, to predict what the library reports when one is wrong, and to choose between the patterns senior reviewers argue about.

    What you will be able to do

    • Name the port, export and imp on any link by asking who calls and who implements, and connect them in the legal direction.

    • Pick blocking, non-blocking or transport calls for a flow-controlled path, and know which ones consume time.

    • Explain analysis broadcast exactly: zero-time write(), fan-out and fan-in, and a subscriber order you must not rely on.

    • Predict which unconnected ports fail at end of elaboration, and use the built-in FIFOs and channels.

    • Choose between an imp_decl scoreboard and an analysis-FIFO scoreboard, and triage a transaction that went missing.

    Learning path: roles, connect rules, then put/get and analysis broadcast in parallel, then channels, then imp_decl versus FIFOs, then triage.
    Read roles and connect rules first. The flow-controlled and analysis branches can be read in either order; the last two lessons use both.

    The lessons

    Lesson

    What you learn

    Who calls, who implements

    Port, export and imp defined by the call, on the bench's monitor and driver links, and the subscriber that heard nothing.

    connect() rules and pass-through

    Which way each link points, the agent's ap = mon.ap idiom, and what connect() refuses.

    put, get, peek and transport

    Blocking and non-blocking calls, peek versus get, transport, and the zero-time spin.

    Analysis broadcast

    One write() to many subscribers, the call order, the scoreboard's three imps and the override whose methods never ran.

    TLM1 channels and port cardinality

    min/max connection counts, resolve_bindings errors, uvm_tlm_fifo, the req/rsp and transport channels, master and slave ports.

    Analysis connectivity patterns: imp_decl vs FIFOs

    The bench's scoreboard rebuilt on analysis FIFOs, run side by side, and what each design costs at end of test.

    Connection triage and FIFO sizing

    A playbook for a missing transaction, occupancy-based depth sizing and loss policies.

    The TLM lessons' bench file

    tlm_tb.sv in full, with every test these lessons quote and how to run it.

    Interview

    Typical TLM questions at a senior loop: port versus export versus imp; which way a port-to-port connect goes; what happens to an unconnected port; in what order subscribers receive write(); how one scoreboard takes three streams; and when you would use analysis FIFOs instead of imp_decl. Each has a home lesson above.

    Related topics

    • Up: Transaction-Level Modeling

    • Next topic: TLM 2.0 sockets

    PreviousNext: Who Calls, Who Implements: Ports, Exports and Imps

    Up next

    Up nextWho Calls, Who Implements: Ports, Exports and Imps

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • TLM 2.0 Sockets