Tired of digging through waveform viewers one signal at a time? How about manually combining or parsing signals into something more meaningful? Even worse when piecing together multiple parts of a bus transaction or sequence across multiple timestamps.
Perhaps you do not often rely on waveform viewers, instead inserting Verilog monitors into your testbench that dump hardware activity to text files. Then, you write scripts that process the text files. While this approach seems to work reasonably well for a given project, it may lead to scalability and transferability issues:
AMBA Viz is a hardware verification tool for cycle-accurate RTL simulation and emulation. The tool is designed to make functional debug and performance analysis faster and more intuitive, even for complex Arm IP (for example, CMN interconnects) and AMBA bus protocols. While AMBA Viz is mostly known as a visualization tool (GUI), the underlying data processing pipeline and API are central in enabling users to provide custom queries for analysis. In fact, the AMBA Viz GUI itself is separate from the “back-end” and uses the API as well.
AMBA Viz visual representation of CHI simulation waveform data.
Users provide waveform data from RTL simulation or emulation into the tool. VCD, Synopsys FSDB, and AVDB (AMBA Viz DataBase) formats are supported. The processing pipeline applies proprietary IP plugins and bus protocol plugins to extract AMBA bus messages and link them into bus transactions. The output of the processing pipeline is a proprietary database which can then be queried through the API. Users can provide message-related queries and structural queries. Message-related queries might inquire about specific field values within a bus message (for example, address, opcode) or instead, information about the bus transaction that contains a bus message. For example, “generate a list of bus messages sent to address 0x80 with opcode 0x3”. Structural queries enable the user to filter their search based on nodes or components of interest within the sub-system being simulated. For example, “generate a list of bus messages sent between requester node 0x8 and home node 0x20”. Users can either run the desktop application (which uses the API) or write their own scripts using Apache Groovy to query the API directly.
The AMBA Viz desktop application is primarily a visualization application for viewing and interacting with hardware events and messages between components within a system. The most notable feature of AMBA Viz is the interactive sequence diagram created for CHI-based interconnects, offering a contextual view like the transaction-level views used throughout the CHI documentation. The sequence diagram and other supporting features offer a level of functional debug, performance analysis, and overall system context which is not possible with traditional waveform viewers.
AMBA Viz contains features tailored to verifying large hardware subsystems, even using RTL emulation platforms:
AMBA Viz is part of the Arm Hardware Success Kit, so if you have the Hardware Success Kit, you already have access to AMBA Viz. If you do not have the Hardware Success Kit and you would like to try AMBA Viz, send an email to license.support@arm.com to request an evaluation.