Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Research Collaboration and Enablement
    • DesignStart
    • Education Hub
    • Innovation
    • Open Source Software and Platforms
  • Forums
    • AI and ML forum
    • Architectures and Processors forum
    • Arm Development Platforms forum
    • Arm Development Studio forum
    • Arm Virtual Hardware forum
    • Automotive forum
    • Compilers and Libraries forum
    • Graphics, Gaming, and VR forum
    • High Performance Computing (HPC) forum
    • Infrastructure Solutions forum
    • Internet of Things (IoT) forum
    • Keil forum
    • Morello Forum
    • Operating Systems forum
    • SoC Design and Simulation forum
    • 中文社区论区
  • Blogs
    • AI and ML blog
    • Announcements
    • Architectures and Processors blog
    • Automotive blog
    • Graphics, Gaming, and VR blog
    • High Performance Computing (HPC) blog
    • Infrastructure Solutions blog
    • Innovation blog
    • Internet of Things (IoT) blog
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Tools, Software and IDEs blog
    • 中文社区博客
  • Support
    • Arm Support Services
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Arm Community blogs
Arm Community blogs
SoC Design and Simulation blog AMBA Adaptive Traffic Profiles
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI and ML blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded blog

  • Graphics, Gaming, and VR blog

  • High Performance Computing (HPC) blog

  • Infrastructure Solutions blog

  • Internet of Things (IoT) blog

  • Operating Systems blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tags
  • AMBA
  • SoC Designer
  • Interface Bus Architecture
  • Bus Architecture
  • Debugging
  • Tutorial
  • AMBA 5
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

AMBA Adaptive Traffic Profiles

Matteo Maria Andreozzi
Matteo Maria Andreozzi
April 1, 2019

The performance requirements of computing systems have been growing rapidly, year on year. Demand is further increased by the many new performance-demanding applications that are emerging across multiple market segments, such as machine learning (ML), computational photography and autonomous driving.

To deliver against high-performance requirements, systems-on-a-chip (SoCs) increasingly employ a large number of components, including multiple processors, accelerators and I/O devices. This significantly increases the complexity and the risks and costs of designing an SoC, making right-first-time development more important than ever.

The design and verification of a modern SoC often extends across different teams, vendors and environments. Performance simulations, RTL-based or transaction level, using FPGAs or the final SoC, need to be consistent so that the results can be correctly correlated. A common and concise abstraction to express the performance and traffic characteristics of an interface is required.

Simulation of such complex systems typically requires accurate models of the different components, in order to understand the interaction between them. That is, however, a difficult task and can result in long simulation times, before meaningful results can be obtained. We need a simpler and faster simulation mechanism that is, at the same time, predictable and adaptive.

Introducing AMBA Adaptive Traffic Profiles (AMBA ATP)

To address the challenges described above, we have developed a new synthetic traffic framework, the AMBA Adaptive Traffic Profiles (AMBA ATP). It is capable of modelling systems' masters and slaves high-level memory access behaviour in a concise, simple, and portable way.

You can download the AMBA ATP Specification below.

Download AMBA ATP Specification

AMBA ATP is a framework designed to generate synthetic stimuli in a simple way: it’s complex enough to provide interesting and useful stimulus to other system components, simple enough to generate traffic quickly, and easy enough to reason about and analyse.

ATP complements AMBA, which is widely adopted as the standard for on-chip communication. AMBA specifications provide interface standards, enabling design reuse and an ecosystem of compatible and interoperable solutions. The AMBA ATP specification is meant for hardware and software engineers needing to design or debug systems and modules that are compatible with AMBA specifications.

AMBA ATP uses a simple input definition, as shown in the example below, consisting of only a small number of parameters. This simple definition means that the traffic profile definition can be easily shared across teams and companies.

AMBA ATP code

AMBA ATP Traffic Profile

A traffic profile is essentially a definition of the transaction characteristics for an interface. It can be thought of as a specification of the dynamic characteristics of an interface and includes information on both the types of transactions and the timing characteristics.

Traffic Profiles through the design cycle

Traffic profiles can be utilized throughout the SoC design cycle, from system analysis all the way down to silicon evaluation, with the benefit of a consistent set of stimuli which moves vertically as the design progresses towards production.

  • System Architecture Analysis
    • Defines traffic input to modelling environment
    • Standard framework to performance requirements definition
  • RTL Simulation for System Performance Validation
    • Used to represent components where full RTL is not used
    • Captures output performance data for analysis purposes
  • Component and Interconnect Configuration
    • Defines bandwidth and latency requirements
    • Can be used to drive interconnect generation/synthesis
  • Silicon Evaluation
    • Capture and sharing performance data
    • Assessment of system performance against benchmark requirements

Typical AMBA ATP deployment

A typical AMBA ATP deployment is composed by an execution engine - capable of parsing and interpreting an AMBA ATP description. The environments may also include the ability to collect statistics and measurements on a simulated platform, where part or all masters and slave are modelled via AMBA ATP profiles.

The AMBA ATP FIFO Model

One of the AMBA ATP foundations is the ATP FIFO: it reproduces the traffic elasticity of the modelled device interface by means of a constant fill/drain rate buffer, out of which memory access requests are generated according to simple FIFO occupancy rules, and based on the FIFO type (READ/WRITE).

If there is enough data in the FIFO buffer to generate a write request, send one.

If there is enough space in the FIFO buffer to accommodate a read response, send a read request.

 AMBA ATP FIFO buffer

By varying the basic parameters of the FIFO – the FIFO depth, the fill/drain rate, and the maximum number of outstanding transactions – it is possible to closely model a large number of different components that are typically found in an SoC. A construct as simple as the FIFO can become powerfully expressive when combined in series and parallel groups. As with simple harmonics in signal theory, it is possible to combine multiple elementary FIFO elements to compose complex patterns representative of the most diverse workloads and devices.

 AMBA ATP sequential traffic profiles

Anonymous
  • Berenice Mann
    Offline Berenice Mann over 3 years ago in reply to armchronos

    Hi, thanks for your questions. 

    The input definition in the blog is shown as an example only, and not linked to any particular implementation.

    At the moment, we are only providing the specifications. However we expect some tools will be announced soon by our ecosystem partners.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • armchronos
    Offline armchronos over 3 years ago

    Is the input definition format written in python ?

    What tools are provided by ARM to support this spec and input definition in a simulation environment?

    Please clarify what ARM provides beyond the spec.

    Thanks

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
SoC Design and Simulation blog
  • Arm Virtual Platform co-simulation solution accelerates SoC verification

    Daniel Owens
    Daniel Owens
    Avery Design Systems’ co-simulation design verification solution that integrates SystemC-based Arm virtual platforms with a SystemVerilog environment.
    • December 6, 2022
  • IP exchange and Cycle Models end-of-life update

    Gemma Platt
    Gemma Platt
    Arm Cycle Models and Arm IP Exchange are now End-of-Life, understand what this means to you.
    • May 25, 2022
  • Accelerate IP Selection with the New Arm IP Explorer

    Zach Lasiuk
    Zach Lasiuk
    The newly announced Arm IP Explorer platform represents a step-change in efficiency for the IP selection process when defining a custom System on Chip (SoC).
    • May 4, 2022