Skip to content
| Marketplace
Sign in
Visual Studio Code>Data Science>EDA Transaction Extension for impulseNew to Visual Studio Code? Get it now.
EDA Transaction Extension for impulse

EDA Transaction Extension for impulse

toem GmbH

|
43 installs
| (0) | Free
Extension for impulse to import, analyze, and visualize transaction-level and pin-level data from EDA simulations, supporting SystemC TLM, AXI, OCP, and custom protocols. Includes SCV and FTR readers, transaction analyzer, and transaction metrics.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

EDA Transaction Extension

This extension for the impulse framework enables import, analysis, and visualization of both transaction-level and pin-level data from Electronic Design Automation (EDA) simulations. It supports engineers and verification specialists working with SystemC TLM, protocol-level, and pin-level flows including AXI, ACE, CHI, OCP, and custom protocols.

About impulse

impulse is a modular, open-source framework for handling signal and measurement data from diverse sources. It provides infrastructure for reading, writing, analyzing, and visualizing signals, supporting both simple and highly structured data. Its extensible architecture allows developers to add support for new data formats by implementing custom readers and writers.

About EDA

Electronic Design Automation (EDA) refers to software tools for designing, simulating, and verifying electronic systems such as integrated circuits, FPGAs, and printed circuit boards. Modern EDA tools generate not only waveform data but also transaction-level and pin-level logs and traces. Transaction-level data captures high-level communication, protocol events, and relationships between operations; pin-level data records signal activity and protocol handshakes at the interface level. This extension enables importing, analyzing, and visualizing both types of simulation data.

Overview

The EDA Transaction Extension is organized into three main categories of functional blocks:

  1. Readers - Import and parse transaction data from simulation outputs and logs
  2. Metrics - Aggregate and visualize protocol statistics and performance metrics
  3. Analyzers - Decode protocol signals and reconstruct transactions for advanced analysis

Each functional block is documented in detail—see the sections below and linked documentation for complete descriptions and usage information.


Readers

Readers are responsible for importing transaction data from various file formats and sources. They parse simulation outputs and convert them into impulse's internal signal representation for further analysis and visualization.

SCV Reader

Status: Beta

Parses SystemC Verification (SCV) transaction logs in text format (.scv, .txlog). Extracts transaction streams, generators, events, attributes, and relations from SystemC TLM simulations. Supports hierarchical organization, filtering by stream/generator/attribute patterns, and efficient parsing of large log files.

Key Features:

  • Text-based transaction log parsing
  • Stream and generator hierarchy reconstruction
  • Attribute filtering and type handling
  • Relation tracking between transactions
  • Configurable backlog and history management

FTR Reader

Status: Beta

Imports Fast Transaction Recording (FTR) binary files, optimized for large, compressed datasets. Supports CBOR-encoded streams with LZ4 compression, providing efficient random access to transaction data. Ideal for high-performance simulation outputs requiring fast loading and minimal memory footprint.

Key Features:

  • Binary CBOR format with optional LZ4 compression
  • Random access to transaction streams
  • Time-windowed imports for focused analysis
  • Lazy loading for deferred data access
  • Dictionary-based efficient storage

Note: Readers for pin-level signal waveforms (VCD, FSDB, FST, etc.) are available in the EDA Waveform Extension.


Metrics

Metrics blocks compute and visualize statistical information about protocol transactions. They aggregate data from transaction analyzers to provide insights into system performance and behavior.

Transaction Metrics

Status: Experimental

Aggregates bandwidth, latency, throughput, and pending transaction counts from various Transaction Analyzers. Operates independently of protocol specifics, supporting any analyzer that produces transaction signals. Generates a unified statistics signal with detailed performance metrics for comparison and analysis.

Key Features:

  • Protocol-agnostic metrics aggregation
  • Bandwidth, latency, and throughput calculation
  • Pending transaction tracking
  • Beat count statistics
  • Interleaving detection
  • Per-command type breakdowns

Generated Metrics:

  • Count, begin/end timestamps
  • Latency (min/max/median)
  • Request/response beat counts
  • Bandwidth and pending transactions
  • Interleaving statistics

Analyzers

Analyzers decode protocol signals or transaction-level data to reconstruct and analyze transactions. They are available for both pin-level (hardware signal) analysis and transaction-level modeling (TLM) data.

Pin-Level Analyzers

Pin-level analyzers process hardware signals directly, reconstructing protocol transactions from individual signal transitions and handshakes.

AXI Analyzer

Status: Beta

Pin-level analyzer for AXI3/AXI4 protocols. Decodes address, data, and response channels to reconstruct read and write transactions. Detects bursts, tracks out-of-order transactions using protocol IDs, and verifies handshake sequences. Extracts protocol attributes (burst type, size, cache, protection) and generates performance metrics.

Supported Protocols: AXI3, AXI4

Key Features:

  • Automatic AXI3/AXI4 version detection
  • Multi-beat burst transaction reconstruction
  • Out-of-order transaction tracking (ID-based)
  • Protocol attribute extraction (burst, cache, prot, QoS)
  • Separate read/write transaction signals
  • Per-command metrics (bandwidth, latency, pending)

ACE Analyzer

Status: Experimental

Extends AXI4 analysis with ACE/ACE-Lite coherency support. Handles shareability domains, memory barriers, and snoop transactions for cache-coherent systems. Decodes coherency-specific signals including snoop channels (AC/CR/CD) and barrier acknowledgements.

Supported Protocols: AXI4, ACE-Lite, ACE

Key Features:

  • Automatic protocol variant detection (AXI4/ACE-Lite/ACE)
  • Shareability domain handling (Non-shareable, Inner/Outer Shareable, System)
  • Barrier transaction support (Memory/Sync barriers)
  • Snoop transaction reconstruction (AC/CR/CD channels)
  • Coherency state tracking (WasUnique, IsShared, PassDirty)
  • Write/Read snoop type decoding

CHI Analyzer

Status: Experimental

Decodes AMBA CHI (Coherent Hub Interface) protocol flits to reconstruct cache-coherent transactions. Supports multi-channel flit parsing across Request (REQ), Response (RSP), Data (DAT), and Snoop (SNP) channels. Handles advanced CHI features including quality of service, atomic operations, and distributed virtual memory.

Supported Protocols: CHI Issue B, CHI Issue E, CHI Issue H

Key Features:

  • Multi-channel flit decoding (REQ/RSP/DAT/SNP)
  • TX/RX perspective support (requester or receiver)
  • Configurable node ID and address widths
  • RSVDC (reserved customer field) support
  • Coherency transaction types (ReadShared, WriteUnique, etc.)
  • Cache state response tracking
  • Data forwarding and CCID handling

OCP Analyzer

Status: Experimental

Pin-level analyzer for Open Core Protocol (OCP). Supports various command types (RD, WR, RDEX, RDL, WRNP, WRC, BCST), burst modes, and threading. Handles 2D block transfers and request/data/response phase correlation using thread IDs.

Supported Protocol: OCP 2.x

Key Features:

  • Multiple command type support
  • Burst sequence handling (INCR, WRAP, XOR, STRM, BLCK)
  • Thread-based transaction matching (MReqInfo/SRespInfo)
  • Posted and non-posted write support
  • 2D block transfer support (BlockHeight/BlockStride)
  • Response code tracking (DVA, FAIL, ERR)

Transaction-Level Analyzers

Transaction-level analyzers process TLM-2.0 transaction data, correlating phases and extracting protocol events.

TLM Phase Analyzer

Status: Experimental

Processes SystemC TLM-2.0 transaction-level data by identifying and correlating transaction phases (BEGIN_REQ, END_REQ, BEGIN_RESP, END_RESP). Supports partial transactions, delay compensation, and bidirectional protocols with return path phases. Automatically detects protocol extensions (AXI3/AXI4/ACE/CHI) and extracts protocol-specific attributes.

Key Features:

  • TLM-2.0 phase correlation
  • UID-based transaction matching
  • Partial transaction support (multi-beat transfers)
  • Delay enumeration handling
  • Return path phase support for bidirectional protocols
  • Command translation (READ→SNOOP, WRITE→STASH for backward path)
  • Protocol extension detection (AXI3/AXI4/ACE/CHI)

Quick Start

1. Reading Files

Transaction Logs (SCV/FTR):

  1. Right-click .scv, .txlog, or .ftr file → 'Open with' → 'impulse Viewer'
  2. Accept license on first activation
  3. Explore imported transaction streams and hierarchies

Waveform Files (VCD, FSDB, FST):

  1. Use EDA Waveform Extension to open pin-level signal files
  2. Signals and scopes are automatically imported into record structure

2. Adding Transaction Metrics

Generate unified performance statistics across protocol sources:

  1. Right-click in Record Explorer → "Add" → "Analysis"
  2. Select "Transaction Metrics" as Content Producer
  3. In Source section, select scopes/folders containing transaction data
  4. Optionally set Include/Exclude filters (e.g., Include: "ace_.*,axi_.*")
  5. Start Analysis element
  6. Drag generated Statistics signal into view to visualize bandwidth, latency, pending counts, interleaving metrics

3. Pin-Level Analyzers (ACE/AXI/CHI/OCP)

Reconstruct transactions from hardware signals:

  1. Create or open a view
  2. Drag folder/scope with protocol signals into view to create View Folder
  3. In View Folder dialog, select analyzer (e.g., "ACE Analyzer") in Induce section
  4. Analyzer auto-detects required signals (ACLK, AWVALID, ARVALID, etc.)
  5. Optionally configure Include/Exclude properties
  6. Expand View Folder to see Transactions, Requests, Responses, per-command metrics

4. TLM Phase Analyzer

Process SystemC TLM-2.0 transaction data:

  1. Open record with TLM signals (from SCV/FTR readers)
  2. Drag TLM signal (with tlm_phase attribute) into view
  3. TLM Phase Analyzer auto-activates as deducer
  4. Expand View Signal to see correlated transactions (BEGIN_REQ, END_REQ, BEGIN_RESP, END_RESP)
  5. Configure via Deduce section properties (enable Requests/Responses, set bandwidth window)

License

Our guiding principle for this and all subsequent versions is:

  • Non-commercial use is free.
  • Commercial use requires a commercial license (including a free plan).
  • see LICENSE.md
  • see Plans

Documentation

Enter https://toem.io/resources/ for more information about impulse.

Status Summary

Component Status Description
SCV Reader Beta Text-based transaction log parser
FTR Reader Beta Binary transaction format reader
Transaction Metrics Experimental Performance metrics aggregation
AXI Analyzer Experimental AXI3/AXI4 pin-level analysis
ACE Analyzer Experimental ACE/ACE-Lite coherency analysis
CHI Analyzer Experimental AMBA CHI flit-level analysis
OCP Analyzer Experimental OCP pin-level analysis
TLM Phase Analyzer Experimental TLM-2.0 phase correlation

Contributions and feedback are welcome as this extension continues to evolve.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft