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:
- Readers - Import and parse transaction data from simulation outputs and logs
- Metrics - Aggregate and visualize protocol statistics and performance metrics
- 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):
-
Right-click
.scv,.txlog, or.ftrfile → 'Open with' → 'impulse Viewer' - Accept license on first activation
- Explore imported transaction streams and hierarchies
Waveform Files (VCD, FSDB, FST):
- Use EDA Waveform Extension to open pin-level signal files
- Signals and scopes are automatically imported into record structure
2. Adding Transaction Metrics
Generate unified performance statistics across protocol sources:
- Right-click in Record Explorer → "Add" → "Analysis"
- Select "Transaction Metrics" as Content Producer
- In Source section, select scopes/folders containing transaction data
-
Optionally set Include/Exclude filters (e.g.,
Include: "ace_.,axi_.") - Start Analysis element
- 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:
- Create or open a view
- Drag folder/scope with protocol signals into view to create View Folder
- In View Folder dialog, select analyzer (e.g., "ACE Analyzer") in Induce section
- Analyzer auto-detects required signals (ACLK, AWVALID, ARVALID, etc.)
- Optionally configure Include/Exclude properties
- Expand View Folder to see Transactions, Requests, Responses, per-command metrics
4. TLM Phase Analyzer
Process SystemC TLM-2.0 transaction data:
- Open record with TLM signals (from SCV/FTR readers)
-
Drag TLM signal (with
tlm_phaseattribute) into view - TLM Phase Analyzer auto-activates as deducer
- Expand View Signal to see correlated transactions (BEGIN_REQ, END_REQ, BEGIN_RESP, END_RESP)
- 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.